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

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

admin 楼主

2014-11-24 07:57:59

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

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

x
使ufun完成以下功能( j% {0 D! F- ~8 \$ M$ G

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

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

; A' L* Z2 {  Y

+ `. J) y- X2 x/ l% N9 o  b+ B+ Z1.新建一个部件文件,比如:c:\plmhome.prt
& s9 s- [+ B2 R6 t; a2 d4 o2.在部件中创建一个圆柱体,通过圆柱体创建圆柱体的中心线+ S; i! ~) e# n4 e9 m
3.询中心线的起点和终点,并输出到信息窗口
1 Q* S& w  R" Z0 q% i  |. V4.存部件
$ P, ?. I& Y4 h. z# ?$ }6 s5.关闭部件! U" c5 K: w- W
) g  l0 J& H# ^) W) p
提示:使用到的函数:   @7 @6 y3 f7 q& W
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
% b8 T! \7 l/ \

& [. J( X% L2 R* R3 d& b. p$ L
  b, C+ Z* K& E: y
6 @5 O1 u) Q. t5 `2 x  i
上海点团信息科技有限公司,承接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;
, Q4 {, ~8 D# }2 D% d/ F        tag_t cylTag = NULL_TAG;
1 ?; M! V! W" x; w, m        tag_t bodyTag = NULL_TAG;% |# O; P  {# z
        double cylOrigin[3] = {20, 30, 40};
: H" v+ g# q$ m" p- z$ W9 m        char cylDiam[256] = "50";
6 R. D: I" r0 M) \$ ~# u2 v        double cylDirection[3] = {0, 0 ,1};
% c& }$ O* r3 m        double height = 60;
# b/ ~6 J$ e8 M. f* F- Q5 M- @        3 ~( R5 V* I" h4 r' I5 b. x

. m# J, J, h; b7 R8 n2 x        char cylHeight[256];
9 Y6 g% }2 y( T8 {/ }: d( V        sprintf_s(cylHeight, sizeof(cylHeight), "%f", height);2 m6 i, N% y! p$ S4 Z) \: a4 M
        //创建part- S! c9 p4 e! e9 S8 J. R  y
        UF_CALL(UF_PART_new("D:\\leaf.part", 1, &newPartTag));$ z8 p& C9 e- j! @: x
        //创建圆柱' V* B% |. i0 u) W6 ~
        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN, cylOrigin, cylHeight, cylDiam, cylDirection, &cylTag));( |4 X$ Y: L: |, u' r
        //获取圆柱特征所在的体
5 }9 P$ r0 w+ i1 D  S        UF_CALL(UF_MODL_ask_feat_body(cylTag,&bodyTag));. a" j& O1 f, Y$ |  A
        //获取体上的边
( Y" I; S) z# o6 \2 p        uf_list_p_t edge_list ;) ^! K. L) {1 g, B) J
        UF_CALL(UF_MODL_ask_body_edges(bodyTag, &edge_list));* ]4 d: S5 T( Z+ {  J- i
        //得到边的数量4 S. `8 B$ e- Y
        int edgeCount = 0;
) u9 Z8 C3 i+ a. ?        UF_CALL(UF_MODL_ask_list_count(edge_list, &edgeCount));
# v) l6 y7 w* U1 [# V, F        //打印边的数量" D" R0 @1 U* f, ?
        char cCount[256];# `$ J1 V  G& Y1 W
        sprintf_s(cCount, sizeof(cCount), "cylinder实体上的边的数量:%d",  edgeCount);
( |  S. m) a! _, U" x        uc1601(cCount, 1);; A4 c2 _( J8 x* g; a& K
        * b6 |! b4 d3 o& J) Y
        int error;
