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

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

admin 楼主

2014-11-24 07:57:59

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

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

x
使ufun完成以下功能
( Y" c2 N; s4 D& a( K* E. r) ?

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

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

8 \: q7 e% G# p
5 `+ S0 h# d$ F2 ?# p! b
1.新建一个部件文件,比如:c:\plmhome.prt3 X4 f; P" H/ y) S
2.在部件中创建一个圆柱体,通过圆柱体创建圆柱体的中心线$ h9 p6 E9 c- G2 A- Q) @, H& n
3.询中心线的起点和终点,并输出到信息窗口; d+ j: X! ~8 [0 T
4.存部件& [( c4 y; h" v
5.关闭部件
$ k+ F# ]- M" `! R- O8 t- |% W1 L; u4 l" b
提示:使用到的函数: . k# O% n+ y' R5 q1 Z7 C& `  p( @+ o
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

& i' P& f' `; w1 Z7 V/ n' t& @/ L' R( f2 d+ @

- e# m* v( f8 w* m+ j8 X
! z: G& m5 Y! E6 _
上海点团信息科技有限公司,承接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;
4 H% _/ d  I" ?/ C, `  w& b  H5 T        tag_t cylTag = NULL_TAG;
" e( K. [$ E. L" L        tag_t bodyTag = NULL_TAG;
; J8 ]5 b' @8 w5 \0 W        double cylOrigin[3] = {20, 30, 40};
9 U% T5 J  c8 w  T9 ^        char cylDiam[256] = "50";8 T9 q& k% x4 ?/ S* m, e$ P
        double cylDirection[3] = {0, 0 ,1};
1 _/ F0 X6 h4 H        double height = 60;/ H: f/ V) s# W  l: @
        : I7 J5 t- Z! H2 {/ a& K) V" O

