PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

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

[资料分享] PLM之家NX二次开发:第二次课后附加作业

  [复制链接]

2014-11-26 07:50:53 3360 1

admin 发表于 2014-11-24 07:57:59 |阅读模式

admin 楼主

2014-11-24 07:57:59

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

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

x
使ufun完成以下功能/ c7 U& J  l' l# P

使用ufun完成以下功能 新建一个部件文件,比如:c:\plmhome.prt 在部件中创建一个圆柱体,通过圆柱体创建圆 ...

使用ufun完成以下功能 新建一个部件文件,比如:c:\plmhome.prt 在部件中创建一个圆柱体,通过圆柱体创建圆 ...
( o! d' l0 B' |' }7 S

# N- i! m* z& L2 z, N8 H1.新建一个部件文件,比如:c:\plmhome.prt% y* G! r( u/ I8 w* U4 s
2.在部件中创建一个圆柱体,通过圆柱体创建圆柱体的中心线0 R8 j9 z) {9 C* V# {; I5 T
3.询中心线的起点和终点,并输出到信息窗口4 Z' K# u( Q) `# J. J
4.存部件# Z. B8 H  @2 O) D- y! i/ p
5.关闭部件
$ v) ~& r* T0 z* Y4 k
# D4 G. h5 R5 j' h# x3 r: G$ _: n提示:使用到的函数: : w: M, a' P2 t% A
UF_PART_new,UF_PART_save,UF_PART_close_all
UF_MODL_create_cyl1,uf_curve_create_line,uf_curve_ask_line,UF_UI_open_listing_window,UF_UI_write_listing_window
+ \0 D0 P$ G9 y1 y

) X3 V% Q  _) d- i* [  ^! H
, c+ o) a/ ]1 ?5 c# s0 y2 K% C, u
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复1

leaf 发表于 2014-11-26 07:50:53

leaf 沙发

2014-11-26 07:50:53

tag_t newPartTag = NULL_TAG;
6 Z. u2 q+ _% q& U% Q& B3 f        tag_t cylTag = NULL_TAG;$ R' A1 P- g! F, A+ n
        tag_t bodyTag = NULL_TAG;
( _! r, G6 ^4 ~% y2 M        double cylOrigin[3] = {20, 30, 40};
* G# `, \! u7 N' u" r        char cylDiam[256] = "50";$ P" v+ r8 W+ r8 v( Q3 Q6 w
        double cylDirection[3] = {0, 0 ,1};
& }4 x, x3 p) z* `4 h5 O# b        double height = 60;3 o& w5 C% z3 N- M. h
       
% n$ E) F! w8 L5 r: r1 i6 H  H6 J: h: R! G
        char cylHeight[256];0 `, Q; B; s: `' F7 @: ^
        sprintf_s(cylHeight, sizeof(cylHeight), "%f", height);5 H/ K, o! K+ d9 {5 J: q* N
        //创建part' O4 T) S' ^$ V. h
        UF_CALL(UF_PART_new("D:\\leaf.part", 1, &newPartTag));6 y3 x/ ^9 \3 d- i) }
        //创建圆柱+ Q; o/ R& c% s, C5 ]
        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN, cylOrigin, cylHeight, cylDiam, cylDirection, &cylTag));
0 U: v3 ~) ?: D. L3 v% n6 n        //获取圆柱特征所在的体
% r7 A5 l; B9 |7 P% H        UF_CALL(UF_MODL_ask_feat_body(cylTag,&bodyTag));, q) p0 f1 b7 L. c- B( \1 K4 j; v
        //获取体上的边
; W3 \+ i6 b* o5 C/ Y$ ]: T        uf_list_p_t edge_list ;
+ {$ t* H- u" B        UF_CALL(UF_MODL_ask_body_edges(bodyTag, &edge_list));
% w$ j  V) d' b+ x5 @& O" g        //得到边的数量
( e) W/ f2 d1 {4 T6 p( t; b! z( O" E        int edgeCount = 0;
/ r/ I& I: w$ ^9 C        UF_CALL(UF_MODL_ask_list_count(edge_list, &edgeCount));5 j& N1 R9 L3 `5 @- T
        //打印边的数量4 k4 B- v1 d% ?4 |
        char cCount[256];$ w' l* t5 M$ ]* ^% P8 p) Q- ^
        sprintf_s(cCount, sizeof(cCount), "cylinder实体上的边的数量:%d",  edgeCount);
+ ^2 K# _( x# J        uc1601(cCount, 1);, B) i7 k' K: p  F
       
