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

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

  [复制链接]

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

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

秋爱 楼主

2015-7-17 11:45:11

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

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

x
本帖最后由 秋爱 于 2015-7-17 23:15 编辑 & w# r, z! p; a5 O) M
0 @  u- w( `' `7 K  c/ r
tag_t part_tag = NULL_TAG;1 w( A) z, _- |
double origin [3] = {-20.0,-20.0,-20.0};
6 @! ^+ D! }' {' f, F5 d% F8 Uchar  height[] = "80";
; E* `2 n0 w7 Q& n# Ychar  diam [] = "30";6 Y  I& b5 @' I2 s4 Z
double direction [3] = {0.0,0.0,1.0};8 C9 Y, T5 W0 ^% f. `( F
tag_t  cyl_tag;  v& r- u2 _# i5 K6 J* _
uf_list_t * edge_list;
- }! }& N# \4 a, F  `3 |tag_t edges;4 p, W$ H4 f* N3 ~5 S
double  ctrcoodrs[2][3];# F7 @9 q# K' m$ I! f8 P$ E
int count ;, n/ w: O& S$ ~! T% D5 e8 g
int i=0;
- y, K, v& X9 ^! G$ E" {UF_CURVE_line_t line_coodrs;, o! w5 ~" D% ?  l, V
tag_t line_tag = NULL_TAG;, M3 W( ]8 @* Y' [
char msg [256];

% S; E8 K' f1 y1 W4 CUF_PART_new("e:\\develop\\aa.prt",1,&part_tag); //创建部件aa3 j+ ^5 ~& Q, A$ `
UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction,&cyl_tag);//创建圆柱体+ ?' f6 R/ Z; a$ }0 z
UF_MODL_ask_feat_edges(cyl_tag,&edge_list);   //通过特征找到边,并存放到链表中。
7 V0 X0 F7 A( u1 E' ?& oUF_MODL_ask_list_count(edge_list,&count);     // 获取链表中边的个数$ [% l- H" ~6 P( [4 b* V- p
        if(count > 0)     
$ A$ M& k8 H+ z, O        {
" W6 B) t( ^) C, `                for(i=0;i<count;i++)
7 ]4 E- g- G5 v" @6 L                {6 c8 N6 q0 R: G$ A- `
                        UF_MODL_ask_list_item(edge_list,i,&edges);//取出边' \2 K0 @% t! |0 H$ M
                        UF_CURVE_ask_centroid(edges,ctrcoodrs);//获取两个圆心的坐标. R* v8 g: N* U5 Z$ D9 v: A
                }$ w) [0 R+ B5 H8 n' z; M* @
                //给中心线的起点和终点赋值
; [4 D' A# ~$ z) U% E% w1 n. X    line_coodrs.start_point[0] = ctrcoodrs[0][0];/ i+ Z" k7 ^8 \  s6 w
    ine_coodrs.start_point[1] = ctrcoodrs[0][1];6 \; C# }' p! E, ]- T; S  z
    ine_coodrs.start_point[2] = ctrcoodrs[0][2];
1 M# S2 h4 N) d& g    line_coodrs.end_point[0] = ctrcoodrs[1][0];" E. u5 R. ?0 |$ t/ D* a# L7 S
    ine_coodrs.end_point[1] = ctrcoodrs[1][1];
/ f! A7 V) w% b) Z4 F    ine_coodrs.end_point[2] = ctrcoodrs[1][2];- C$ a0 c$ o( f; ~, j5 K
! G6 d# g% Q8 i7 D$ X9 y" x1 t/ ?
UF_CURVE_create_line(&line_coodrs,&line_tag);//创建中心线
" W2 e' R5 Q1 F% ?) f+ t- I        }
8 n* q# K: z9 \) y6 Q& {        else
. e9 d2 t+ @% R* O% I        {4 L+ p. o  X) l; Z& q, \
                uc1601("没找到符合要求的边/圆弧",1);$ E+ H! I3 K- t7 J0 x& q
                return;/ I' e2 J, P4 P% A- \4 W: D1 t
        }

$ v4 K, N  V. h7 G+ u- 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]);* A0 y5 l' O0 n/ m) |* Z
UF_UI_open_listing_window();
9 I, G0 [; E  e0 H& g" hUF_UI_write_listing_window(msg);
$ g, |6 g$ A+ f) r& }1 M; f) oUF_PART_save();! M$ X% X* g3 ~$ x
UF_PART_close_all();
. x1 Z- }; Y9 E8 P
9 D& T. |) f2 e
+ c9 ?1 V1 K; v% C' ]
: ^4 _7 A, y/ G- m; j+ ]9 ?: v% N/ P; |

, {# e8 s0 M4 F任意转换圆柱体位置中心线随之移动3 t4 P2 D9 ^& v3 |0 K* N( `

' B& a7 t/ @+ O

( O  r. i' f, s3 Jfile:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\749587430\QQ\WinTemp\RichOle\~~FXAW1674LNEI%YU2APKZK.png
* s  j# j! q+ a- U9 L& N' W7 O/ b
1 |- b9 P) y5 D! A$ d$ v
5 z$ B" f) b9 E6 A* ?. Y2 i1 Z) d
~~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二次开发专题模块培训报名开始啦

    我知道了