[c++] uf 坐标标注

[复制链接]
梅雷工具箱发表于 2015-6-25 14:13:53 | 显示全部楼层 |阅读模式
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/
就上UG网淘宝直营店
您需要登录后才可以回帖 登录 | 注册UG网 用百度帐号登录

本版积分规则