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

[二次开发源码] NX二次开发-关于body,feature,face,edge 之间的访问源码分享

[复制链接]

2013-11-27 14:02:41 4412 0

admin 发表于 2013-11-27 14:02:41 |阅读模式

admin 楼主

2013-11-27 14:02:41

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

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

x

4 J# p6 c+ r* U2 f9 k5 D' A8 dNX二次开发-关于body,feature,face,edge 之间的访问源码分享
, N1 Y9 t% m$ ]( o
* v3 E( s: W, K也有创建孔,创建阵列的测试哦!( y: `" c' A% C+ g' f1 @) R( I8 I
6 r* w! U7 J. _" m6 K

  1. 6 R3 |& r- H: T/ _! Z9 J
  2. <p>static void do_UGopenApi(void)' [. B4 X7 }, u" k7 A
  3. {
    ) [' ?7 J& S& i: z0 f
  4. //create a block
    $ @5 K- _$ Z- ?7 r- G; G- {
  5. double coner[3]={0,0,0};3 u: L( d# x1 ?% q; i6 O& q# Q
  6. char *edge[3] = {"100","60","40"};
    / c# z" \% w; q$ w4 D
  7. tag_t blk_tag;, Z* p) Z4 N2 O; K3 b
  8. UF_MODL_create_block1(UF_NULLSIGN,coner,edge,&blk_tag);
    6 l0 q4 x0 ^5 M5 q" d. Z* r. L
  9. //create a blend start: s6 x& ^; w% y$ |1 H
  10.     char *radius = "20";
    - W0 \1 r8 C# R
  11. uf_list_p_t blend_list,face_list,edge_list;
    & Q+ j! c7 B" q+ q0 v* @' Y1 O
  12. tag_t body_tag,tem_face,tem_edge,faces[6],edges[12],blend_feature;$ h. j3 L; C& f) @, |) {
  13. int face_count,edge_count;+ x  b/ H6 f0 ]9 l+ W
  14. // get faces
    ) j3 p  `5 n$ \( x' l
  15. UF_MODL_create_list(&face_list);( ?' k  i/ b! R7 X4 q9 ]
  16. UF_MODL_ask_feat_body(blk_tag,&body_tag);2 e9 x% i3 U/ o1 Y
  17. UF_MODL_ask_body_faces(body_tag,&face_list);1 [8 S" `- \2 i$ W
  18. UF_MODL_ask_list_count(face_list,&face_count);
    9 D: i' y5 s  v0 ^2 u6 M+ P
  19. for(int i =0 ;i <face_count;i++)
    " m7 r, t# u4 U5 X
  20. {  : L* f7 ], R( [5 M, C
  21.   UF_MODL_ask_list_item(face_list,i,&tem_face);
    ! |' E* g  U/ H0 Y- D- F; p
  22.   faces[i]=tem_face;$ v' ^( p! O& L6 n
  23. }, v) H2 B* g9 x8 G6 Y) y
  24. UF_MODL_delete_list(&face_list);$ I2 e2 l4 k$ ?- x- t1 P
  25. //get edges
    6 k: T) L8 Z. L* l7 J  x  x: V0 \
  26. UF_MODL_create_list(&edge_list);
    " X' L' |1 `$ M, F# i
  27. UF_MODL_ask_body_edges(body_tag,&edge_list);
    2 i) W" s' y7 ]! e% o
  28. UF_MODL_ask_list_count(edge_list,&edge_count);
    . P: Z1 `9 C! g+ k
  29. for(int j = 0 ; j < edge_count;j++)
    # d- P9 q. b4 H
  30. {3 {5 I( x" c. _- s6 k  X" S
  31.   UF_MODL_ask_list_item(edge_list,j,&tem_edge);
    5 e8 \- G! j6 h  b$ S4 @5 p; s
  32.   edges[j]=tem_edge;! V# l5 O5 V% c0 X- N
  33. }
    1 w# v+ I6 f5 o' m( d
  34. UF_MODL_delete_list(&edge_list);
    & u5 R" W7 v. q; \" m8 A$ `
  35. // create the blend
    , ]% ]! {6 G. d4 a
  36. UF_MODL_create_list(&blend_list);7 G% n$ e& S% u+ t" C$ j
  37. UF_MODL_put_list_item(blend_list,edges[6]);
    ; }* W1 _& \+ d$ W1 S2 V0 g
  38. UF_MODL_create_blend(radius,blend_list,0,0,0,0.5,&blend_feature);3 I3 w/ i. @; L. D0 S8 |
  39. UF_MODL_delete_list(&blend_list);</p><p> // create hole* @1 g. U4 k/ r+ |, N) F3 I  |
  40. double  location[3]={80,40,40};7 i" z- {- h# |( v
  41. double  direction[3]={0,0,-1};# L: T7 y6 d' }7 Y; z8 h
  42.     const char * diame="15";% c4 R3 \2 \- G# a! Z: A
  43. const char * depth="5";
    ( k1 u. T$ G' b
  44. const char * angle="0";
    + C: h/ @' R) A8 I5 E: @% T
  45. tag_t hole_id; 6 O+ H% A! x) Y, N" T  }
  46. UF_MODL_create_simple_hole(location,direction,diame,depth,angle,faces[0],faces[1],&hole_id);</p><p> // create instance# U% r5 ?* `9 T- g( A
  47. double origin[3]={10,10,0};# x2 h; e4 V8 |; D8 H$ X8 t5 M
  48. double dir[3]={0,0,1};  S  R) C  g" o
  49. tag_t cyl_tag;) F9 M3 r' `, \% D, }, |/ Y2 G  Y
  50. UF_MODL_create_cyl1(UF_NEGATIVE,origin,"20","10",dir,&cyl_tag);      
    ! Z" `. b7 W5 `+ z2 l# `
  51. char * number_in_x="2";
    ) Y* i. k+ w4 Q) V2 @+ T! o
  52. char * distance_x ="30";/ D8 M8 N" Q  `, @9 h% G3 ~
  53. char * number_in_y="2";# u8 R  U. Y( z# [
  54. char * distance_y ="30";6 H. \0 P2 Z6 q0 Y5 Y2 M
  55. tag_t  feature_obj_id;
    ( w. Q$ u. I, o: H& d4 Z: `
  56. uf_list_p_t feature_list;% A3 ~3 H% w' f& {% ~9 a6 w: C6 W
  57. UF_MODL_create_list(&feature_list);, {3 B7 k" s0 l& B$ i3 C
  58. UF_MODL_put_list_item(feature_list,cyl_tag);3 B9 S+ o: g$ D; d
  59. UF_MODL_create_linear_iset(0,number_in_x,distance_x,number_in_y,distance_y,feature_list,&feature_obj_id);- p& i$ W. {9 V  A' U$ i
  60. UF_MODL_delete_list(&feature_list);: P' z" V- V  B
  61. }</p>
复制代码
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了