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

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

  [复制链接]

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

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

秋爱 楼主

2015-7-17 11:45:11

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

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

x
本帖最后由 秋爱 于 2015-7-17 23:15 编辑
) u: A2 ?9 F7 E7 q7 p! u; N
% d+ T, g4 ?* A. I3 R# q$ }8 E. rtag_t part_tag = NULL_TAG;( ^. ^; i3 {  y$ \6 l, K* ?, q
double origin [3] = {-20.0,-20.0,-20.0}; % q( o6 B9 R& F1 B8 U0 r
char  height[] = "80";% |* n1 H0 M' w% N9 P% b
char  diam [] = "30";
' S+ R$ k$ X6 x6 U6 sdouble direction [3] = {0.0,0.0,1.0};
4 w& }( Z" U$ z" w# p3 z- Ptag_t  cyl_tag;- v! e% ~+ x# ]  Z2 G2 G( k
uf_list_t * edge_list;
( _! G: A( e2 K, ~tag_t edges;
3 A7 w; |( u5 O2 Q$ l' `" u" _) Y4 L* Gdouble  ctrcoodrs[2][3];0 C. I) @  |0 D0 m9 y
int count ;+ X% v6 T8 {' G7 z
int i=0;4 L3 m+ R) Y+ d* \% ~
UF_CURVE_line_t line_coodrs;& |. D) N/ ?  r+ B7 b$ n9 e
tag_t line_tag = NULL_TAG;
* N8 }5 q3 ^0 w2 E- U/ V% V0 ?char msg [256];
, {) `0 H& n8 p  Q
UF_PART_new("e:\\develop\\aa.prt",1,&part_tag); //创建部件aa$ ]" N8 [0 G, p+ g$ W& t
UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction,&cyl_tag);//创建圆柱体
! y5 R5 O  `# AUF_MODL_ask_feat_edges(cyl_tag,&edge_list);   //通过特征找到边,并存放到链表中。
' u' a1 g! M7 OUF_MODL_ask_list_count(edge_list,&count);     // 获取链表中边的个数. \* ^& o9 f) g+ Q  ^
        if(count > 0)     
. |7 W! _' c9 e; }4 h- g        {
4 M+ z) H8 W& ?                for(i=0;i<count;i++)6 _, t' \! A" l- }# e
                {% a2 l* I( q/ u! z6 K) p5 d
                        UF_MODL_ask_list_item(edge_list,i,&edges);//取出边
$ B# R& Q7 n+ }) g" O8 D                        UF_CURVE_ask_centroid(edges,ctrcoodrs);//获取两个圆心的坐标
* ~- M* `' {# K                }: a1 w9 `3 x  T
                //给中心线的起点和终点赋值& ~. L* X0 `  y% R2 @
    line_coodrs.start_point[0] = ctrcoodrs[0][0];: B6 L5 j. F0 S" W
    ine_coodrs.start_point[1] = ctrcoodrs[0][1];1 R; S5 K5 h2 n* h" ~
    ine_coodrs.start_point[2] = ctrcoodrs[0][2];
/ [. Z& {4 [, R) A1 G- s1 ^* k    line_coodrs.end_point[0] = ctrcoodrs[1][0];( C" b6 |5 `  t8 F3 ?& B8 l
    ine_coodrs.end_point[1] = ctrcoodrs[1][1];
9 U# y- ~1 @. m/ W    ine_coodrs.end_point[2] = ctrcoodrs[1][2];
2 c( k* [/ i( k' M) h2 l
- k' \) N9 D& V/ eUF_CURVE_create_line(&line_coodrs,&line_tag);//创建中心线
0 Z% b' ]. Z, T8 ^9 Q# P4 l- A        }5 i( u1 A/ T2 |5 A0 W7 ^0 A
        else
/ {# J# P2 M+ B1 \" P  d0 w! ]        {
' A: l# g% J) X3 m                uc1601("没找到符合要求的边/圆弧",1);
' r' q" L. {& u8 D1 c4 F1 l7 r3 T* K                return;/ Y( o5 E. b2 ?* u% H0 d5 z
        }
9 R& p- F1 g. `* J+ ~( V+ x
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]);4 H4 P3 D: ^- K0 b
UF_UI_open_listing_window();
1 n, D" Q7 J/ j3 Z/ N7 K* ?UF_UI_write_listing_window(msg);
8 |5 j5 C, a; dUF_PART_save();' c! S3 K3 t8 H7 f, g! @
UF_PART_close_all();
3 q3 j2 C$ }9 q, U4 M4 N
4 x$ f7 c$ r. [8 O& p& I; m% m. {

+ i" G& L# P9 {3 r6 ]4 H0 B8 @2 Q
: W1 _1 c% a: ^' \; F

0 W1 p9 r' B, |任意转换圆柱体位置中心线随之移动
; P4 W. v& n; D) J/ j5 y1 j
3 k8 a/ l( M" j1 d

1 O- w' }* F, K  k2 Mfile:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\749587430\QQ\WinTemp\RichOle\~~FXAW1674LNEI%YU2APKZK.png/ Q7 P& p9 I' c  |4 E! j

6 v( @2 |1 B' u: p3 m5 \5 ?, p0 ?* f' e1 J
~~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二次开发专题模块培训报名开始啦

    我知道了