PLM之家PLMHome-工业软件与AI结合践行者

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

  [复制链接]

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

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

秋爱 楼主

2015-7-17 11:45:11

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

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

x
本帖最后由 秋爱 于 2015-7-17 23:15 编辑
& i# j6 u  y4 R
% h% m, w/ c! j2 G* g5 Ftag_t part_tag = NULL_TAG;
3 j  A/ R/ A6 W" Kdouble origin [3] = {-20.0,-20.0,-20.0}; 5 W+ L- z2 x) U4 B0 |" C1 O$ I' ]
char  height[] = "80";; f( ?6 E; F5 W/ n; @! |; N
char  diam [] = "30";9 V$ L7 }; }1 \$ m) D
double direction [3] = {0.0,0.0,1.0};- s' J( K" d) o4 \; d6 H$ Q* Y! O
tag_t  cyl_tag;- O" q4 a+ y" l
uf_list_t * edge_list;
" d8 a" o8 W+ w* o4 I2 ^+ p  ttag_t edges;
9 I; C6 h4 m3 Q2 D' ?8 L. V6 vdouble  ctrcoodrs[2][3];# N6 Y) q( m, N& I2 T# t
int count ;
, A) O* v. p) b0 L  nint i=0;) h; B, n. k, s& Q: q
UF_CURVE_line_t line_coodrs;
5 w- P; O/ N: T/ |tag_t line_tag = NULL_TAG;: P) O( Z% n: N2 k  R
char msg [256];

) A2 {% g% V3 {5 L) p. l' x0 hUF_PART_new("e:\\develop\\aa.prt",1,&part_tag); //创建部件aa9 b3 t4 ]& ~& i5 y9 r
UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction,&cyl_tag);//创建圆柱体
* R' V. E. @5 j% G, m& u. w1 nUF_MODL_ask_feat_edges(cyl_tag,&edge_list);   //通过特征找到边,并存放到链表中。( p+ q' \: Q9 L! W5 j
UF_MODL_ask_list_count(edge_list,&count);     // 获取链表中边的个数# Y0 x  U" C9 _( J7 N$ j) k# l
        if(count > 0)     
1 }: X1 M/ O( |) l0 j% L7 i8 @        {3 i% z" `7 [9 a7 n  p
                for(i=0;i<count;i++)4 G2 K0 A9 v- }; [
                {' K4 |+ q/ h  s( ~" z$ Z( k9 N8 g6 h6 F
                        UF_MODL_ask_list_item(edge_list,i,&edges);//取出边
2 S' l, C: ?2 a0 v7 B                        UF_CURVE_ask_centroid(edges,ctrcoodrs);//获取两个圆心的坐标
+ s4 G  Y0 P2 _( K                }# D; m$ o( j. Q0 n8 N" K/ n
                //给中心线的起点和终点赋值4 V& v5 c# b, |( W; F2 h
    line_coodrs.start_point[0] = ctrcoodrs[0][0];- h3 K0 A7 i. w
    ine_coodrs.start_point[1] = ctrcoodrs[0][1];
9 Q7 K* p8 V# ~7 U2 a    ine_coodrs.start_point[2] = ctrcoodrs[0][2];
/ e9 o6 ~# R3 F0 l+ R    line_coodrs.end_point[0] = ctrcoodrs[1][0];
4 c, r* `/ q* X* L$ N: _1 l0 V( l    ine_coodrs.end_point[1] = ctrcoodrs[1][1];# e% D2 C2 J% C/ h8 r% P
    ine_coodrs.end_point[2] = ctrcoodrs[1][2];) p" A1 r* j+ N% G( Y

! R  e: b- W1 H2 n, {2 J% R9 AUF_CURVE_create_line(&line_coodrs,&line_tag);//创建中心线
, z$ }5 G. M2 D        }
% e# T$ [' {- A6 e( J! ]+ r        else7 P  y$ A# j6 j4 ^
        {
$ Z3 E' N/ N' B8 T; t                uc1601("没找到符合要求的边/圆弧",1);- y0 \* z7 Z& l$ G) [/ ?% {1 m
                return;
: I& l  ~0 e8 |, J# R: q        }

/ D( I. w% ~8 G$ v. vsprintf(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]);. h! X* ]' ~" k; d) D2 Z
UF_UI_open_listing_window();: Y- G  v, C. B% o+ f& `0 O
UF_UI_write_listing_window(msg);
  i0 B( v5 z! W3 I8 h* zUF_PART_save();
8 r+ y* ~. ~# a( h5 NUF_PART_close_all();

! z; h  X7 c0 s( x1 F: o# D4 C
; x0 p$ r2 T' v! g
3 i% J1 e2 v5 r4 X
. F& b8 p/ a5 B  s: P

3 s$ M, }! \( C3 M; j任意转换圆柱体位置中心线随之移动
! k" E" A1 m: q! U; F# {3 k- a) ?1 h
+ O" o  t% x+ j2 t5 \" ^
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\749587430\QQ\WinTemp\RichOle\~~FXAW1674LNEI%YU2APKZK.png
5 y  V( B- ?) @0 P& S1 e* g6 x' E" r8 n$ i. V+ R4 M: A! J" [9 k) W
# ~0 X% t. T( K" E3 e
~~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二次开发专题模块培训报名开始啦

    我知道了