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 3381 1

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

admin 楼主

2014-11-24 07:57:59

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

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

x
使ufun完成以下功能7 @0 S9 u8 i8 i+ L

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

使用ufun完成以下功能 新建一个部件文件,比如:c:\plmhome.prt 在部件中创建一个圆柱体,通过圆柱体创建圆 ...
1 v  z6 ]) X& Y6 L9 k8 K3 O* s" S
! W3 S" m5 x, A* s; X: E, e
1.新建一个部件文件,比如:c:\plmhome.prt
3 ?0 M# F7 k7 @, ^8 Y. o4 E/ F2.在部件中创建一个圆柱体,通过圆柱体创建圆柱体的中心线5 N2 p; \- e0 }1 [6 w+ L
3.询中心线的起点和终点,并输出到信息窗口2 R* c) P" l9 n  z" N( X! h
4.存部件
( x  k# p$ r0 h5 S& S5.关闭部件. r7 c. N& A7 D9 a5 K/ D8 a) g
- c! u1 n" K9 A! z) e* c
提示:使用到的函数:
/ k2 f9 C0 Q/ u
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

2 b( D4 n' V. _( |) [: M
7 @) |7 h4 `6 Z* {: W' F9 S5 @$ P
' X+ M2 U# d! Y, |. p8 q5 j  l) C: Y
" t! C) M/ q7 w; X! \! T
上海点团信息科技有限公司,承接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;7 u# G: i) q$ ?2 c9 M0 l
        tag_t cylTag = NULL_TAG;
) q3 `, I# r" J$ o        tag_t bodyTag = NULL_TAG;( A* _& H1 n: H. z8 f  v0 {/ w& i# m: }
        double cylOrigin[3] = {20, 30, 40};
, f) d9 U& n* F, U5 v        char cylDiam[256] = "50";1 }" ^, p2 j( s9 l( [' S& C3 E! v
        double cylDirection[3] = {0, 0 ,1};
