• NX二次开发-UFUN体找边UF_MODL_ask_body_edges


     1 NX11+VS2013
     2 
     3 #include <uf.h>
     4 #include <uf_ui.h>
     5 #include <uf_modl.h>
     6 #include <uf_curve.h>
     7 
     8 
     9 UF_initialize();
    10 
    11 //创建圆柱
    12 UF_FEATURE_SIGN Sign = UF_NULLSIGN;
    13 double Origin[3] = { 0.0, 0.0, 0.0 };
    14 char *Height = "100";
    15 char *Diam = "50";
    16 double Direction[3] = { 0.0, 0.0, 1.0 };
    17 tag_t CylTag = NULL_TAG;
    18 UF_MODL_create_cyl1(Sign, Origin, Height, Diam, Direction, &CylTag);
    19 
    20 //特征找体
    21 tag_t body_tag = NULL_TAG;
    22 UF_MODL_ask_feat_body(CylTag, &body_tag);
    23 
    24 //体找边
    25 uf_list_p_t edge_list;
    26 UF_MODL_ask_body_edges(body_tag, &edge_list);
    27 
    28 //获得链表的数量
    29 int count = 0;
    30 UF_MODL_ask_list_count(edge_list, &count);
    31 
    32 UF_UI_open_listing_window();
    33 for (int i = 0; i < count; i++)
    34 {
    35     //获得链表里的每一个tag
    36     tag_t edge_tag = NULL_TAG;
    37     UF_MODL_ask_list_item(edge_list, i, &edge_tag);
    38 
    39     //获得边的类型
    40     int edge_type = 0;
    41     UF_MODL_ask_edge_type(edge_tag, &edge_type);
    42     //Edge type :
    43     //UF_MODL_LINEAR_EDGE线性边
    44     //UF_MODL_CIRCULAR_EDGE圆形边
    45     //UF_MODL_ELLIPTICAL_EDGE椭圆边
    46     //UF_MODL_INTERSECTION_EDGE相交边
    47     //UF_MODL_SPLINE_EDGE样条边
    48     //UF_MODL_SP_CURVE_EDGE曲线边
    49     //UF_MODL_FOREIGN_EDGE外边缘
    50     //UF_MODL_CONST_PARAMETER_EDGE参数边
    51     //UF_MODL_TRIMMED_CURVE_EDGE裁剪曲线边
    52     //UF_MODL_CONVERGENT_EDGE收敛边
    53     //判断是否为圆边
    54     if (edge_type == UF_MODL_CIRCULAR_EDGE)
    55     {
    56         //圆弧矩阵标记、起始角和结束角(弧度测量)、圆弧中心坐标和圆弧半径
    57         UF_CURVE_arc_t arc_coords;
    58         UF_CURVE_ask_arc_data(edge_tag, &arc_coords);
    59         double radius = arc_coords.radius;//圆弧半径
    60         tag_t matrix = arc_coords.matrix_tag;//圆弧矩阵
    61         double start = arc_coords.start_angle;//圆弧起始角
    62         double end = arc_coords.end_angle;//圆弧结束角
    63         double p1[3];
    64         p1[0] = arc_coords.arc_center[0];//圆弧中心坐标
    65         p1[1] = arc_coords.arc_center[1];
    66         p1[2] = arc_coords.arc_center[2];
    67 
    68         char msg[256];
    69         sprintf_s(msg, "圆边的半径为:%f", radius);
    70         UF_UI_write_listing_window(msg);
    71     }
    72 
    73 }
    74 
    75 UF_terminate();
    76 
    77 Caesar卢尚宇
    78 2019年11月13日

  • 相关阅读:
    【python+selenium】selenium grid(分布式)
    【python】导入自定义模块
    Maven的配置以及IDEA导入本地Maven
    java历史概述
    JVM 内存调优 与 实际案例
    ConcurrentHashMap实现线程安全的原理
    Request.UrlReferrer详解
    等比例缩放生成缩略图
    JavaEE的ajax入门
    javaee三层架构案例--简单学生管理系统
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/11853549.html
Copyright © 2020-2023  润新知