PLM之家PLMHome-国产软件践行者

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

  [复制链接]

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

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

秋爱 楼主

2015-7-17 11:45:11

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

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

x
本帖最后由 秋爱 于 2015-7-17 23:15 编辑 . K1 U* W% K3 H  ]7 K
# }  L  h6 _7 f( A# G1 e. `
tag_t part_tag = NULL_TAG;1 p+ e. y; B/ O8 T. a0 g
double origin [3] = {-20.0,-20.0,-20.0}; / u) P: y( H( b$ o3 e
char  height[] = "80";! W9 j3 |$ B4 S, s5 A
char  diam [] = "30";' Q) a& d( ]+ s, j5 i) Y# C7 z% U) |
double direction [3] = {0.0,0.0,1.0};$ q" H5 T( {' @5 H# ~& n2 D6 p
tag_t  cyl_tag;
8 L# d# T1 Z- y$ z( P; Quf_list_t * edge_list;
* j6 m$ n" B0 z; I8 L4 {( M8 K. jtag_t edges;& c: m& R# w/ B+ s3 v9 T
double  ctrcoodrs[2][3];5 M! |  l3 Y+ g4 l* Z- f, B
int count ;% f& u3 {5 ]1 [) N( u$ c
int i=0;
% u$ x. Y0 B2 N0 @( ~* M: |6 H/ }UF_CURVE_line_t line_coodrs;
3 X" H/ ]5 v9 c/ I0 w6 y2 o* o( @+ Etag_t line_tag = NULL_TAG;
# g5 |, K( b$ x' l$ u; Dchar msg [256];
+ J' k( O5 w2 S. R' `
UF_PART_new("e:\\develop\\aa.prt",1,&part_tag); //创建部件aa
" |" P  D. W. oUF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction,&cyl_tag);//创建圆柱体# K: {; m1 w* z' _% o# M
UF_MODL_ask_feat_edges(cyl_tag,&edge_list);   //通过特征找到边,并存放到链表中。
; Q1 f! v) ]2 f  w! BUF_MODL_ask_list_count(edge_list,&count);     // 获取链表中边的个数4 j# S9 e7 O& \4 E' S
        if(count > 0)     1 b0 S( P  A  e5 g
        {. ]. G" m+ R0 G/ y, m0 B/ ~
                for(i=0;i<count;i++)+ g# h9 i6 p" D! b+ X: Y/ O
                {; H$ U7 b0 c6 J
                        UF_MODL_ask_list_item(edge_list,i,&edges);//取出边3 W, h+ C1 [0 O* V+ Q+ \! C
                        UF_CURVE_ask_centroid(edges,ctrcoodrs);//获取两个圆心的坐标- d* c- s4 X* [0 o' s
                }. _, z8 d8 \3 U4 z; ]
                //给中心线的起点和终点赋值
- K' K1 W% n7 `  C( G" W9 E    line_coodrs.start_point[0] = ctrcoodrs[0][0];+ V4 p. }6 M: _' {7 ^$ j
    ine_coodrs.start_point[1] = ctrcoodrs[0][1];# c& u6 X- W$ E* F
    ine_coodrs.start_point[2] = ctrcoodrs[0][2];
6 T6 G! W' l$ E5 q    line_coodrs.end_point[0] = ctrcoodrs[1][0];
( ~1 r5 r6 i! x* R3 w# E1 b    ine_coodrs.end_point[1] = ctrcoodrs[1][1];
+ [: e* C5 S/ g    ine_coodrs.end_point[2] = ctrcoodrs[1][2];
% H9 X$ V9 P: H! B% _5 s; ^0 x( ]2 K, e5 K
UF_CURVE_create_line(&line_coodrs,&line_tag);//创建中心线
4 t, N1 Z' \+ C6 ?& S1 B8 h        }  l% `4 F6 V6 r/ C' `$ d/ H
        else3 F: B# W: U1 N, O
        {
' A; S4 H5 l& P8 F! o  x7 L8 l6 C                uc1601("没找到符合要求的边/圆弧",1);
& G; v! y4 c$ ~3 |/ z) d                return;( x8 ~+ B# F! K( z- F- j
        }
0 x5 T! i  ], v, J
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]);* {/ w2 c6 A3 Z$ N, g% X% H0 J
UF_UI_open_listing_window();
3 _: ^) U1 b& eUF_UI_write_listing_window(msg);0 ?6 V. |7 t4 c& {7 {+ E! p
UF_PART_save();( |* I1 s: P( h* Z2 v. W; X
UF_PART_close_all();
+ Y1 |/ c; j2 I$ J

( b: ^( q5 i7 e2 D$ F+ _3 I

+ n% b( e* H5 s2 P1 o# r. O8 x3 N& Y- J) g* Z' p6 t3 I, e$ x
" a: e7 d, X' V( _( l
任意转换圆柱体位置中心线随之移动
3 t- B8 n+ E. X% N! Z) N; E8 |
4 S1 l' p' ]* Z
: x0 h0 p$ ~. ?5 j* s
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\749587430\QQ\WinTemp\RichOle\~~FXAW1674LNEI%YU2APKZK.png
# ]2 k1 O+ R% A! D0 R: A) W  s) ~1 q  c& `/ N' w* H% R3 o
8 N; o5 j3 X/ ^7 f5 A( ~. @- x
~~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二次开发专题模块培训报名开始啦

    我知道了