9 Y8 a2 U) N2 q        double (*point_coords)[3];
- ^+ |5 B! m1 _& `        point_coords= (double (*)[3]) UF_allocate_memory(edgeCount * sizeof(double [3]), &error );
5 B; f. a- v. [" Y) W        //获取圆柱的上两条边的圆心
" i" u( p1 B* O7 T2 H        int i = 0;  b' {4 e/ Z7 F( c1 D
        tag_t curveOriginTag = NULL_TAG;
$ X4 j- Z+ D2 w  w1 C        for (i; i < edgeCount; i++)
3 I" z. m# v4 @5 ^3 B1 r        {
7 z3 f! ~8 c! }' I                UF_CALL(UF_MODL_ask_list_item(edge_list, i, &curveOriginTag));
  f! I2 s$ [: F6 r" l: d' D                UF_CALL(UF_CURVE_ask_centroid(curveOriginTag, point_coords[i]));
4 u  @. r. B! c5 a( P/ g        }
$ z# j7 y" Q& V* @- j  W1 U+ H$ u  x6 @        //将圆心存放到直线起始点的链表中
7 N0 Z( P+ c( Z+ g        UF_CURVE_line_p_t line_coords;$ o2 C0 N) S& @: ]
        line_coords= (UF_CURVE_line_p_t ) UF_allocate_memory(edgeCount * sizeof(double [3]), &error );8 z9 ^! N# H* o9 a" p/ Z. ^* ~
        line_coords->start_point[0] = point_coords[0][0];
9 }. f$ D0 _% M        line_coords->start_point[1] = point_coords[0][1];6 P/ z) L: q: t. p  }% x4 m
        line_coords->start_point[2] = point_coords[0][2];! t! I  g, R: `" p' H) n& q
        line_coords->end_point[0] = point_coords[1][0];$ f6 {* n, M* B9 T6 a3 M; `2 X. T
        line_coords->end_point[1] = point_coords[1][1];
6 {, [$ o6 f% m2 @9 I3 B        line_coords->end_point[2] = point_coords[1][2];
4 J5 I3 y- x+ S! X9 d  |6 h$ }$ j5 ^; T, F# l
        tag_t lineTag = NULL_TAG;
, z% F( f" `# N+ }       
+ B' _" P; T- f! T) A2 K        //创建直线$ ^* |7 Z5 G  {! X% n
        UF_CALL(UF_CURVE_create_line(line_coords, &lineTag));+ o+ p2 w, N& g9 r9 ?. v. `

" V2 E' _% J$ {        //打印直线的端点
& `: n& J' Y6 e2 p. L) h        char msg[256];; ~1 R- L+ G7 ?$ ^1 t, g! d
        sprintf_s(msg, sizeof(msg), "创建的直线的起点是:%f、%f、%f,\n终点是:%f、%f、%f.",7 W, e6 \% i: `4 d# ^. }
                        line_coords->start_point[0],) U5 [0 k1 F7 i: L3 `
                        line_coords->start_point[1],
( F+ R" e2 j" i                        line_coords->start_point[2],4 r# T5 m: i. N4 }4 |
                        line_coords->end_point[0],0 f3 R- g+ h3 q  F, K! Y1 @
                        line_coords->end_point[1],) u) k2 f1 J1 ^; l$ [% C4 q
                        line_coords->end_point[2]);& e7 P" E! l* s: ]6 D* t
        UF_CALL(UF_UI_open_listing_window());
: S$ X& y2 a" l- o! d        UF_CALL(UF_UI_write_listing_window(msg));  b+ F+ Y: @& m! |/ c
        //UF_CALL(UF_UI_close_listing_window());' q4 h, \5 ~+ u: J6 g

! K/ s* M# `0 d# w        //释放动态内存
3 I, W) u* ~4 H4 f1 Y; _  }& |        UF_MODL_delete_list(&edge_list);
. F& `: ?5 X- [0 H/ b# T        UF_free(point_coords);+ X4 k6 O: k! U) Y
        UF_free(line_coords);. \1 M7 G  m8 j2 Z6 I

3 g3 Q8 @$ }' W" ]& f* i        UF_PART_save();
. [" G1 b; N9 S6 w- 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二次开发专题模块培训报名开始啦

    我知道了