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

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

  [复制链接]

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

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

秋爱 楼主

2015-7-17 11:45:11

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

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

x
本帖最后由 秋爱 于 2015-7-17 23:15 编辑 4 y9 e: J1 T1 t
; a1 @' u0 |* M! a8 V, ?. m
tag_t part_tag = NULL_TAG;5 h5 E8 i6 t: {) t- C1 I
double origin [3] = {-20.0,-20.0,-20.0}; 8 G9 `0 Y. G. j
char  height[] = "80";5 j5 D% d5 f8 x2 y
char  diam [] = "30";# Z& l/ ]5 ^$ M5 e* ~
double direction [3] = {0.0,0.0,1.0};
2 c4 ~( U) d) Q$ ^. q) jtag_t  cyl_tag;; G* ?: L+ n  Q  t: j1 {; D" l
uf_list_t * edge_list;# _! z1 |1 b3 v  |( J
tag_t edges;% c$ n/ d! [3 |2 Y4 ~1 h( Z! z; P
double  ctrcoodrs[2][3];. O1 k0 Y+ I8 n  p
int count ;
. ]" x9 m% b5 f# D1 o# z& C7 xint i=0;* Z7 f' l/ J" r% h" S
UF_CURVE_line_t line_coodrs;8 R0 j5 b+ b" h- q( g8 l( P. h  [
tag_t line_tag = NULL_TAG;
7 F& w+ {: ~; `3 R( z8 X' Uchar msg [256];
; B8 U: j8 N& M* f
UF_PART_new("e:\\develop\\aa.prt",1,&part_tag); //创建部件aa
% d( @, ~* J/ H: e) w% x% Q7 kUF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction,&cyl_tag);//创建圆柱体
2 e, |7 e7 o$ S0 e! l8 RUF_MODL_ask_feat_edges(cyl_tag,&edge_list);   //通过特征找到边,并存放到链表中。
, s4 Z- y3 D. G: J* V0 g( l6 \8 \UF_MODL_ask_list_count(edge_list,&count);     // 获取链表中边的个数) h% x; V4 ^5 L! ?
        if(count > 0)     
% o7 f) e% ^* o1 p        {
7 g+ {7 T- u# V2 b                for(i=0;i<count;i++)
/ {9 y4 b$ o/ t- `2 @9 S                {' m; d) L+ s7 V: {. A* Z
                        UF_MODL_ask_list_item(edge_list,i,&edges);//取出边
2 I: M& \; B7 M/ `( K                        UF_CURVE_ask_centroid(edges,ctrcoodrs);//获取两个圆心的坐标: Q/ A  s, f$ N$ D, C. b. r
                }* M( d, A- P# \
                //给中心线的起点和终点赋值4 V, A- s1 R2 p/ E  g" w( b7 w
    line_coodrs.start_point[0] = ctrcoodrs[0][0];
& \$ E, _  w* D8 M  P( l$ h% ]* v    ine_coodrs.start_point[1] = ctrcoodrs[0][1];
$ H4 ]( f, a3 f# ~. I    ine_coodrs.start_point[2] = ctrcoodrs[0][2];) r) e! i' b) f/ _& o
    line_coodrs.end_point[0] = ctrcoodrs[1][0];! J$ t8 X9 j2 Y: t- f" B
    ine_coodrs.end_point[1] = ctrcoodrs[1][1];
5 F7 x7 B, [3 W5 u% g    ine_coodrs.end_point[2] = ctrcoodrs[1][2];
; Y- x8 ~3 x. p  A
7 w. y& J* x9 c  w6 @6 _4 oUF_CURVE_create_line(&line_coodrs,&line_tag);//创建中心线
4 q6 A8 J% e6 x2 }( N        }
0 }' b2 f6 c( W7 y3 V" Z        else5 A2 m; P+ B  j# P" S
        {
6 t# w( b  E4 @) p# n( U; k                uc1601("没找到符合要求的边/圆弧",1);
. q. A7 M3 F1 u                return;
# ?1 M* V' z+ p9 b$ t        }

- R" s5 o; Y4 N8 l" q7 y3 qsprintf(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]);1 Q! Q9 x# Z* H& |
UF_UI_open_listing_window();
' [6 A1 O4 n. V8 Z( X! V5 M7 F# pUF_UI_write_listing_window(msg);8 _! D. j; q+ W0 E& _
UF_PART_save();
+ E; A( S9 ]# GUF_PART_close_all();
; c/ e) {2 {8 u+ \7 p

- c) ^+ J, n1 _
3 n+ m3 y: t) E/ \. A/ A

* _+ [* d" }/ ^  x+ D# s

2 @, n+ x7 J' |( o, `% d. C4 D/ Q. v任意转换圆柱体位置中心线随之移动2 o. v' d# b1 L. ^* @: }* p# z

- j) m* j: z# X: q4 [
( W8 l3 J3 D- E% \- e
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\749587430\QQ\WinTemp\RichOle\~~FXAW1674LNEI%YU2APKZK.png
7 f% [8 k/ M3 i. l4 w0 x& Z/ p
) N; B6 @7 g$ F: a5 t& I
+ T( d" D7 X9 p4 l
~~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二次开发专题模块培训报名开始啦

    我知道了