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

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

[复制链接]

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

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

admin 楼主

2013-11-27 14:02:41

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

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

x
' Q5 W' A7 _/ @5 c1 k8 I- {
NX二次开发-关于body,feature,face,edge 之间的访问源码分享
; x8 y% \9 R4 `0 \  e7 k
) g# T2 Z& X) w' }+ [8 v也有创建孔,创建阵列的测试哦!
* _8 k0 i, J: ~# O
9 ?, Q) ]2 ~* N* R

  1. 4 Z: P% a  ~+ l0 ]
  2. <p>static void do_UGopenApi(void)- p7 U7 |4 T; |
  3. {7 W5 {8 F' S$ v! D5 w6 h! \
  4. //create a block3 r$ w0 Y4 \. y, `" N6 w6 _9 ^
  5. double coner[3]={0,0,0};
    $ A! h/ Q/ s, D0 E( [2 s1 R" v
  6. char *edge[3] = {"100","60","40"};
    4 }: h  U$ P- q- x* T$ _  f
  7. tag_t blk_tag;
    " X2 X3 d0 Y! Q$ z5 ^" {; G/ y9 ]
  8. UF_MODL_create_block1(UF_NULLSIGN,coner,edge,&blk_tag);7 y8 {0 Q( _7 \/ d* R5 q7 t' A- e
  9. //create a blend start
    2 [7 n0 V# w/ g" ~6 [9 ?' O3 Q
  10.     char *radius = "20";7 J% _+ ]7 g2 o  F
  11. uf_list_p_t blend_list,face_list,edge_list;
    * I$ f' I' l+ @* n0 a4 t1 D( |- v/ k
  12. tag_t body_tag,tem_face,tem_edge,faces[6],edges[12],blend_feature;
    - ~, C: Z4 w( [# ]
  13. int face_count,edge_count;  U/ w" g, L: |& p8 G% f4 [, K4 T
  14. // get faces' n, W' J  q- Q% U9 d3 x  ~
  15. UF_MODL_create_list(&face_list);
    3 B# L" j+ S, S6 L
  16. UF_MODL_ask_feat_body(blk_tag,&body_tag);
    ; s. n+ m  E0 B4 d: s
  17. UF_MODL_ask_body_faces(body_tag,&face_list);
    ! B1 F1 d) w3 O) |0 J: T7 Y+ d
  18. UF_MODL_ask_list_count(face_list,&face_count);6 ~( W1 ?3 v, }7 c, x. J
  19. for(int i =0 ;i <face_count;i++)
    6 t  Y/ w- t' \  E
  20. {  
    % L+ h1 G! P( L" ?
  21.   UF_MODL_ask_list_item(face_list,i,&tem_face);
    3 V' D% ~8 P$ u( J+ s7 V
  22.   faces[i]=tem_face;
    ) s. y' z4 T. h( T
  23. }
    ; F% w6 T9 s2 G; W% {# Z
  24. UF_MODL_delete_list(&face_list);
    ) @; b" O+ s+ O2 F; i$ D0 U/ i- W+ |
  25. //get edges( i# j, u+ J# I
  26. UF_MODL_create_list(&edge_list);: R% N, e" g2 I% E' `' m
  27. UF_MODL_ask_body_edges(body_tag,&edge_list);2 @1 w& m$ j% W1 S9 T
  28. UF_MODL_ask_list_count(edge_list,&edge_count);
    : }( s% ?' ~% ~
  29. for(int j = 0 ; j < edge_count;j++)
    8 e, z% L% T. A6 o2 `: }
  30. {
    ' o/ x1 }5 V6 u# w; a, S+ L; P
  31.   UF_MODL_ask_list_item(edge_list,j,&tem_edge);
    4 [5 C1 x  Y; o- _- W
  32.   edges[j]=tem_edge;7 _: `! r% k$ T, `- u' }
  33. }
    , y, n' c* s5 f2 r. W
  34. UF_MODL_delete_list(&edge_list);3 B7 X8 b+ ?8 Y7 K% Q9 y
  35. // create the blend
    4 t7 r) w) S/ w2 B
  36. UF_MODL_create_list(&blend_list);
    ' y5 X: Y! T0 w) l
  37. UF_MODL_put_list_item(blend_list,edges[6]);
      Y0 z' v/ B" W; j( _
  38. UF_MODL_create_blend(radius,blend_list,0,0,0,0.5,&blend_feature);
    ! z! B% _$ @8 U) x0 i0 b
  39. UF_MODL_delete_list(&blend_list);</p><p> // create hole
    ( P; P0 u! Y8 i8 [  h
  40. double  location[3]={80,40,40};
    $ `& F( O# q) r
  41. double  direction[3]={0,0,-1};
    $ O% i3 R" r0 P: W8 ]& D
  42.     const char * diame="15";0 D5 N$ v- ?) E% f
  43. const char * depth="5";
    - M% Q0 C5 g1 t9 g; A  T/ x8 j+ i
  44. const char * angle="0";
    2 A5 [" V4 N2 Z5 ]( V5 R
  45. tag_t hole_id;
    2 A1 Y" @$ _# o8 |: o6 y& ~
  46. UF_MODL_create_simple_hole(location,direction,diame,depth,angle,faces[0],faces[1],&hole_id);</p><p> // create instance1 B# m8 o' b7 S; o
  47. double origin[3]={10,10,0};/ s) f/ R% g3 X8 E4 s6 K. S" G
  48. double dir[3]={0,0,1};; }$ b/ q2 D; p( [
  49. tag_t cyl_tag;
      x7 u- q- K% P8 y: Z1 @
  50. UF_MODL_create_cyl1(UF_NEGATIVE,origin,"20","10",dir,&cyl_tag);      
    ' S, F8 M2 g+ d8 d3 T6 h# `' J
  51. char * number_in_x="2";
    4 y8 a8 G! i9 U3 v  H" V
  52. char * distance_x ="30";- R+ Q- X# I* G: W( E; O; [, k
  53. char * number_in_y="2";5 V7 E0 }2 g) v9 r# s# L# ~" V& h
  54. char * distance_y ="30";( {# d& Q! I+ o( M+ u9 y
  55. tag_t  feature_obj_id;
    + o0 |9 k! z% q' C( T  H5 }
  56. uf_list_p_t feature_list;% h% j+ W- }0 m: J4 y/ V
  57. UF_MODL_create_list(&feature_list);! a# d" x- r2 T. F$ _1 N- p- m
  58. UF_MODL_put_list_item(feature_list,cyl_tag);) ?8 m# a9 _5 P2 f* {
  59. UF_MODL_create_linear_iset(0,number_in_x,distance_x,number_in_y,distance_y,feature_list,&feature_obj_id);8 H# b1 v; y/ V* x8 D, q7 I, X) |
  60. UF_MODL_delete_list(&feature_list);4 Q6 Y( e" {, U' m5 N. c. 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二次开发专题模块培训报名开始啦

    我知道了