PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

  [复制链接]

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

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

admin 楼主

2014-11-24 07:57:59

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

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

x
使ufun完成以下功能; K9 B' e* h6 n! m- Z4 Z: R

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

使用ufun完成以下功能 新建一个部件文件,比如:c:\plmhome.prt 在部件中创建一个圆柱体,通过圆柱体创建圆 ...
& z# e8 s$ L5 C3 p2 t0 D

, U9 k1 Q7 m8 g4 ]- {1.新建一个部件文件,比如:c:\plmhome.prt0 P2 X: Y  R8 p$ \; ^
2.在部件中创建一个圆柱体,通过圆柱体创建圆柱体的中心线( J& F% [4 B& t8 o
3.询中心线的起点和终点,并输出到信息窗口
* I' w& n* Q) }: _% w; \4 A4.存部件
+ O9 U9 j6 y: @& D9 P5.关闭部件
5 s* e3 Q* M+ Y2 O
. s& G; H. J4 x; q提示:使用到的函数:
) ^  y1 v7 }. n1 P1 V
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
/ W" a( x8 X& F( |" Z0 w

9 v% l9 k( {2 Y" P
" ^5 a* O% R- X3 j: A: [8 q
5 Q% O( o7 f  x4 s$ ^
上海点团信息科技有限公司,承接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;
% f2 m6 v) Y$ S$ k# u. q% _! G8 L" N        tag_t cylTag = NULL_TAG;4 a) O# r6 X! Z$ L
        tag_t bodyTag = NULL_TAG;7 f8 m$ }8 S$ q" f) ^, R
        double cylOrigin[3] = {20, 30, 40};
) t) \9 R: t* s' p        char cylDiam[256] = "50";; t, _- o+ Q( h+ C* ^4 G8 N
        double cylDirection[3] = {0, 0 ,1};  d) l) S* p- U# C! Q1 e# Y
        double height = 60;) _! V3 v, ]$ w9 z# ^
        " T$ E. l4 Q! Q! U8 o( I

6 x$ K7 B& A- E; a" V        char cylHeight[256];
6 n( w) J: |2 o8 t" X        sprintf_s(cylHeight, sizeof(cylHeight), "%f", height);
. a4 u8 C% L1 `7 v3 b! y        //创建part
+ g6 c# o; c6 V1 C& y( p! i        UF_CALL(UF_PART_new("D:\\leaf.part", 1, &newPartTag));# v- S6 B& B. Z; R7 {5 u
        //创建圆柱
  M. ?4 v$ c: i8 [: ^        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN, cylOrigin, cylHeight, cylDiam, cylDirection, &cylTag));4 [, J; P. Y9 d7 D% {7 o% {
        //获取圆柱特征所在的体
) _+ f2 C# |( C. j/ L        UF_CALL(UF_MODL_ask_feat_body(cylTag,&bodyTag));( |" C5 o, i+ ^( }
        //获取体上的边
! \% w- g4 i, A9 G; u7 E% z        uf_list_p_t edge_list ;% ?. X2 f7 l! X. [+ x
        UF_CALL(UF_MODL_ask_body_edges(bodyTag, &edge_list));1 F3 ~$ y" R" b( P$ T+ }
        //得到边的数量
; V, @6 [/ {; N) @        int edgeCount = 0;" y! Z- L* u) {; A
        UF_CALL(UF_MODL_ask_list_count(edge_list, &edgeCount));
% _3 ^- T* U( U( w/ @! a        //打印边的数量8 N# r6 x8 g0 \" U4 n0 o/ @
        char cCount[256];; s# t+ X7 B4 s8 j% Q
        sprintf_s(cCount, sizeof(cCount), "cylinder实体上的边的数量:%d",  edgeCount);' ~) a8 K: Q& Z# G9 b' f( B
        uc1601(cCount, 1);
  K/ B3 m" C$ S+ J) P( s- y       
+ a6 U2 l; j; H! R        int error;
6 Z; L3 ^- ?* p: w- K0 A        double (*point_coords)[3];
) d1 ^8 o9 N) V5 }        point_coords= (double (*)[3]) UF_allocate_memory(edgeCount * sizeof(double [3]), &error );
2 x' R0 B) v$ W; q1 Y        //获取圆柱的上两条边的圆心; G% @1 t* M2 ?( p2 k# ^  `' C
        int i = 0;9 o, X7 O* ~7 X' b* D
        tag_t curveOriginTag = NULL_TAG;1 o6 c8 Z( b5 w: u) O4 e) ?5 F
        for (i; i < edgeCount; i++)
) k& a9 ^8 e. d  ^- l. s& o$ _        {7 X9 c0 d" B) m, z
                UF_CALL(UF_MODL_ask_list_item(edge_list, i, &curveOriginTag));( _, \( A1 e' f7 g
                UF_CALL(UF_CURVE_ask_centroid(curveOriginTag, point_coords[i]));
  h* \: B0 K: }3 t: Y5 |& ^; q- N        }* }9 H9 f7 {: P) K, v$ g  u
        //将圆心存放到直线起始点的链表中* s" Z0 U9 |. @
        UF_CURVE_line_p_t line_coords;