5 u+ h9 W" r2 @9 x        char cylHeight[256];
5 _( B5 }6 S4 q( _- _' h# E# ?+ k3 |        sprintf_s(cylHeight, sizeof(cylHeight), "%f", height);
/ \: W8 B6 k( t7 |: F% L( p& q) i$ O        //创建part
! N0 K1 D! @! T( G! \+ z) A        UF_CALL(UF_PART_new("D:\\leaf.part", 1, &newPartTag));
% w% x( z& j( ^- L3 B% n! N0 l        //创建圆柱% x- P6 L& r& ~* [1 P. Y7 c# @) R
        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN, cylOrigin, cylHeight, cylDiam, cylDirection, &cylTag));
! {6 r' T' U# K$ {9 J+ t$ a1 Z8 S        //获取圆柱特征所在的体
7 D( {+ W% C) i, g  @1 Y        UF_CALL(UF_MODL_ask_feat_body(cylTag,&bodyTag));* e7 t+ C! c( Z. m8 ^
        //获取体上的边
1 ]1 m5 g- z7 v' z        uf_list_p_t edge_list ;* r+ T) h( u# j
        UF_CALL(UF_MODL_ask_body_edges(bodyTag, &edge_list));) y0 I, \( N( s$ E. _
        //得到边的数量5 f& O, u- t& S! [
        int edgeCount = 0;
% T/ a& C. ^' k6 t' `  k# \, L6 k        UF_CALL(UF_MODL_ask_list_count(edge_list, &edgeCount));0 \- A) z! _) _9 T
        //打印边的数量
3 d6 |+ J; }/ i: t        char cCount[256];3 R+ j0 q  h% U0 ^+ p
        sprintf_s(cCount, sizeof(cCount), "cylinder实体上的边的数量:%d",  edgeCount);0 Z! O' s2 h) u# J9 w/ \1 g
        uc1601(cCount, 1);
: I! n# l$ n: A        - [3 S6 P" r) Z/ w0 _
        int error;
# ^* a  J) d7 W/ K$ Y" i        double (*point_coords)[3];
5 [' }/ s8 K* d" G8 h        point_coords= (double (*)[3]) UF_allocate_memory(edgeCount * sizeof(double [3]), &error );
# t' ]/ X& O5 {; I  r8 ~& H/ M        //获取圆柱的上两条边的圆心% P" ^  v) `  _! t0 G
        int i = 0;, h( B" R1 j  Y- a7 ?6 ]+ I
        tag_t curveOriginTag = NULL_TAG;; p  I5 f! W% F. I2 O
        for (i; i < edgeCount; i++)6 l. U; z1 o$ W5 ]
        {
' Z% c) E9 X8 |! d& F                UF_CALL(UF_MODL_ask_list_item(edge_list, i, &curveOriginTag));
" A) N' T- e/ Z2 n5 q$ Y                UF_CALL(UF_CURVE_ask_centroid(curveOriginTag, point_coords[i]));8 @6 C3 }1 E2 V! D  P4 l! u% |% I
        }( b' m. i* A4 Y9 z. q
        //将圆心存放到直线起始点的链表中
3 K- d/ B: O& L: d) B  U  G, P        UF_CURVE_line_p_t line_coords;0 B& [* _/ n# G7 ]+ P# t
        line_coords= (UF_CURVE_line_p_t ) UF_allocate_memory(edgeCount * sizeof(double [3]), &error );& j0 d+ s5 W2 C
        line_coords->start_point[0] = point_coords[0][0];
! I7 q3 e/ ?) J: O4 p. O5 J        line_coords->start_point[1] = point_coords[0][1];
. I5 @2 R' h7 ^        line_coords->start_point[2] = point_coords[0][2];* M- x4 K+ y9 [8 X6 t2 f7 G
        line_coords->end_point[0] = point_coords[1][0];  \6 N, z# L, g( i5 j% @3 N% ]
        line_coords->end_point[1] = point_coords[1][1];
# p( |( E4 t5 f( Z8 M" L3 P        line_coords->end_point[2] = point_coords[1][2];
" B: n6 @# W' i" v$ n/ P
) O- p+ J9 w* r! n        tag_t lineTag = NULL_TAG;# i& k# e$ e' T5 ~& A- l
       
+ U! S# R0 }( m% S$ W" W  s        //创建直线
' T1 b) v" C/ H. X$ L  @) H        UF_CALL(UF_CURVE_create_line(line_coords, &lineTag));) j' ^- F; h5 u- I" q8 e
. Q  \3 X; \3 v: O% Y$ }
        //打印直线的端点3 B/ {1 p; w5 k9 H4 W
        char msg[256];
, ?0 L; b( g7 \7 Q$ u' X5 m        sprintf_s(msg, sizeof(msg), "创建的直线的起点是:%f、%f、%f,\n终点是:%f、%f、%f.",$ W  y/ G: j6 I8 L* r, A8 B2 A8 k8 }
                        line_coords->start_point[0],3 R1 j1 p& K2 @
                        line_coords->start_point[1],
; J. I$ b/ p6 r/ m' h* d4 O                        line_coords->start_point[2],
- g6 N  @9 z4 {: r* V$ P4 O                        line_coords->end_point[0],1 U; s# |+ P0 J7 q0 I! [! k
                        line_coords->end_point[1],6 z/ K$ t  s; a
                        line_coords->end_point[2]);/ R, [0 k# w9 P; p8 L
        UF_CALL(UF_UI_open_listing_window());) i& F7 v7 A0 w4 s2 S! E3 @
        UF_CALL(UF_UI_write_listing_window(msg));8 ?1 K. ?8 i( V7 y
        //UF_CALL(UF_UI_close_listing_window());
, W( S; v4 i9 n* Y% G
9 g* S6 ]/ f6 J1 _        //释放动态内存, h. z9 j# o. l5 p9 z1 F7 i8 S& y
        UF_MODL_delete_list(&edge_list);, g* |" [4 Z# e) A
        UF_free(point_coords);' o* R: x: `7 a0 d9 Y, y
        UF_free(line_coords);1 B3 ]* c2 \7 Q3 D5 d

1 `. U0 s! o6 e4 W; t% B! N% m* g        UF_PART_save();
1 f$ _+ ?# b- ]        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二次开发专题模块培训报名开始啦

    我知道了