PLM之家PLMHome-工业软件践行者

[交作业] 创建一个圆柱体并创建它的中心线

  [复制链接]

2015-7-17 15:17:01 3024 1

秋爱 发表于 2015-7-17 11:45:11 |阅读模式

秋爱 楼主

2015-7-17 11:45:11

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 秋爱 于 2015-7-17 23:15 编辑
" \  c9 C7 i( G, k- H+ m+ ]; }- y/ x1 }( {8 k! E
tag_t part_tag = NULL_TAG;' H0 E0 t. u6 O0 [2 W
double origin [3] = {-20.0,-20.0,-20.0}; 9 A4 O7 z( D  v3 a, r
char  height[] = "80";
% R4 w, k+ _' D8 j7 S% Rchar  diam [] = "30";+ I5 n3 I1 D* u8 w6 T9 H
double direction [3] = {0.0,0.0,1.0};* l0 ^8 l* X9 l4 A: Q
tag_t  cyl_tag;
. m4 [3 N+ N. m) U( G/ j4 o; Auf_list_t * edge_list;( q7 e- _; O% m) i' {
tag_t edges;
: A1 ^7 a) I* L- r, Ddouble  ctrcoodrs[2][3];
6 |4 Z3 g9 |- a; gint count ;
. j5 \" _4 x- V% _* ?int i=0;; i8 m" R; U" R* g
UF_CURVE_line_t line_coodrs;
0 u8 j3 s; k& ctag_t line_tag = NULL_TAG;
0 z' g" L  c& W9 o  Dchar msg [256];

& k2 {5 @" Q# f1 t1 U' ]1 s0 eUF_PART_new("e:\\develop\\aa.prt",1,&part_tag); //创建部件aa6 i4 [' c, y& O2 E+ h
UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction,&cyl_tag);//创建圆柱体9 h  \. l9 B5 W+ l2 I$ ]1 B
UF_MODL_ask_feat_edges(cyl_tag,&edge_list);   //通过特征找到边,并存放到链表中。' @0 l' \# m; e+ i) C: S6 O4 G% o
UF_MODL_ask_list_count(edge_list,&count);     // 获取链表中边的个数
; h" g: x9 ?# Q9 T& g, G+ q        if(count > 0)     . s0 u  z8 l) `) f1 l
        {
# U$ [; i7 Z! p7 D9 H4 T4 P) B: l                for(i=0;i<count;i++)
7 ?4 J/ ?6 o: o: Z                {
- G& |" \+ Q9 Q5 O0 K                        UF_MODL_ask_list_item(edge_list,i,&edges);//取出边
2 j. ^' F3 J" ^! \- n                        UF_CURVE_ask_centroid(edges,ctrcoodrs);//获取两个圆心的坐标' q) q: Y' u  ]0 P+ D8 m
                }
# f9 N; `+ `- v' i- `                //给中心线的起点和终点赋值
6 P4 W( u( W2 R" w    line_coodrs.start_point[0] = ctrcoodrs[0][0];
5 D' f4 C0 J9 X. O- {4 Q7 d, K    ine_coodrs.start_point[1] = ctrcoodrs[0][1];
$ b+ I" ^7 n6 ^% O) C9 {5 B( [    ine_coodrs.start_point[2] = ctrcoodrs[0][2];9 L* g' P2 s: A& h9 ]& Q
    line_coodrs.end_point[0] = ctrcoodrs[1][0];8 j% l# F7 @2 Z! [6 r
    ine_coodrs.end_point[1] = ctrcoodrs[1][1];
9 E" x& P# K1 @- S    ine_coodrs.end_point[2] = ctrcoodrs[1][2];
+ Y2 c5 y2 N4 N: W* `6 a. ?% ?4 Z% i
UF_CURVE_create_line(&line_coodrs,&line_tag);//创建中心线  {* m+ ~# g9 x6 q+ Y7 \& J7 f
        }9 A, H1 p5 y# Z6 T" Z7 M0 A
        else
5 E5 L! r! F2 c  e& Y        {9 h% k; @* `$ d1 U' C0 I
                uc1601("没找到符合要求的边/圆弧",1);
7 p! ?2 g% n7 e* w                return;0 R9 c5 f3 |6 ~' j) _
        }

! J0 J8 {# ?+ z/ M! o) Z! p# l3 |sprintf(msg,"中心线起点坐标值是x:%f,y:%f,z:%f\n中心线终点坐标值是x:%f,y:%f,z:%f\nmade by:六色彩虹",line_coodrs.start_point[0] ,line_coodrs.start_point[1],line_coodrs.start_point[2] ,line_coodrs.end_point[0] ,line_coodrs.end_point[1], line_coodrs.end_point[2]);
; d, K0 L9 G% z9 hUF_UI_open_listing_window();
/ B5 ~1 n$ Z( n" F8 d3 W1 c% ZUF_UI_write_listing_window(msg);
- Z" b/ r( F$ D2 B' }5 p$ ~; }UF_PART_save();
7 L# r& F" W  K& FUF_PART_close_all();
: p& n, _: t4 Y% a' P9 |% K

+ }  c# H$ k+ w8 o1 z& K

2 ?3 e% m3 [& I8 b$ B, K4 ^( {" z' d

! z/ h7 L% f1 x. a6 V8 n任意转换圆柱体位置中心线随之移动# P. w3 r6 O) D) L$ Q
' n- u1 |- l" i) {: h& b1 S. |

3 y3 S: l5 j; r+ _file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\749587430\QQ\WinTemp\RichOle\~~FXAW1674LNEI%YU2APKZK.png( _2 J0 B  p; O, w

0 E# v- S- }$ z
6 C- W3 Q# w1 F8 h) t- |; n3 b
~~FXAW1674LNEI%YU2APKZK.png

评分

参与人数 1PLM币 +5 收起 理由
admin + 5 很给力!

查看全部评分

上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复1

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了