1 _$ H  ^( Q' {& P4 h# s        line_coords= (UF_CURVE_line_p_t ) UF_allocate_memory(edgeCount * sizeof(double [3]), &error );
" V. Q: a9 s4 I$ Z8 M        line_coords->start_point[0] = point_coords[0][0];
& F% o& j% L7 B# ]0 U        line_coords->start_point[1] = point_coords[0][1];$ G# {1 F2 G2 s6 h) Z- ~
        line_coords->start_point[2] = point_coords[0][2];. x) r$ K: |( [
        line_coords->end_point[0] = point_coords[1][0];' i7 S# a# t* `4 _5 T  @, Z
        line_coords->end_point[1] = point_coords[1][1];4 C8 b  F0 R: E. m
        line_coords->end_point[2] = point_coords[1][2];- A3 h9 g; q6 o+ `, C
, z, w; g3 q2 X/ j; l1 G% J
        tag_t lineTag = NULL_TAG;7 b/ A% T# x7 @$ v% d! G
        4 T4 V6 q2 D- ~1 y" M( z
        //创建直线3 Z# _6 E! I% ]. p4 P. C
        UF_CALL(UF_CURVE_create_line(line_coords, &lineTag));6 A, L' ?0 l- n! X+ ?
' I* M( A+ V0 Q
        //打印直线的端点
1 \* o3 Y: v( ~& z# e        char msg[256];# j$ S1 w. t1 ~0 m& p" i7 \' V
        sprintf_s(msg, sizeof(msg), "创建的直线的起点是:%f、%f、%f,\n终点是:%f、%f、%f.",# S4 I2 l5 w9 u  Z: Y  Y) e
                        line_coords->start_point[0],, d3 |. V" f. U; ]
                        line_coords->start_point[1],
* J% l5 B# `$ c; Y, c) J9 e5 g                        line_coords->start_point[2],
+ Z  G* u* H7 V* A- ]2 l                        line_coords->end_point[0],
" R% n( y* Q1 P- S  T. W! f                        line_coords->end_point[1],
  I* J9 w4 a9 ^: z( [, `- E) E! t9 L: t. H                        line_coords->end_point[2]);/ S: J4 Y. N. G: l% n' a% r
        UF_CALL(UF_UI_open_listing_window());
% ?# v. `8 |0 V! M3 K        UF_CALL(UF_UI_write_listing_window(msg));
% y2 h4 m; d; d: F5 f        //UF_CALL(UF_UI_close_listing_window());" h- u% G8 ?9 ^5 W- X* c  ]
. O) ^: l$ X" C1 D+ j; A  c
        //释放动态内存9 q4 N9 V5 a5 @
        UF_MODL_delete_list(&edge_list);
4 [/ M& t, a6 X- E9 U* o        UF_free(point_coords);
# z, A  L3 \3 t: [# e        UF_free(line_coords);
! ], v, k; r8 Z" v4 x5 S# T3 O5 o) ^- V" T5 T1 @* c; {) @$ l
        UF_PART_save();% L- N3 T9 ?0 Z/ `2 C
        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二次开发专题模块培训报名开始啦

    我知道了