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

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

  [复制链接]

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

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

秋爱 楼主

2015-7-17 11:45:11

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

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

x
本帖最后由 秋爱 于 2015-7-17 23:15 编辑
- ^* P( U8 Y4 A7 p9 H* f- e( t
8 |; b8 R+ Q) K+ V5 itag_t part_tag = NULL_TAG;& _9 G8 d1 D  m
double origin [3] = {-20.0,-20.0,-20.0};
1 O; V) f3 W, m! f5 Echar  height[] = "80";0 g4 l$ @  }# F7 [7 r$ I
char  diam [] = "30";0 Q; W4 |/ u, z( o/ u9 ~
double direction [3] = {0.0,0.0,1.0};1 ^; W  G1 S/ u9 @  K
tag_t  cyl_tag;
: y! |+ u- N7 ^) ?$ T$ B3 }4 Wuf_list_t * edge_list;
; G# `/ A; c/ Q- H; ?& I  ntag_t edges;* d" Y5 {6 S' y2 [7 h- J7 e
double  ctrcoodrs[2][3];/ L" I' Z) L6 y
int count ;
0 q9 e9 u1 D  ~$ R  ]8 `  n% bint i=0;( H$ o1 T* t' k( V- y
UF_CURVE_line_t line_coodrs;
" G/ C  @; h; y6 etag_t line_tag = NULL_TAG;
8 x$ }3 I1 F8 _char msg [256];
" ^& w" e* y# e: l* E, u
UF_PART_new("e:\\develop\\aa.prt",1,&part_tag); //创建部件aa; {8 q' y6 \2 S0 l2 |
UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction,&cyl_tag);//创建圆柱体
% Z: N: J, W- jUF_MODL_ask_feat_edges(cyl_tag,&edge_list);   //通过特征找到边,并存放到链表中。
) s8 V  ~( V# P4 FUF_MODL_ask_list_count(edge_list,&count);     // 获取链表中边的个数; r+ X3 D: B9 o( h- z/ r% a7 K
        if(count > 0)     . t+ _, q- l- T$ B, J; x7 A
        {  c: Q; W4 e1 e! Y
                for(i=0;i<count;i++)3 L* ^  K: o* m6 D* P) j' f
                {9 {4 E, E  J/ B/ S5 @! r5 R
                        UF_MODL_ask_list_item(edge_list,i,&edges);//取出边9 l) e+ i1 C7 D1 e/ K6 t+ x
                        UF_CURVE_ask_centroid(edges,ctrcoodrs);//获取两个圆心的坐标, ?0 c# j$ Y/ g% M& c5 U1 H
                }0 w' s! J9 }, U) }
                //给中心线的起点和终点赋值' B( ?* L# g5 O$ |
    line_coodrs.start_point[0] = ctrcoodrs[0][0];9 f1 _! ?& V; e  q
    ine_coodrs.start_point[1] = ctrcoodrs[0][1];
  H9 x  O8 h6 o; T$ R    ine_coodrs.start_point[2] = ctrcoodrs[0][2];3 f6 z  r5 b9 t5 n# N; Y( n
    line_coodrs.end_point[0] = ctrcoodrs[1][0];/ ?6 L& M/ f) L+ G5 P. j/ S
    ine_coodrs.end_point[1] = ctrcoodrs[1][1];3 Q2 j$ z9 \. c" Z$ y2 M2 z* a7 X
    ine_coodrs.end_point[2] = ctrcoodrs[1][2];
' e- \# p3 W" K0 g/ g, g# c
' I; M1 u& b, CUF_CURVE_create_line(&line_coodrs,&line_tag);//创建中心线
" J* n# q3 t+ x+ T0 f; M  q        }
6 r4 T/ |, \5 ^4 W' h3 g        else
9 z/ {2 `9 S+ V0 ~2 c        {
0 `" L2 E# t0 o# [                uc1601("没找到符合要求的边/圆弧",1);
5 ^1 G; k' Q4 c- X2 y% o                return;
" S% M# Q1 i/ j2 i' \0 D$ g        }

) {' R/ o4 [( ^. y' z( L& h: J% l7 Fsprintf(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]);
/ k$ `5 S% U7 J# [2 lUF_UI_open_listing_window();( s/ [' _5 }$ b  }
UF_UI_write_listing_window(msg);
" m( b( ]4 H" V, n9 G2 u/ X8 A4 jUF_PART_save();; E+ }2 f" _5 @8 |: j7 W( C' G
UF_PART_close_all();

/ ]& K7 r+ d) S% U2 H3 U
* {2 T" Q9 g5 F/ f) G: E8 B
" B# W% V- c) X7 S; W

: L/ o# H; t% m& P, m( E$ C
& b( R. f9 E0 K2 w. Y# ?
任意转换圆柱体位置中心线随之移动
$ Y+ e. T) R; y/ l( e
' L$ y; ^: T& G& k

- G* b( t  f6 K. I4 ]* [0 j' Ffile:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\749587430\QQ\WinTemp\RichOle\~~FXAW1674LNEI%YU2APKZK.png
* m8 d& I$ N6 y9 O3 r' i$ o& G- W8 A& b, U" X

0 z: y2 Z  m5 e5 K0 d5 i- R! 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二次开发专题模块培训报名开始啦

    我知道了