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

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

  [复制链接]

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

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

秋爱 楼主

2015-7-17 11:45:11

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

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

x
本帖最后由 秋爱 于 2015-7-17 23:15 编辑 3 B& {5 I- r* V

+ [( |+ y  t+ H( Atag_t part_tag = NULL_TAG;
# `6 ^8 N# C+ W/ Adouble origin [3] = {-20.0,-20.0,-20.0};
; i% `1 i* U. V: b. J/ Dchar  height[] = "80";
, ?/ x) c/ b3 y: Rchar  diam [] = "30";( B6 I  g$ H$ k/ |8 z8 S
double direction [3] = {0.0,0.0,1.0};
) s+ x3 D9 i6 u& a  i% ^8 D8 Rtag_t  cyl_tag;
+ m3 W4 f! b9 `* y. i$ G3 w# iuf_list_t * edge_list;8 K5 E1 T) _2 |- Y
tag_t edges;; o) [1 g* z4 z, C3 [% }2 T
double  ctrcoodrs[2][3];
  `% D* k% D* S. [/ Y" }int count ;
7 t- A6 W+ D; N" A3 Vint i=0;- L( [* @0 O' U2 P
UF_CURVE_line_t line_coodrs;
( s' |" N- Z9 A  Q7 Q3 ctag_t line_tag = NULL_TAG;" c$ e! d- G4 u: Y) U
char msg [256];
* Z% l' g/ ^# p( t" @) x
UF_PART_new("e:\\develop\\aa.prt",1,&part_tag); //创建部件aa0 r9 m5 j8 {4 y: b% R
UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction,&cyl_tag);//创建圆柱体# Y- {" L' V8 }5 F/ L
UF_MODL_ask_feat_edges(cyl_tag,&edge_list);   //通过特征找到边,并存放到链表中。' k/ Y: f! `- M) ^5 N" X
UF_MODL_ask_list_count(edge_list,&count);     // 获取链表中边的个数
. Q$ a9 K1 n4 X! p6 t        if(count > 0)     
- G' g! y5 [6 K  E0 T        {6 r* \2 e$ o' H) u+ z
                for(i=0;i<count;i++)6 |0 P+ a& [5 w$ l- S
                {$ `% y: a; }6 S% ^9 \" H
                        UF_MODL_ask_list_item(edge_list,i,&edges);//取出边
2 S' h3 i  C2 T2 w8 |* a* a* e                        UF_CURVE_ask_centroid(edges,ctrcoodrs);//获取两个圆心的坐标$ j9 D2 R$ H) J* b# v6 [
                }
. `& q8 Z& B# X% P                //给中心线的起点和终点赋值$ p5 e! \& N2 P: F3 z% j( }) M( ?, C, h
    line_coodrs.start_point[0] = ctrcoodrs[0][0];2 v  w, b8 D, T
    ine_coodrs.start_point[1] = ctrcoodrs[0][1];# T% X$ X9 h( F9 C
    ine_coodrs.start_point[2] = ctrcoodrs[0][2];  v1 T1 n, P/ T2 E
    line_coodrs.end_point[0] = ctrcoodrs[1][0];% @% s( F3 x  ^; Y3 U
    ine_coodrs.end_point[1] = ctrcoodrs[1][1];  X/ N  [+ S  \5 Q; ^8 F7 r! o* W1 Z
    ine_coodrs.end_point[2] = ctrcoodrs[1][2];1 n; K2 _+ |! ]& j
! h9 Y+ R' J) e& h% S1 ?4 T: S
UF_CURVE_create_line(&line_coodrs,&line_tag);//创建中心线5 _9 d4 a2 e# Y4 r- v7 g" Q& i
        }
9 P3 U) Z; U: W& `, |7 r5 ]! z1 I        else/ a" g' A9 G3 t& e* i  [: p/ y0 h
        {
+ l5 u& k( v/ X                uc1601("没找到符合要求的边/圆弧",1);- s, s) b8 G, H4 l" }1 }
                return;; K, N& r( f2 q. P' U3 f1 N9 p
        }

. U$ u3 i: U0 ~8 _( ?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]);7 F( u9 R  F! W# `8 B3 c
UF_UI_open_listing_window();
0 F6 v# D' f" A6 [$ RUF_UI_write_listing_window(msg);3 x, i9 B: S4 ]3 C$ k9 B
UF_PART_save();
6 |' H: }4 x) p: \UF_PART_close_all();

3 A5 @. C* o: q# q7 T! m6 s5 r) P( d% x3 J/ s4 M$ F: F5 d1 @. l
5 r" P1 O7 Y( W+ K, ~3 G; L

+ s- G  v5 a$ V, G* g8 d- ]9 J/ N
3 r" G# O2 @- w3 Y# {
任意转换圆柱体位置中心线随之移动
' E  \: w# l4 n# ~) B" b' ]
6 ^6 W$ ~# r1 [4 M) ?
) z- H1 h5 }$ Q2 k' [# j1 w
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\749587430\QQ\WinTemp\RichOle\~~FXAW1674LNEI%YU2APKZK.png
* Q+ r3 u% h: l/ T' [1 C+ Z4 d
0 h0 j' d2 g5 u
/ l8 D. M" S$ i
~~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二次开发专题模块培训报名开始啦

    我知道了