• NX二次开发-UFUN创建垂直尺寸标注UF_DRF_create_perpendicular_dim


    NX9+VS2012
    
    #include <uf.h>
    #include <uf_curve.h>
    #include <uf_draw.h>
    #include <uf_drf.h>
    #include <uf_obj.h>
    #include <uf_part.h>
    #include <NXOpen/UI.hxx>
    #include <NXOpen/MenuBar_MenuBarManager.hxx>
    
    
    
    UF_initialize();
    
    //创建点
    double p1[3] = {10,0,0};
    tag_t p1Tag = NULL_TAG;
    UF_CURVE_create_point(p1,&p1Tag);
    
    double p2[3] = {100,0,0};
    tag_t p2Tag = NULL_TAG;
    UF_CURVE_create_point(p2,&p2Tag);
    
    double p3[3] = {0,100,0};
    tag_t p3Tag = NULL_TAG;
    UF_CURVE_create_point(p3,&p3Tag);
    
    
    //创建直线
    UF_CURVE_line_t Line_coords;
    Line_coords.start_point[0] = p1[0];
    Line_coords.start_point[1] = p1[1];
    Line_coords.start_point[2] = p1[2];
    Line_coords.end_point[0] = p2[0];
    Line_coords.end_point[1] = p2[1];
    Line_coords.end_point[2] = p2[2];
    tag_t Line = NULL_TAG;
    UF_CURVE_create_line(&Line_coords, &Line);
    
    //创建直线
    UF_CURVE_line_t Line_coords1;
    Line_coords1.start_point[0] = p1[0];
    Line_coords1.start_point[1] = p1[1];
    Line_coords1.start_point[2] = p1[2];
    Line_coords1.end_point[0] = p3[0];
    Line_coords1.end_point[1] = p3[1];
    Line_coords1.end_point[2] = p3[2];
    tag_t Line1 = NULL_TAG;
    UF_CURVE_create_line(&Line_coords1, &Line1);
    
    //切换到制图模块
    theUI->MenuBarManager()->ApplicationSwitchRequest("UG_APP_DRAFTING");
    
    //新建工程图(A4图纸)
    char* DrawingName = "ABC";//设置图纸名字
    UF_DRAW_info_t DrawingInfo;//设置图纸大小、投影视角、视图比例等
    DrawingInfo.size_state = UF_DRAW_METRIC_SIZE;//设置图纸类型
    DrawingInfo.size.metric_size_code = UF_DRAW_A4;//设置图纸大小
    DrawingInfo.drawing_scale = 1.0;//设置比例
    DrawingInfo.units = UF_PART_METRIC;//设置单位
    DrawingInfo.projection_angle = UF_DRAW_FIRST_ANGLE_PROJECTION;//设置投影视角
    tag_t DrawingTag = NULL_TAG;
    UF_DRAW_create_drawing(DrawingName, &DrawingInfo, &DrawingTag);
    
    //导入视图(创建Top视图)
    //找名字获取视图的Tag
    tag_t TopViewTag = NULL_TAG;
    UF_OBJ_cycle_by_name_and_type(UF_PART_ask_display_part(), "Top", UF_view_type, false, &TopViewTag);
    
    UF_DRAW_view_info_t TopViewInfo;
    UF_DRAW_initialize_view_info(&TopViewInfo);//初始化视图信息
    double TopDwgPoint[2] = {150.0, 100.0};
    tag_t TopDrawViewTag = NULL_TAG;
    UF_DRAW_import_view(DrawingTag, TopViewTag, TopDwgPoint, &TopViewInfo, &TopDrawViewTag);
    
    //更新视图
    UF_DRAW_update_one_view(DrawingTag, TopDrawViewTag);
    
    //创建角度尺寸标注
    UF_DRF_object_t object1;
    object1.object_tag = Line;
    object1.object_view_tag = TopDrawViewTag;
    object1.object_assoc_type = UF_DRF_end_point;
    object1.object_assoc_modifier = UF_DRF_first_end_point;
    UF_DRF_object_t object2;
    object2.object_tag = Line1;
    object2.object_view_tag = TopDrawViewTag;
    object2.object_assoc_type = UF_DRF_end_point;
    object2.object_assoc_modifier = UF_DRF_first_end_point;
    UF_DRF_text_t drf_text;
    drf_text.user_dim_text = NULL;
    drf_text.lines_app_text = 0;
    drf_text.appended_text = NULL;
    double dimension_3d_origin[3] = {149,92};
    tag_t dimension_tag = NULL_TAG;
    UF_DRF_create_angular_dim(1,&object1, &object2, &drf_text, dimension_3d_origin, &dimension_tag);
    
    
    //创建垂直尺寸标注
    UF_DRF_object_t object1A;
    object1A.object_tag = Line1;
    object1A.object_view_tag = TopDrawViewTag;
    object1A.object_assoc_type = UF_DRF_end_point;
    object1A.object_assoc_modifier = UF_DRF_first_end_point;
    UF_DRF_object_t object2A;
    object2A.object_tag = p2Tag;
    object2A.object_view_tag = TopDrawViewTag;
    object2A.object_assoc_type = UF_DRF_end_point;
    object2A.object_assoc_modifier = UF_DRF_first_end_point;
    UF_DRF_text_t drf_textA;
    drf_textA.user_dim_text = NULL;
    drf_textA.lines_app_text = 0;
    drf_textA.appended_text = NULL;
    double dimension_3d_originA[3] = {143,168};
    tag_t dimension_tagA = NULL_TAG;
    UF_DRF_create_perpendicular_dim(&object1A, &object2A, &drf_textA, dimension_3d_originA, &dimension_tagA);
    
    UF_terminate();
    
    Caesar卢尚宇
    2020年9月20日

  • 相关阅读:
    WPF多语言支持
    解决 OpenCV with CUDA 编译提示缺少 nvcuvid.h 的问题
    ios adi ADBannerView 无法修改 宽度
    ios 判断横竖屏的方法
    Core data 数据同步
    常用的sql脚本(陆续更新)
    高晓松:不买房,买梦想
    (转贴)关于多线程执行显示进度条的实例!
    如何快速创建大文件
    利用Adobe Acrobat 7.0 Professional 自带的导出图片的功能(转)
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/13702505.html
Copyright © 2020-2023  润新知