ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

NX二次开发-UFUN体找边UF_MODL_ask_body_edges

2019-11-13 22:06:36  阅读:381  来源: 互联网

标签:body tag edge UFUN arc EDGE 二次开发 UF MODL


 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日

标签:body,tag,edge,UFUN,arc,EDGE,二次开发,UF,MODL
来源: https://www.cnblogs.com/nxopen2018/p/11853549.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有