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

[二次开发源码] NX 二次开发源码:从整个装配上获取所有的实体

[复制链接]

2013-10-30 13:46:00 3844 0

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
发表于 2013-10-30 13:46:00 | 显示全部楼层 |阅读模式

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

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

x
) k, s6 I2 |4 M; w1 q. x
  1. Option Strict Off
    3 @0 C/ p, b6 o/ o: g3 ]8 \, z

  2. 5 g1 ?' s8 O, }8 q+ r
  3. Imports System
    # P& e1 x& U8 ?+ {( H
  4. Imports NXOpen
    / g  t0 {# e! l* z
  5. Imports NXOpen.UF
    4 ]  l7 ~) a* n3 t' t; G( t  v0 t
  6. Imports NXOpen.UI
    * S- w6 [9 b, {% J
  7. Imports NXOpen.Utilities
    % n2 S' k1 y0 H+ `- N5 F7 I& Y
  8. Imports NXOpen.Assemblies
    7 ?' n1 P; |: g
  9.   y5 C) R6 }7 M: [* [; G
  10. Module create_array_of_all_bodies_in_assembly
    4 g3 U' \7 L. c  H
  11. 6 S; y9 h$ g0 K5 T, s+ y( z
  12.    Dim s As Session = Session.GetSession()
    3 u$ }; p; E9 V' M  I. `0 I
  13.    Dim ufs As UFSession = UFSession.GetUFSession()9 C8 w2 _3 q  I. k
  14.    Dim lw As ListingWindow = s.ListingWindow; ~4 U- ?  V4 Z/ O; S
  15. 4 ?- |1 Y6 ]8 t& f, Q: \
  16.    Sub Main()
    . j) n! f  Y/ q7 {" W4 o. j- B
  17.       lw.Open()% Q9 {) N8 W- W, y3 b( t
  18. % `: m$ |: }3 f, @& ]
  19.       Dim dispPart As Part = s.Parts.Display(); q! y/ P0 B/ A6 L7 \. H
  20. - S) c6 b$ b0 E
  21.       Dim root As Component = _
    - |- b* Z8 q& y, s
  22.                   dispPart.ComponentAssembly.RooTComponent
    6 ~2 O, F* o0 j# j/ N

  23. ! M7 i* e' P2 Y
  24.       Dim compArray(-1) As Component9 g6 ~' b8 {  K  x9 M& a

  25. % e* h# s! ]5 l% T1 y, M
  26.       stuffComponentArray(root, compArray)
    # l! u. X$ g# I( G  G: s

  27. 9 h+ K0 H7 S# M6 Z+ o, l, b' N" z
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())
    8 t8 B0 u( e1 ?  m6 K, v1 Y
  29.       Dim bodyArray(-1) As Body* e8 r" Y- H" t8 i

  30. 1 z5 ^8 A& q$ z  @
  31.       stuffBodyArray(compArray, bodyArray)" Y9 _, I3 z  ^5 z& g! \

  32. 7 D* v/ {' S" P8 W4 n( s" k
  33.       lw.WriteLine("Count of bodies in array: " & _. }4 L. H- J/ v" E+ O
  34.                    bodyArray.Length.ToString())
    ! W. H; r1 |/ E3 E3 X' H( m

  35. " s/ O+ |; q# `
  36. . Q$ S: Z, `; k0 W5 g" q+ ^- ?
  37.    End Sub
    " D# |  i' }( L4 L! l# ?: B% t5 d

  38. 9 @5 l; u8 L5 h+ P& y9 [* q
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())' J  h8 d: a8 f0 y4 X3 x

  40. 1 m! ]- o* S6 ?
  41.       For Each comp As Component In ca/ p% t6 [9 N/ @# d
  42.          Dim c_part As Part = comp.Prototype1 G! q7 A6 W+ W
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()
    2 Y; y0 m- c- }; E' o$ j. u
  44.          For Each thisBody As Body In localBodies( V  j8 v4 Z% v; W# b. T
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)7 _3 O, P& V# c& Q: n4 z7 @2 i
  46.             ba(ba.GetUpperBound(0)) = thisBody! B* [1 t  m! J3 A) e
  47.          Next7 G' W7 K+ o9 R$ G/ |

  48. 1 j$ m7 ^. R& ?
  49.       Next6 K# g2 W  V) B; x9 t+ d9 R
  50.    End Sub( }0 U. Q2 ~4 a; ?$ z
  51. " o) S8 e, n0 J1 i
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())
    ; q; I9 F4 {! o+ D. ~% E9 O
  53.       Dim child As Component = Nothing# ]7 V" I. C& W+ M$ V% y
  54.       For Each child In cmp.GetChildren()
    8 ~. U, t# }( K4 E' d( n
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)' F/ c! f$ C+ Z! n/ \$ R
  56.          ca(ca.GetUpperBound(0)) = child
    4 W4 D5 q; R6 U- d2 H
  57.          stuffComponentArray(child, ca)
    ' x5 M- |- a" x+ Q3 r# a3 O
  58.       Next. R6 @4 H6 g7 i0 _
  59.    End Sub
    : v$ q, `4 {% h# b4 }
  60. ) j8 P4 r; e3 b9 j. L9 R% _/ B
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer5 L. `3 U* N- I
  62. 8 R2 ]" O& d  A$ G. u4 N: [* b
  63.       Return Session.LibraryUnloadOption.Immediately* ~+ l# N% @0 `% _8 U# P
  64. " |. ^$ S7 k6 y+ w3 R2 A  q9 T
  65.    End Function
    + I3 x7 x. F; V

  66. 9 m$ G: m8 t( D4 z4 R
  67. End Module
    7 V' D( L+ Z( X. Y/ e
复制代码

# y+ B; X' B: n( d) {! o3 J# P3 G
' X0 |% N- {, n" Z4 ~
4 S- f! _  o( e. ]
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了