uf坐标标注
#include <stdio.h>
#include <string.h>
#include <uf_defs.h>
#include <uf_drf.h>
#include <uf_curve.h>
#include <uf_csys.h>
#include <uf_obj.h>
/* TODO: Add your application code here */
//坐标标注
int status;
/* 创建圆弧 */
tag_t wcs, arc1_tag;
UF_CURVE_arc_t arc_coords;
UF_CSYS_ask_wcs(&wcs);
UF_CSYS_ask_matrix_of_object(wcs, &arc_coords.matrix_tag);
arc_coords.start_angle = 0.0;
arc_coords.end_angle = TWOPI;
arc_coords.arc_center[0] = 20.0;
arc_coords.arc_center[1] = 20.0;
arc_coords.arc_center[2] = 0.0;
arc_coords.radius = 1.0;
status =UF_CURVE_create_arc(&arc_coords, &arc1_tag);
/* 创建并显示一个坐标原点。 */
tag_t origin_tag;
char user_text[133]="原点";
UF_DRF_object_t object; /* 初始化对象的结构 */
UF_DRF_init_object_structure(&object);
object.object_tag = arc1_tag;
object.object_view_tag = NULL_TAG;
object.object_assoc_type = UF_DRF_arc_center;
object.object_assoc_modifier = 0;
status = UF_DRF_create_ordorigin(
&object, //【输入】关联对象的标识
1, //【输入】1 =右上;2 =左上;3 =右下;4 =左下;5 =所有象限
1, //【输入】箭头与尺寸线显示;1 =无;2 =是的
1, //【输入】1 =显示原点名称;2 =不显示
user_text, //【输入】原点名称
&origin_tag//【输出】原点标识
);
// -----------------------------创建一个坐标尺寸----------------------------------------
/* 创建并显示一个纵向边缘【定义坐标是水平的还是垂直的】*/
/* 创建线 确定了尺寸坐标的位置(尺寸原点在WCS坐标)与方向*/
UF_CURVE_line_t line_coords;
tag_t line_tag,margin_tag;
line_coords.start_point[0] = 0.0;
line_coords.start_point[1] = 60.0;
line_coords.start_point[2] = 0.0;
line_coords.end_point[0] = 1.0;
line_coords.end_point[1] = 60.0;
line_coords.end_point[2] = 0.0;
//方向水平,尺寸坐标的位置(尺寸原点在WCS坐标)y=60
status = UF_CURVE_create_line(&line_coords, &line_tag);
object.object_tag = line_tag;
object.object_view_tag = NULL_TAG;
object.object_assoc_type = UF_DRF_end_point;
object.object_assoc_modifier = UF_DRF_last_end_point;
status = UF_DRF_create_ordmargin(
1, //坐标类型1 =水平;2 =垂直
origin_tag, //坐标原点标识
&object, //【输入】关联对象的标识
NULL, //【输入】double margin_xy_point[ 3 ] X,Y点保证金(如果对象结构为空,否则忽略)
NULL, //【输入】margin_xy_direction[ 2 ]x,y方向的边缘(如果对象结构为空的,否则忽略)
1, //【输入】起点偏移距离
&margin_tag //【输出】对象标识
);
UF_OBJ_delete_object(line_tag); //删除对象
UF_DRF_text_t drf_text;
char append_text[1][133];
strcpy (append_text[0], "XY");
drf_text.user_dim_text = user_text;
drf_text.lines_app_text = 1;
drf_text.appended_text = append_text;
/* 创建圆弧 */
tag_t arc2_tag,dimension_tag;
arc_coords.arc_center[0] = 50.0;
arc_coords.arc_center[1] = 50.0;
status = UF_CURVE_create_arc(&arc_coords, &arc2_tag);
object.object_tag = arc2_tag;
object.object_view_tag = NULL_TAG;
object.object_assoc_type = UF_DRF_arc_center;
object.object_assoc_modifier = 0;
double origin[3] = {0.0,0.0, 0.0};//如果创建了纵向边缘那么origin[3]数据将无效 会用纵向边缘 来定义
//创建一个坐标尺寸
status = UF_DRF_create_orddimension(
margin_tag, //【输入】纵向边缘或原点标识
1, //【输入】1=水平;2=垂直的
&object, //【输入】关联对象的标识
0, //【输入】角度
1, //【输入】起点偏移距离
&drf_text, //【输入】文本
1, //【输入】文本标志;1 =中心总文本框;2 =中心尺寸文本框
origin, //【输入】尺寸原点在WCS坐标
&dimension_tag); //【输出】
/* Terminate the API environment */
_____________________________________________________________________________ _
中磊UG二次开发教程 梅雷著 qq1821117007
学UG就上UG网 http://www.9sug.com/ |