( o6 v3 y  d1 r+ s3 Z8 a& @        double height = 60;6 O6 o8 Q2 I# l7 f& s! }9 U: X
        ; m( U- d# F& g* k1 I

! ?' j- E2 Z* n. L/ U        char cylHeight[256];3 ?0 P  B; G' l" s' C
        sprintf_s(cylHeight, sizeof(cylHeight), "%f", height);8 V/ n/ x( q9 Y( W. G! \* D! @4 s5 S
        //创建part
& _8 A) G0 {* ~& n9 H        UF_CALL(UF_PART_new("D:\\leaf.part", 1, &newPartTag));/ _; S: a% y! B; R
        //创建圆柱
. w- F* k1 K! a+ v& j4 V( @        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN, cylOrigin, cylHeight, cylDiam, cylDirection, &cylTag));
& {' z+ s; f# d' ^9 i        //获取圆柱特征所在的体
& K- A4 a( t# e+ a: M        UF_CALL(UF_MODL_ask_feat_body(cylTag,&bodyTag));
# m. }# n  t7 _! ~4 _        //获取体上的边- O& I/ u1 I" Y: j2 `- E
        uf_list_p_t edge_list ;$ S- z9 a5 W/ Z5 P9 S" C% s
        UF_CALL(UF_MODL_ask_body_edges(bodyTag, &edge_list));7 L7 T# x% U& A* I2 ^2 e; f
        //得到边的数量) v9 y% N& c1 n% C
        int edgeCount = 0;
* ]0 r' T! c& A) j/ |3 }" l        UF_CALL(UF_MODL_ask_list_count(edge_list, &edgeCount));3 `' W6 ?% j  x* O! b
        //打印边的数量7 j- ?, ?  j9 L* t
        char cCount[256];! h$ [+ y, @/ A" @7 L9 k1 }% n
        sprintf_s(cCount, sizeof(cCount), "cylinder实体上的边的数量:%d",  edgeCount);
0 u* N' ^3 r' }7 m7 C4 p        uc1601(cCount, 1);( C* c! a1 C" ]& s' s/ v% f9 o+ ]; o9 D
       
6 A+ n$ |1 ^, B        int error;
1 F8 b% ~; G5 P8 H' X4 u+ ?        double (*point_coords)[3];! L+ w$ t( B8 U: ]/ J
        point_coords= (double (*)[3]) UF_allocate_memory(edgeCount * sizeof(double [3]), &error );
4 i% A3 {/ o2 w  q. o5 y  o+ L        //获取圆柱的上两条边的圆心' W+ H; I" V9 d. u
        int i = 0;
' C6 |: s) ^( J6 K4 ?& l# S' ]        tag_t curveOriginTag = NULL_TAG;
( U* m- _& _$ {1 m        for (i; i < edgeCount; i++)- x4 ^6 _+ H" D# o
        {3 i& ]/ p) {/ J1 M/ Z+ h
                UF_CALL(UF_MODL_ask_list_item(edge_list, i, &curveOriginTag));
) x' y* e2 r/ Q  Y                UF_CALL(UF_CURVE_ask_centroid(curveOriginTag, point_coords[i]));
. D( ]$ A, h" I2 Y8 D        }' P' W5 K9 o4 B6 c6 w: [! U
        //将圆心存放到直线起始点的链表中7 N5 X8 O( u& M3 }% {2 @
        UF_CURVE_line_p_t line_coords;+ B- W# ~! b: I1 v& o
        line_coords= (UF_CURVE_line_p_t ) UF_allocate_memory(edgeCount * sizeof(double [3]), &error );" j  Z, N0 [# [, _5 X
        line_coords->start_point[0] = point_coords[0][0];
& x% N! F, y/ S( p        line_coords->start_point[1] = point_coords[0][1];) M) \- W& U1 p6 P# L  c( L- R
        line_coords->start_point[2] = point_coords[0][2];/ @. e" X' z4 S+ u
        line_coords->end_point[0] = point_coords[1][0];; i6 Z& T4 _3 e9 u* c( K/ w. D
        line_coords->end_point[1] = point_coords[1][1];
1 k2 I8 b& ~7 t5 W! @        line_coords->end_point[2] = point_coords[1][2];
- {6 B5 K% U% v% G1 Q; h7 I- Q
) `. H$ Z! K" u. w8 J        tag_t lineTag = NULL_TAG;; F, F$ R) t5 Q" w! j
        " l# g$ K7 I9 F# u3 z- b
        //创建直线; V# D; F4 ^: P2 T9 C. B# a& F, b" Y
        UF_CALL(UF_CURVE_create_line(line_coords, &lineTag));
- a; H% \* g  C4 z& D/ T
* W' q2 _' s; z9 h' V2 m        //打印直线的端点+ s! f* K' A- I. ]
        char msg[256];; _) [& g; ?: K$ P3 e. p# L
        sprintf_s(msg, sizeof(msg), "创建的直线的起点是:%f、%f、%f,\n终点是:%f、%f、%f.",
7 V! g4 C. T- v8 E                        line_coords->start_point[0],. E( O; }7 ^$ _' o2 O
                        line_coords->start_point[1],5 E8 b* y( x1 r
                        line_coords->start_point[2],
/ E9 f& T5 C; D  n; I                        line_coords->end_point[0],
; H6 N; l( O9 A2 O4 Z9 j                        line_coords->end_point[1],
+ R: ^$ E# T  J% T8 w& c5 o( R                        line_coords->end_point[2]);3 N, r' H; k8 O1 a- L, o
        UF_CALL(UF_UI_open_listing_window());! D2 _9 u; R1 a. p. H9 q
        UF_CALL(UF_UI_write_listing_window(msg));! G% [2 q0 B7 D
        //UF_CALL(UF_UI_close_listing_window());* B3 v& `, p6 b+ A4 h' _
. h" M! v& U$ Q$ q  _3 D& i
        //释放动态内存2 r# W9 }( @: e1 D
        UF_MODL_delete_list(&edge_list);
1 O2 H- j; ^: P6 S) h        UF_free(point_coords);
' u( z2 n6 a* d9 K" g4 p. t% X( _        UF_free(line_coords);  n* h) Q+ L; ]2 K
: z& S3 d# ^  X. X8 w. y
        UF_PART_save();
4 r; v2 [* m0 g/ |, I" s$ ]8 W        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二次开发专题模块培训报名开始啦

    我知道了