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

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

  [复制链接]

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

7

主题

9

回帖

228

积分

培训VIP会员

积分
228
发表于 2015-7-17 11:45:11 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 秋爱 于 2015-7-17 23:15 编辑 5 q3 b* f8 r& e  x

+ }0 `* n' m, d1 E% v: ]tag_t part_tag = NULL_TAG;( ]0 E% m* t1 \4 @+ y! D+ t, c# O" L
double origin [3] = {-20.0,-20.0,-20.0};
. o: w# @- Q2 x2 D9 s4 u$ \3 J: c2 bchar  height[] = "80";
+ q% e8 C4 o7 F5 [  @* P2 ichar  diam [] = "30";0 q7 a. K6 Y! Y9 k: d
double direction [3] = {0.0,0.0,1.0};. t3 L) [" M- e" b# i
tag_t  cyl_tag;
: e7 y$ S* G, K2 b3 Fuf_list_t * edge_list;
# L" V% o0 A: X1 g. Q; ^% ^tag_t edges;, Z% e0 i* G+ |
double  ctrcoodrs[2][3];
. G) O- c; ^& W' R! V; Mint count ;  j, G1 b9 _% G. c/ v& r
int i=0;8 J9 @& N( A6 H: R: g# F
UF_CURVE_line_t line_coodrs;
1 r$ e" R2 X- M, Atag_t line_tag = NULL_TAG;! f/ |# }$ o+ o- c9 @
char msg [256];

& h% W8 L3 p* ?UF_PART_new("e:\\develop\\aa.prt",1,&part_tag); //创建部件aa- [* d, {6 n4 e- S7 w
UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction,&cyl_tag);//创建圆柱体" F5 y% L' b9 |7 m: o3 w: h
UF_MODL_ask_feat_edges(cyl_tag,&edge_list);   //通过特征找到边,并存放到链表中。
+ U) A) {/ {- `% o/ K) \" tUF_MODL_ask_list_count(edge_list,&count);     // 获取链表中边的个数
; m- N7 F0 t4 k8 O) \        if(count > 0)     * E& k: Q. @& F
        {& G: B% ^6 ?: o5 L6 A7 [2 u# P0 J/ l
                for(i=0;i<count;i++)4 Y' r  u- W& g# r3 ]+ O' G6 T9 h
                {) U  a) f+ P! m$ H1 s
                        UF_MODL_ask_list_item(edge_list,i,&edges);//取出边& S, v- [) h' ?& y  z; y) ~
                        UF_CURVE_ask_centroid(edges,ctrcoodrs);//获取两个圆心的坐标
) f( H5 I4 m: _  ~3 a                }; ~9 i2 H+ y" ?7 T: S& U' U+ p: g0 J
                //给中心线的起点和终点赋值
3 K9 U2 S7 F  H0 I    line_coodrs.start_point[0] = ctrcoodrs[0][0];
! Z. p7 f$ W% x8 U  o    ine_coodrs.start_point[1] = ctrcoodrs[0][1];
+ s  U/ w3 j4 I. S+ N9 D, C    ine_coodrs.start_point[2] = ctrcoodrs[0][2];
3 C( ~) L( Z: i9 V    line_coodrs.end_point[0] = ctrcoodrs[1][0];) A3 @" ~8 e! q  o$ p! A- ~" Y. v
    ine_coodrs.end_point[1] = ctrcoodrs[1][1];
5 x; d: I. S! O" u1 Z    ine_coodrs.end_point[2] = ctrcoodrs[1][2];0 V1 x6 Q2 O, P% [. W" \4 y

7 r6 z: R! c6 E* g) f' nUF_CURVE_create_line(&line_coodrs,&line_tag);//创建中心线
+ w! T1 V. ?5 Y8 a" y        }/ h3 z$ P5 }  n" G
        else0 _2 Z, O. d$ d( [; h+ N
        {
$ A" C& A& W) r# c9 c                uc1601("没找到符合要求的边/圆弧",1);; \/ z/ N7 s3 m# c6 [0 k
                return;) J4 Y; K3 u# m# z  A( ^
        }

3 L% E) ^. T0 b7 v# Ysprintf(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]);. J: H; ~3 d( C4 Y/ L
UF_UI_open_listing_window();
- B' w$ b3 z/ q: H! Q5 z1 ZUF_UI_write_listing_window(msg);
7 M% \5 I2 J* O) G' TUF_PART_save();4 g5 P) l: X+ k. K. u$ F6 {6 l7 o
UF_PART_close_all();
' f6 W4 \7 ?6 ?
: D' P/ v+ y$ Z( x- W7 o; A
! I  s. L0 a6 f9 O' s

* j( Q$ C+ E2 `  J
) V2 I! f1 H' S0 L2 C
任意转换圆柱体位置中心线随之移动: [8 @3 L. |, [
8 D0 W, V4 @5 g  I5 T: n6 ^

; a3 @( `& O/ d5 g  X; [8 Cfile:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\749587430\QQ\WinTemp\RichOle\~~FXAW1674LNEI%YU2APKZK.png1 G6 [" F% Q9 K5 ^
, I; ~0 {, o1 X6 i1 O9 v9 d5 b8 o
. E$ \3 J: B2 S& _% z* s
~~FXAW1674LNEI%YU2APKZK.png

评分

参与人数 1PLM币 +5 收起 理由
admin + 5 很给力!

查看全部评分

上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

全部回复1

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了