PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2013-11-27 14:02:41

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

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

x

! `% I* m9 a9 ~" Z" V6 x- v, {NX二次开发-关于body,feature,face,edge 之间的访问源码分享7 T* x" O7 C& V3 Y0 Q

5 p" o, y# A' S; J/ Q- a" H" k; q2 n' z也有创建孔,创建阵列的测试哦!
, K7 c. x/ B2 d1 z2 p- }( F" m8 _5 s9 A# v) Y9 ?8 o

  1. 4 Q9 ^7 ?1 P0 }5 U5 Q
  2. <p>static void do_UGopenApi(void): J! S$ g& F: H& x& R
  3. {6 e4 [) Z# L+ C0 Y9 `! ~
  4. //create a block
    . _( I5 w( r4 f! l7 B. Z( [3 I3 @: \; ^
  5. double coner[3]={0,0,0};
    ; E) u* i% K1 S
  6. char *edge[3] = {"100","60","40"};
    7 D- l) l/ n: c+ h) F& F& o
  7. tag_t blk_tag;
    7 w* k6 i; m4 @- v1 x7 b) S5 b( [% X
  8. UF_MODL_create_block1(UF_NULLSIGN,coner,edge,&blk_tag);$ w( |8 W7 w; `; ?: t: g+ x( @
  9. //create a blend start
    ) W7 \# l3 ?% F! B, b) K( m
  10.     char *radius = "20";
    9 y& n# W% f: ~9 D
  11. uf_list_p_t blend_list,face_list,edge_list;6 O4 g, j, _+ W! b6 e5 k9 x& w1 f
  12. tag_t body_tag,tem_face,tem_edge,faces[6],edges[12],blend_feature;
    1 H/ j* G; x# }! N" }
  13. int face_count,edge_count;
    # p/ C; ~, R0 k
  14. // get faces) e; d6 ^" |& V# D1 G! B
  15. UF_MODL_create_list(&face_list);
    % d- h5 I8 @% h" |7 X  f6 C. W! g7 F
  16. UF_MODL_ask_feat_body(blk_tag,&body_tag);
    / f/ W  H  B- V  @% M
  17. UF_MODL_ask_body_faces(body_tag,&face_list);
    ! ]0 a( r! m1 l6 K0 P9 K1 S9 i/ T
  18. UF_MODL_ask_list_count(face_list,&face_count);$ \' |1 ~! J# ~1 Y* @3 t/ v" Z
  19. for(int i =0 ;i <face_count;i++)5 Q8 O3 a/ ], I) F) E: t
  20. {  ; \- M( J% O8 \
  21.   UF_MODL_ask_list_item(face_list,i,&tem_face);
    6 Y! S' I; S( }7 V: @2 J9 m2 D
  22.   faces[i]=tem_face;
    , t: S0 v  v" X& m" s9 Y, ]
  23. }
    ! T1 w& `' p: y; q
  24. UF_MODL_delete_list(&face_list);
    1 R1 g8 O9 |  H9 E
  25. //get edges8 O' B- Y5 d2 {% ?
  26. UF_MODL_create_list(&edge_list);
    % f) |9 u% x, Z
  27. UF_MODL_ask_body_edges(body_tag,&edge_list);4 \) H2 t2 S9 n- w
  28. UF_MODL_ask_list_count(edge_list,&edge_count);
    / D1 w0 d, S) [1 n' N/ @1 y. ^
  29. for(int j = 0 ; j < edge_count;j++)
    * i% p! i! @- B  ~2 w% F
  30. {
    $ Z, V* Z+ Y- G3 {' V2 }
  31.   UF_MODL_ask_list_item(edge_list,j,&tem_edge);
    ( y7 b& j6 M  u* v2 G- R) f$ t
  32.   edges[j]=tem_edge;5 v: k& s: }! Z" g6 ?8 C
  33. }
    , D& ~! K7 W4 S2 L, d2 q: \
  34. UF_MODL_delete_list(&edge_list);/ v/ Y, l# I. a* ^4 Q( O
  35. // create the blend
    5 S4 ~* b, ^! S7 F' n3 Y
  36. UF_MODL_create_list(&blend_list);: b+ T, R- D# |* F! R
  37. UF_MODL_put_list_item(blend_list,edges[6]);
    8 h' ?. B4 Z, g5 ~, [
  38. UF_MODL_create_blend(radius,blend_list,0,0,0,0.5,&blend_feature);0 J8 k# C  B9 {2 C# [5 i
  39. UF_MODL_delete_list(&blend_list);</p><p> // create hole& H0 g& C& K# ^5 N+ o0 e  D
  40. double  location[3]={80,40,40};7 q) |3 l* X' I& J
  41. double  direction[3]={0,0,-1};
    - L4 e: v  e. H) N* O5 d; |
  42.     const char * diame="15";. s% J/ A  T4 R5 K; C+ M8 b! ]( U# W
  43. const char * depth="5";1 z' S4 D' [% ^, _0 k
  44. const char * angle="0";
    0 [4 q2 m* Q) m# J' b1 F, n
  45. tag_t hole_id;
    % H- `" s4 |' d1 ^1 B; K
  46. UF_MODL_create_simple_hole(location,direction,diame,depth,angle,faces[0],faces[1],&hole_id);</p><p> // create instance
    # c+ B0 D- v/ ~* Z: R
  47. double origin[3]={10,10,0};
    " g% x7 P& ~% c
  48. double dir[3]={0,0,1};+ B; G4 B. ~6 U9 s7 d" S! O
  49. tag_t cyl_tag;' ]7 q& U- s' n
  50. UF_MODL_create_cyl1(UF_NEGATIVE,origin,"20","10",dir,&cyl_tag);       ' D) i  j; N' J1 \
  51. char * number_in_x="2";
    + [/ K3 `1 V6 {" d$ a! b% u/ i& _* n
  52. char * distance_x ="30";
    # L7 O+ v( r5 |. K7 K5 ?1 [: b
  53. char * number_in_y="2";
    ) Z; `' C* T3 h1 Q& z/ ]
  54. char * distance_y ="30";8 h# S# U% `0 S" W% Z
  55. tag_t  feature_obj_id;
    . Z) T7 |& E, a0 N! t' ~
  56. uf_list_p_t feature_list;' s. h5 c; \4 o
  57. UF_MODL_create_list(&feature_list);
    - T( b/ ^- L2 ~0 `2 t
  58. UF_MODL_put_list_item(feature_list,cyl_tag);( p, j$ [& s! `6 k% f2 r
  59. UF_MODL_create_linear_iset(0,number_in_x,distance_x,number_in_y,distance_y,feature_list,&feature_obj_id);
    ' n- g( X8 f1 C7 `: ?# J
  60. UF_MODL_delete_list(&feature_list);
    6 [  C& Q; i  K0 E, |
  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二次开发专题模块培训报名开始啦

    我知道了