# e4 N$ U" ?; G: R        int error;. w& o- E; I/ s) X
        double (*point_coords)[3];
) u4 j7 L" t3 C( s2 [2 T8 P, ?" D        point_coords= (double (*)[3]) UF_allocate_memory(edgeCount * sizeof(double [3]), &error );4 H& k: W! e2 [0 b* D2 M
        //获取圆柱的上两条边的圆心6 Q' |5 B* [" K" @, r; t) w9 Y/ y
        int i = 0;
  _, e  r9 f2 l        tag_t curveOriginTag = NULL_TAG;- i: \; p: V. z. H9 `
        for (i; i < edgeCount; i++)9 h1 j9 }; O! q4 t; y% ?6 c
        {9 J& ~# S& I0 i* \$ P
                UF_CALL(UF_MODL_ask_list_item(edge_list, i, &curveOriginTag));
/ J- s0 b$ A5 ~0 V( k4 p6 L% y                UF_CALL(UF_CURVE_ask_centroid(curveOriginTag, point_coords[i]));! c5 \9 D. g' l: e. r5 U6 g) c, b
        }
* |$ l8 |: z/ F% k6 c        //将圆心存放到直线起始点的链表中
3 Z  P. R% n( `        UF_CURVE_line_p_t line_coords;
  N2 P! W6 H+ ~, h) w& j+ Z+ b! u  g0 V        line_coords= (UF_CURVE_line_p_t ) UF_allocate_memory(edgeCount * sizeof(double [3]), &error );! l& @) ~7 l2 y2 l: e9 k
        line_coords->start_point[0] = point_coords[0][0];
4 J6 R1 V, O+ z1 M9 K3 e        line_coords->start_point[1] = point_coords[0][1];
* j4 Z* e0 W) R0 s) R' A3 _        line_coords->start_point[2] = point_coords[0][2];% N! |4 H5 w  y/ O6 h  h
        line_coords->end_point[0] = point_coords[1][0];' ^" Y& T! b* v3 q' V( ?1 c2 ~; o/ n) p
        line_coords->end_point[1] = point_coords[1][1];
6 A9 I% d; q# c3 a+ }, k  ^        line_coords->end_point[2] = point_coords[1][2];& D1 M6 ~: {# ?$ \
+ f) y6 r+ O0 J3 T) D2 W# k& j5 b2 R) A
        tag_t lineTag = NULL_TAG;5 O, q( F- V  V8 E8 {
       
0 ?& _. {& r. P" L  [: i3 w2 S        //创建直线
  W/ ^" m$ a1 c" _& z- n        UF_CALL(UF_CURVE_create_line(line_coords, &lineTag));
9 [8 k+ e0 {, O: y5 M1 X
: T4 N( E9 ]5 O( o0 v7 W  m        //打印直线的端点+ P3 K% q: n8 n5 X# R9 e: z  ~0 p2 @
        char msg[256];
6 w( i' t* r5 ]) L1 ^" m        sprintf_s(msg, sizeof(msg), "创建的直线的起点是:%f、%f、%f,\n终点是:%f、%f、%f.",
( Y  h. v: e! \. o! H                        line_coords->start_point[0],
( G; K; ?: J; e                        line_coords->start_point[1],. D% S; [+ u1 z1 d: x
                        line_coords->start_point[2],
4 O3 e' M# B* {( H                        line_coords->end_point[0],- j+ `8 I" [7 z- n9 f/ Y. ^
                        line_coords->end_point[1],# K. x# ?' [) l0 H7 h
                        line_coords->end_point[2]);. p0 q0 p% c5 M& z0 I& z3 B& n, S
        UF_CALL(UF_UI_open_listing_window());
' T$ i: U- k' _. M        UF_CALL(UF_UI_write_listing_window(msg));7 w) F6 \5 w" O5 c
        //UF_CALL(UF_UI_close_listing_window());5 R, f8 g+ \' z: w
" `- r0 `. \. C  o' Z
        //释放动态内存! S/ O* m9 ?( q/ l: a7 v
        UF_MODL_delete_list(&edge_list);! i& W$ t' }, _0 a8 S7 D! I0 w  w! Z
        UF_free(point_coords);; ?9 t4 q( A! v4 C* W0 a
        UF_free(line_coords);
4 o( O7 q. h- a' N- k% z/ F6 r$ X
        UF_PART_save();4 v) D& V' a9 D! ^/ r
        UF_PART_close_all();

评分

参与人数 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
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了