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

[二次开发源码] NX二次开发源码分享:获取装配树上所有的组件名字

  [复制链接]

2016-3-20 23:55:52 6129 2

mildcat 发表于 2013-12-2 14:28:54 |阅读模式

mildcat 楼主

2013-12-2 14:28:54

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

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

x
NX二次开发源码分享:获取装配树上所有的组件名字
6 D3 a+ t$ M# A+ p/ Q, |
5 M3 @9 Z+ S1 v0 R) ^这里使用了递归的方法,进行查询!
/ N9 t# m* C1 w. G/ m$ r; t
) L% z! x5 j# W" ~2 n4 A " S/ x/ j. m) e9 `. G5 c

1 I; ], h! I' N% W- C/ @

  1. 9 ?  U( s* _# ~$ q" Q4 R; [
  2. <p>
    5 z# p2 A, R6 P
  3. static void findallparts(tag_t part_tag)
    7 F6 S0 @9 M/ ]! r0 M8 r! z
  4. {
    8 ]$ T9 Z" e$ E8 ?
  5. char part_fspec[257];$ ~" t8 }% {8 d* u
  6. char msg[133];: G3 q/ ^" p- U* o; x& B
  7. tag_t *child_part_occs;" x$ ]0 R& Z1 m5 k: k
  8. char part_name[ MAX_FSPEC_BUFSIZE ];
    9 Y" O/ d+ L# l7 f  D
  9. char refset_name[UF_OBJ_NAME_BUFSIZE] ;
    - s- r  {7 i7 O7 J4 i; f/ \
  10. char instance_name[ UF_CFI_MAX_FILE_NAME_BUFSIZE ] ;
    - r# L. i( Z7 f! y& Z- b. ]: ]
  11. double origin[3] ;- m! t: b+ p5 N* ~% Q4 w4 D
  12. double csys_matrix[9] ;
    & T8 L0 y/ {+ ~5 M
  13. double transform[4][4]  ;
    + l: V* U* N. X/ ~4 h
  14. UF_UI_open_listing_window();
    . @+ h2 L) K7 h( t- ~  O: r; x
  15. int count_occs = UF_ASSEM_ask_part_occ_children(part_tag,&child_part_occs);
    * O6 H/ o  h1 h8 z) K* `- E+ x6 }
  16. //if want to get the suppressed components
    1 t- |8 Z  ]/ @* u/ k
  17. // use UF_ASSEM_ask_all_part_occ_children
    6 }- |" |$ D3 y  c8 N- w
  18. for (int i = 0 ; i < count_occs ; i++)
    : r- t/ E0 F( w7 P$ C- c) f
  19. {; g+ c2 K: Y- g+ _( D/ t( D
  20.   UF_ASSEM_ask_component_data(child_part_occs[i],part_name,refset_name,instance_name,origin,csys_matrix,transform);
    7 F* [6 ~: J3 I  k( |) z+ F: |% D
  21.   sprintf(msg,"occ tag : %d \t part_name:%s\t instance_name:%s\t reference name : %s\t\n",
    ( R- v5 Q8 ^" K% H
  22.   count_occs,part_name,instance_name,refset_name);! _9 j: o4 i9 ~& _  C
  23.   UF_UI_write_listing_window(msg);
    7 ?, y% {+ f* W' C) o6 i& D( \
  24.   findallparts(child_part_occs[i]);6 Y; i  X" U) m3 G# _, L
  25. }
    ; O( T& v+ j: U0 s1 ?3 P) X" C9 O
  26. UF_free(child_part_occs);2 L+ l1 m0 }# S' t# ^( G
  27. }</p><p> </p><p>
    2 q& x, v  X/ _5 i: E" `8 {
  28. static void do_UGopenapi()
    - {/ ~1 M) v+ n7 D
  29. {5 B7 r9 u3 h; L* }7 `& Z
  30. tag_t part_tag = UF_ASSEM_ask_work_part();
    " ~8 i: ]7 V5 E& S! S# W! p; o
  31. if(part_tag!=NULL_TAG)' k1 f9 d' ~" T0 O6 P1 C
  32. {7 p: T; h. G8 {+ ?1 j/ c
  33.   tag_t occ_tag = UF_ASSEM_ask_root_part_occ(part_tag);5 Z! u. D$ Y" O1 v+ r* x% e) y
  34.   findallparts(occ_tag);
    # g1 J! J+ R+ R4 Y. w8 M
  35. }. C6 ^4 F# o- ]- Q  m
  36. }; D# k- |7 p! n. a# U$ t  R
  37. </p>
复制代码
; Y. U3 Y- H+ j: f3 @7 `+ D
该会员没有填写今日想说内容.
回复

使用道具 举报

全部回复2

airintheair 发表于 2015-7-8 09:02:58

airintheair 沙发

2015-7-8 09:02:58

为什么我用UF_ASSEM_ask_part_occ_children和UF_ASSEM_ask_all_part_occ_children得出的count_occs都是0,而child_part_occs也是空的,好郁闷啊
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

st_chris 发表于 2016-3-20 23:55:52

st_chris 板凳

2016-3-20 23:55:52

执行代码后闪退是什么情况?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了