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

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

  [复制链接]

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

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

秋爱 楼主

2015-7-17 11:45:11

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

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

x
本帖最后由 秋爱 于 2015-7-17 23:15 编辑   g: w0 s7 @. B. |8 J1 n0 W0 t
+ i* p8 ^4 P0 `2 |" L4 U) K
tag_t part_tag = NULL_TAG;
* ~, q; g+ h2 d0 x- E9 D( edouble origin [3] = {-20.0,-20.0,-20.0}; # {2 M; P) k) N$ T1 }' ^1 N
char  height[] = "80";/ t$ `% S/ |# D9 i# x
char  diam [] = "30";- {+ J# I3 l; d! w8 h/ Y6 }* N
double direction [3] = {0.0,0.0,1.0};% j& S+ d9 G, K; {* g0 p/ m
tag_t  cyl_tag;
% _" z) c; j6 M& g5 Muf_list_t * edge_list;9 B4 O  u& T$ `2 [% g& x
tag_t edges;
( t6 ]1 y' Q" v2 E3 y/ }/ A6 @double  ctrcoodrs[2][3];( L$ ~6 r3 u+ d5 O" R
int count ;
% q/ z# H$ A# d& w5 m% mint i=0;
) }, z& c. J" n* TUF_CURVE_line_t line_coodrs;
9 d/ G+ s4 f5 v# ~; c3 q: l  o+ ytag_t line_tag = NULL_TAG;
( b0 t$ @9 q' L1 K6 [, Fchar msg [256];
7 U5 n+ H* z) Z% p  }  q- O  N
UF_PART_new("e:\\develop\\aa.prt",1,&part_tag); //创建部件aa
& v6 \" t+ d& W" h! eUF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction,&cyl_tag);//创建圆柱体
2 x' t  e' u, X* C; N4 OUF_MODL_ask_feat_edges(cyl_tag,&edge_list);   //通过特征找到边,并存放到链表中。) v" p4 `8 ]4 c. s+ |3 M
UF_MODL_ask_list_count(edge_list,&count);     // 获取链表中边的个数+ `; b% ?0 B3 r8 c* j+ ?# E; g
        if(count > 0)     
/ I$ k0 e( K9 q+ u, t! X+ d        {
' R: B$ o" c& Z4 P$ ^& m  l                for(i=0;i<count;i++)7 J8 u9 K) t- J
                {
  h# C1 x- H. M                        UF_MODL_ask_list_item(edge_list,i,&edges);//取出边
( j: P7 W2 A: f2 Q1 h; p0 i: [                        UF_CURVE_ask_centroid(edges,ctrcoodrs);//获取两个圆心的坐标
' ]( p  E2 H! X! R' I2 p                }
! P4 J+ ~0 g$ W! F                //给中心线的起点和终点赋值4 p" B6 \  m2 c. v$ c0 b' W
    line_coodrs.start_point[0] = ctrcoodrs[0][0];
: S, X+ N$ }2 o" j# O7 q    ine_coodrs.start_point[1] = ctrcoodrs[0][1];  W; P/ n9 t- X; u$ p
    ine_coodrs.start_point[2] = ctrcoodrs[0][2];
) c4 x9 @1 u# u1 w. \/ h    line_coodrs.end_point[0] = ctrcoodrs[1][0];
$ o# t! M$ Z) c' Z' j! h    ine_coodrs.end_point[1] = ctrcoodrs[1][1];3 ?* D2 p6 g$ w
    ine_coodrs.end_point[2] = ctrcoodrs[1][2];
4 q8 i$ U9 {, t, b% `6 [: G# W/ O2 q8 C5 k9 u8 Q  R
UF_CURVE_create_line(&line_coodrs,&line_tag);//创建中心线! w% o+ }% @$ f$ r4 z; L
        }/ i1 X3 K4 q9 C' i; C
        else
6 h+ f# [6 B% u2 e        {
1 A* {0 q  n' v9 }& E% l                uc1601("没找到符合要求的边/圆弧",1);
% ]) g$ |& `* V1 Z& }4 ]                return;8 [2 s4 l7 n' m0 F9 J/ ~
        }
0 g( D9 C3 r; Y4 x$ o; `
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]);$ C$ t0 S8 m9 ?. l" k5 {3 b
UF_UI_open_listing_window();
. F) k0 p1 J( I7 q, H( B- p- b2 vUF_UI_write_listing_window(msg);. e6 h. K# D# h( e3 ~
UF_PART_save();( Y4 A  i$ M& W+ p8 f; F
UF_PART_close_all();

! v3 u# ^- H! i& {3 k$ r% |* @% b; {7 I/ b, e& f4 A
. x% l1 w/ u0 c4 A: z3 r# R' j
; B0 x4 z% Y) k8 l3 [  ^8 M" N
8 w# T4 X* T/ j/ I, x- R! D4 ?, A
任意转换圆柱体位置中心线随之移动
1 F$ |1 {: @- U: X8 ]% }' G9 r9 k" T

; Y9 J  T5 A/ e. P, V1 T; o' F/ N8 k; E8 _file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\749587430\QQ\WinTemp\RichOle\~~FXAW1674LNEI%YU2APKZK.png) D+ O, H1 S4 c+ a$ e; d9 p8 Q
8 H/ ^8 I# ]- ^! c) o- }
& @+ {2 ^6 s+ D' w8 v; y" b! }- }8 ?4 ?
~~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二次开发专题模块培训报名开始啦

    我知道了