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

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

[复制链接]

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

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

admin 楼主

2013-11-27 14:02:41

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

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

x

5 ?( M, E  p) P  C6 v  XNX二次开发-关于body,feature,face,edge 之间的访问源码分享8 |7 g3 C! y$ h" Y! {

% z9 s6 w4 N6 n/ O: U3 D' ^( [也有创建孔,创建阵列的测试哦!
9 s0 T  U* r" N; J# Z4 ~% W* H/ E
" t# }% q5 N8 t$ ^' e
  1. 6 \0 z) M8 v9 o3 A- E" o0 H* y
  2. <p>static void do_UGopenApi(void)
      f6 q$ t$ J' f
  3. {
    " X$ x9 s* R3 m- v5 P$ D
  4. //create a block- G: o' K! f7 T
  5. double coner[3]={0,0,0};
    * f# C2 V7 I; l) m
  6. char *edge[3] = {"100","60","40"};
    8 p9 l# S- E4 o  d, J/ j0 C% z
  7. tag_t blk_tag;
    . C3 ]# }. @6 N5 h0 m" {* V+ n. \$ f1 W
  8. UF_MODL_create_block1(UF_NULLSIGN,coner,edge,&blk_tag);, g! g( `3 K4 E, J1 z0 k0 W
  9. //create a blend start% ?, Y1 x9 j2 q2 Z. A
  10.     char *radius = "20";3 p* g' t4 e, F+ e
  11. uf_list_p_t blend_list,face_list,edge_list;& p! }( L6 T/ u1 w  V& H' c0 F
  12. tag_t body_tag,tem_face,tem_edge,faces[6],edges[12],blend_feature;
    6 k6 m6 ^$ W, m4 Q$ Y# q
  13. int face_count,edge_count;: c# P1 e2 A) O. U
  14. // get faces
    / D5 c' Z# w  `! f8 Q' k9 z" `
  15. UF_MODL_create_list(&face_list);
    ) R7 Y: e% _+ w8 }( V& g, N& H; w
  16. UF_MODL_ask_feat_body(blk_tag,&body_tag);. q7 R; D9 k6 z2 ]* F' d4 @
  17. UF_MODL_ask_body_faces(body_tag,&face_list);* C  E, N2 n6 F  J" `, b, M
  18. UF_MODL_ask_list_count(face_list,&face_count);
    * V- i. M. n+ ^/ N+ Y
  19. for(int i =0 ;i <face_count;i++)
    % Z! K# F3 [/ e9 \* p" B
  20. {  $ V# a: p- W) H
  21.   UF_MODL_ask_list_item(face_list,i,&tem_face);4 O# {- k* W5 G& p5 ^9 _
  22.   faces[i]=tem_face;
    ) L9 {( H  J7 o# v9 G/ A
  23. }
    - K* C" U6 e8 I; d; I0 h
  24. UF_MODL_delete_list(&face_list);
    7 F+ q0 [  n3 ^7 S6 [
  25. //get edges' T) _* R1 u1 m' I/ A4 {
  26. UF_MODL_create_list(&edge_list);
    / S  l, z3 f5 f8 N+ C$ x* Q
  27. UF_MODL_ask_body_edges(body_tag,&edge_list);
    - R  ~) `( ?* O$ Y! Z5 V8 D
  28. UF_MODL_ask_list_count(edge_list,&edge_count);% a) z: \& Q* j' X8 x( }
  29. for(int j = 0 ; j < edge_count;j++)! `- v8 u5 J3 U+ }6 B0 U! n; }
  30. {
    1 g  j1 a. ]  F( c3 f2 x
  31.   UF_MODL_ask_list_item(edge_list,j,&tem_edge);9 [7 Y) p- H( M% C
  32.   edges[j]=tem_edge;
    % V! \2 A1 H: w6 I. f% z% |
  33. }9 @5 h: v1 V. b% O5 k' v
  34. UF_MODL_delete_list(&edge_list);' l4 Z" l0 G1 [0 S& [9 v+ @- w+ R$ h
  35. // create the blend% D$ I+ r* `0 {( h& S* S
  36. UF_MODL_create_list(&blend_list);
    2 \2 x  A( Q' R$ Y  R" x
  37. UF_MODL_put_list_item(blend_list,edges[6]);
    # H/ `7 s+ }- c, I% f; @
  38. UF_MODL_create_blend(radius,blend_list,0,0,0,0.5,&blend_feature);
    & l% Q& |& u" j
  39. UF_MODL_delete_list(&blend_list);</p><p> // create hole
    : i6 |; H/ m. F5 L0 ]. |
  40. double  location[3]={80,40,40};, Z6 h% k! f5 S/ |& c$ Q% D1 l
  41. double  direction[3]={0,0,-1};
    , b) W6 {# Z7 G3 J6 i9 i
  42.     const char * diame="15";3 e* p; H! l* g7 `, M' z
  43. const char * depth="5";; Y7 D: T+ Y% ]- B, c) D6 ?
  44. const char * angle="0";3 H* S. L# ~& J- g" c: r
  45. tag_t hole_id;
    8 n) h/ Q. u/ @- [8 L
  46. UF_MODL_create_simple_hole(location,direction,diame,depth,angle,faces[0],faces[1],&hole_id);</p><p> // create instance
    3 K  X0 `' n2 H0 R2 c+ F
  47. double origin[3]={10,10,0};- \% ]! W+ }3 E0 o8 t
  48. double dir[3]={0,0,1};+ _: @1 P% \7 d/ I: `
  49. tag_t cyl_tag;
    3 I$ q! \/ V1 Y( c- C; H
  50. UF_MODL_create_cyl1(UF_NEGATIVE,origin,"20","10",dir,&cyl_tag);       9 s7 [9 W$ I, O1 O
  51. char * number_in_x="2";
    ! @% z) O$ I5 ]- E3 x& D
  52. char * distance_x ="30";1 X$ r! U# ]$ y2 a
  53. char * number_in_y="2";: `* R8 G$ z2 m5 V+ g; J# B3 L
  54. char * distance_y ="30";
    . Z' ^) o' }. w. x0 n/ t
  55. tag_t  feature_obj_id;; q; y% p4 Y% x) z, Q
  56. uf_list_p_t feature_list;+ S1 o6 [/ C2 N6 t7 _
  57. UF_MODL_create_list(&feature_list);; i( ^/ e2 A7 S
  58. UF_MODL_put_list_item(feature_list,cyl_tag);
    7 D- ]! y; s% M# z, M/ O1 y
  59. UF_MODL_create_linear_iset(0,number_in_x,distance_x,number_in_y,distance_y,feature_list,&feature_obj_id);# N+ V. m; T5 I. w4 G5 t9 f
  60. UF_MODL_delete_list(&feature_list);7 v. m1 ^% b, r$ H. x  J# w, |
  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二次开发专题模块培训报名开始啦

    我知道了