PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
发表于 2013-11-27 14:02:41 | 显示全部楼层 |阅读模式

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

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

x
1 o2 q1 ?7 I& f; W
NX二次开发-关于body,feature,face,edge 之间的访问源码分享
/ u' K* }$ M/ ^) v( N ' z9 U0 |% f( {* \2 W
也有创建孔,创建阵列的测试哦!
% u; n$ P7 _( f5 L  |
: ^  }1 p" s0 \0 N5 [

  1. ' i- a( k5 z7 e: c: d
  2. <p>static void do_UGopenApi(void)9 d/ F1 m. u! w' j
  3. {
    + f4 E. C8 ^* u/ |) P3 h$ o
  4. //create a block
    " S6 p  f- Z% D$ q& n
  5. double coner[3]={0,0,0};
    ; r3 G" I  V# n
  6. char *edge[3] = {"100","60","40"};5 i4 \' ~8 s8 u& ^  d8 }
  7. tag_t blk_tag;
    $ B9 n8 z2 u( r3 O2 P6 Y* k6 `
  8. UF_MODL_create_block1(UF_NULLSIGN,coner,edge,&blk_tag);! T' F) t+ Y3 B$ I. T' r6 N" ^
  9. //create a blend start
    : @1 A$ \, c6 g$ l7 Q* _
  10.     char *radius = "20";
    6 j/ h5 E; [1 v! @3 q4 D
  11. uf_list_p_t blend_list,face_list,edge_list;8 i  ~# Z8 n, m& ]) r* E
  12. tag_t body_tag,tem_face,tem_edge,faces[6],edges[12],blend_feature;
    9 w: `5 j0 ~! o; K& A
  13. int face_count,edge_count;0 J: p: E2 b) W: C$ {' o
  14. // get faces0 X1 ~$ ?$ I( D& g3 i
  15. UF_MODL_create_list(&face_list);( ]% P$ S0 H5 G! e" J
  16. UF_MODL_ask_feat_body(blk_tag,&body_tag);
    ) u2 s; S. l6 L& k2 B( l- K
  17. UF_MODL_ask_body_faces(body_tag,&face_list);
    9 H8 R8 P5 p; i1 C  `% Y& ?
  18. UF_MODL_ask_list_count(face_list,&face_count);
    0 g8 T0 x! Q. m' l7 S# s$ ?
  19. for(int i =0 ;i <face_count;i++)" Q( |* X; D' K" Q+ v& O* c
  20. {  
    : t8 I* ^) q8 d4 E7 S
  21.   UF_MODL_ask_list_item(face_list,i,&tem_face);
    $ ]; a- i% o( I; L" S! f) a2 Q
  22.   faces[i]=tem_face;
    " n& _9 `$ E- H7 y; l$ R% x
  23. }! p: M+ _9 z- f/ u' t
  24. UF_MODL_delete_list(&face_list);
    / ?1 ^5 u( ]: C6 z/ z7 a' g
  25. //get edges' z, [& h4 H$ I7 x: \- q0 G  g( h; p
  26. UF_MODL_create_list(&edge_list);
    ! [& p' V7 {8 \' n3 G; b; X; j5 T
  27. UF_MODL_ask_body_edges(body_tag,&edge_list);, {; P, ^( P& M4 w* s+ f
  28. UF_MODL_ask_list_count(edge_list,&edge_count);
    7 ]( ^0 |2 E# [; X2 d
  29. for(int j = 0 ; j < edge_count;j++)
    / d2 J/ S& z+ d( e) C
  30. {: W) O3 p2 z8 s4 E, R# x
  31.   UF_MODL_ask_list_item(edge_list,j,&tem_edge);
    + G) m/ ?$ t2 G& n' z' h
  32.   edges[j]=tem_edge;" _' b: E2 D4 K3 L0 }/ _$ G$ i
  33. }  [6 p  \' i5 C7 F# m/ {
  34. UF_MODL_delete_list(&edge_list);
    ' P3 v$ W2 v0 K2 L; }
  35. // create the blend$ Y7 W4 b2 d' C1 b# d0 R
  36. UF_MODL_create_list(&blend_list);
    3 I  n$ j4 z" G! k+ U
  37. UF_MODL_put_list_item(blend_list,edges[6]);! n( n9 F: v! u9 `
  38. UF_MODL_create_blend(radius,blend_list,0,0,0,0.5,&blend_feature);$ v, f0 D0 u" t5 t
  39. UF_MODL_delete_list(&blend_list);</p><p> // create hole! M* K) U; C( z& |/ f/ r) I: Y
  40. double  location[3]={80,40,40};
    " N! c! Q  x; E& i- s/ Z( g
  41. double  direction[3]={0,0,-1};- {9 }) k4 y: v
  42.     const char * diame="15";
      E7 |0 z9 h/ M/ e0 @
  43. const char * depth="5";
    ; V$ J0 X' r9 @5 d( \4 N( w; U2 _
  44. const char * angle="0";
    $ M0 N: P: H' Y2 l* e' J( l
  45. tag_t hole_id;
    + k9 B( @" {" v; e6 ~  w1 X
  46. UF_MODL_create_simple_hole(location,direction,diame,depth,angle,faces[0],faces[1],&hole_id);</p><p> // create instance
    $ F9 b1 b' [: {* u
  47. double origin[3]={10,10,0};
    0 S3 [5 g# ?( \
  48. double dir[3]={0,0,1};
    ; G- x. Y& q: b( z) z. N7 h
  49. tag_t cyl_tag;; T& q! I# S/ t# R0 q
  50. UF_MODL_create_cyl1(UF_NEGATIVE,origin,"20","10",dir,&cyl_tag);       ! R* k6 B/ u* m0 w, r
  51. char * number_in_x="2";
    5 a0 I3 C" `% S1 U
  52. char * distance_x ="30";/ q4 a! R+ X3 Y% ~. I+ r' _
  53. char * number_in_y="2";# s" J/ `& Q' b1 A  f
  54. char * distance_y ="30";& {, A' ?2 V: ^% l! ?, e* U0 _
  55. tag_t  feature_obj_id;
    ' A) X% b& M0 c% S2 x) K( h
  56. uf_list_p_t feature_list;, K& G8 W, E" ]1 f% U. x
  57. UF_MODL_create_list(&feature_list);
    - U+ e$ x! y8 t; I* p3 y; @
  58. UF_MODL_put_list_item(feature_list,cyl_tag);  e- S5 j8 s% V' G
  59. UF_MODL_create_linear_iset(0,number_in_x,distance_x,number_in_y,distance_y,feature_list,&feature_obj_id);& V! F. O, U; K& E. J# R
  60. UF_MODL_delete_list(&feature_list);( @0 }/ c4 n4 d9 \
  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二次开发专题模块培训报名开始啦

    我知道了