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

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

[复制链接]

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

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

admin 楼主

2013-11-27 14:02:41

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

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

x

/ y8 c: H  I) o4 fNX二次开发-关于body,feature,face,edge 之间的访问源码分享0 p; G: R0 c, C7 C$ H) W; W

. Q8 W' B, }0 r也有创建孔,创建阵列的测试哦!* O' s7 M2 F1 b  N! h3 y+ a

/ j; J' F9 [" v: Y; ^

  1. 0 j4 C% s% `" I, m1 [
  2. <p>static void do_UGopenApi(void)
    ; w' S. n2 A- S2 B  [. D- Q
  3. {, J* R& l, M7 |0 _& g! |
  4. //create a block, x# Y' a# H3 S& c- d" d
  5. double coner[3]={0,0,0};
    4 E& u/ T& }0 C5 Z2 c6 H
  6. char *edge[3] = {"100","60","40"};
    9 {- z7 m9 A& Z% ], o' {# y
  7. tag_t blk_tag;
    " [. O% T% B5 Y3 Y7 r
  8. UF_MODL_create_block1(UF_NULLSIGN,coner,edge,&blk_tag);7 ^. z$ r3 H6 W) C4 Q6 Q4 I6 b
  9. //create a blend start
    ' H" G4 v. ]( q6 r
  10.     char *radius = "20";2 Z, }6 O8 c9 o# X7 ~$ D7 \5 l
  11. uf_list_p_t blend_list,face_list,edge_list;
    1 }0 x1 B; w% m/ J6 J3 A
  12. tag_t body_tag,tem_face,tem_edge,faces[6],edges[12],blend_feature;( r! M( g$ U8 R  ~. E, P6 ]
  13. int face_count,edge_count;7 t! I3 G, R6 W
  14. // get faces
      W% `# Y0 m3 j
  15. UF_MODL_create_list(&face_list);) J4 q( ?8 ?* Z) k' `( s/ \: m
  16. UF_MODL_ask_feat_body(blk_tag,&body_tag);/ T2 j/ x4 }2 ^- O. M! n6 m9 v( O
  17. UF_MODL_ask_body_faces(body_tag,&face_list);% h# v- B6 G% w0 R! i% P
  18. UF_MODL_ask_list_count(face_list,&face_count);* x+ J1 K1 V( i- p5 p" g- P
  19. for(int i =0 ;i <face_count;i++)4 ^! j5 y6 n" K0 ?& x! y
  20. {  ! h9 I% K7 }0 n+ D1 s) s
  21.   UF_MODL_ask_list_item(face_list,i,&tem_face);) @# p! n& K6 N
  22.   faces[i]=tem_face;1 Q! g) |% m, A0 B' u
  23. }' z5 b) V5 R  [& O8 o+ G7 t0 t
  24. UF_MODL_delete_list(&face_list);
    % V* ~3 P( d3 L4 ?; |4 E' m3 X
  25. //get edges
    ( `! T2 }/ I' ]- C9 e
  26. UF_MODL_create_list(&edge_list);4 w; D. J8 u  s/ `
  27. UF_MODL_ask_body_edges(body_tag,&edge_list);
    9 N+ ]2 w; o" t; l8 U/ W$ _% w6 ?0 ?
  28. UF_MODL_ask_list_count(edge_list,&edge_count);5 k4 I) y+ ~4 ~3 ~
  29. for(int j = 0 ; j < edge_count;j++)  O5 M; F9 M7 C: `! X
  30. {, ]4 l8 G: H) Y% W7 a6 A
  31.   UF_MODL_ask_list_item(edge_list,j,&tem_edge);5 {5 ^5 u' [: S7 {; `
  32.   edges[j]=tem_edge;8 s# a) h' _+ \- Y  z
  33. }& N+ V# y3 I- `8 F
  34. UF_MODL_delete_list(&edge_list);1 G* t" L+ w2 o; P$ O. Z
  35. // create the blend1 U$ C: Z8 g, F# R' c" [
  36. UF_MODL_create_list(&blend_list);
    " x8 ^2 G: o+ F& _
  37. UF_MODL_put_list_item(blend_list,edges[6]);
    . s' R, y; _* x% \" g
  38. UF_MODL_create_blend(radius,blend_list,0,0,0,0.5,&blend_feature);  w7 V/ Q+ L& V$ p/ [/ I
  39. UF_MODL_delete_list(&blend_list);</p><p> // create hole
    : _4 Z1 i9 O9 g' I' _8 k' U1 c" Y
  40. double  location[3]={80,40,40};
    * c6 t" Y  [  {
  41. double  direction[3]={0,0,-1};2 U7 }8 i; `# Z/ A9 M+ }
  42.     const char * diame="15";
    * ?, G0 n& x& }6 p- I2 X
  43. const char * depth="5";
    3 }; s) _& {1 i; C4 @3 f$ N
  44. const char * angle="0";
    " N+ Z# c  d% C5 X8 l$ c) N9 k
  45. tag_t hole_id; . K) s+ O) I) Q4 Q: |6 K$ d
  46. UF_MODL_create_simple_hole(location,direction,diame,depth,angle,faces[0],faces[1],&hole_id);</p><p> // create instance$ p1 {0 D/ c7 ]2 H( c
  47. double origin[3]={10,10,0};
    7 h2 |. Y2 B, y4 _6 x
  48. double dir[3]={0,0,1};: `# d) n0 X: j+ x
  49. tag_t cyl_tag;
    1 C4 F) n) @1 u; J6 I. R
  50. UF_MODL_create_cyl1(UF_NEGATIVE,origin,"20","10",dir,&cyl_tag);      
    : J. h, a: v/ n9 X( J/ Q
  51. char * number_in_x="2";
    9 \$ ^5 n) @/ c3 s, a" F
  52. char * distance_x ="30";. {, }# c( J, c7 s7 o+ O- B
  53. char * number_in_y="2";
      C* {- [4 q/ d4 Q6 ?
  54. char * distance_y ="30";
    7 i- z/ \* c( U% d# U& J/ D& u' R
  55. tag_t  feature_obj_id;
    ) D; z2 {' I( m* G$ B4 D
  56. uf_list_p_t feature_list;. L6 H- |2 V1 {. W; L' K. V1 G
  57. UF_MODL_create_list(&feature_list);$ T+ {4 E* W. n/ `
  58. UF_MODL_put_list_item(feature_list,cyl_tag);2 U3 N1 I1 n2 c$ V# t
  59. UF_MODL_create_linear_iset(0,number_in_x,distance_x,number_in_y,distance_y,feature_list,&feature_obj_id);
    8 e4 F" c5 h/ L
  60. UF_MODL_delete_list(&feature_list);
    ; d, X$ F  w3 j7 v
  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二次开发专题模块培训报名开始啦

    我知道了