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

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

[复制链接]

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

admin 发表于 2013-10-30 13:46:00 |阅读模式

admin 楼主

2013-10-30 13:46:00

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

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

x

1 _$ E- g9 l$ R  p$ |
  1. Option Strict Off
    + B) g3 T; u2 o0 E

  2.   D2 p; k% e9 e( \3 A0 ]8 k
  3. Imports System5 l. b" ~) D- h  ?; H; d* d
  4. Imports NXOpen% f4 X. f# j# \# N
  5. Imports NXOpen.UF1 @8 N1 d. O5 r" A7 m" R/ j: c  ?
  6. Imports NXOpen.UI$ [% `" R1 e" y/ T; m0 b8 p
  7. Imports NXOpen.Utilities
    2 H+ ~* I3 w) A& V
  8. Imports NXOpen.Assemblies5 b/ K1 \, E$ M& V4 k! q

  9. : N7 b+ @9 e% z5 B
  10. Module create_array_of_all_bodies_in_assembly8 Y# O/ {# @+ K# J
  11. 7 t& s( u, {2 {9 d9 v! ]" `
  12.    Dim s As Session = Session.GetSession()
    ) r' s, J; j: X  U9 X, p$ K
  13.    Dim ufs As UFSession = UFSession.GetUFSession()
    ' G& A( Q+ y& o3 m) {
  14.    Dim lw As ListingWindow = s.ListingWindow
    : Q7 O+ M; a' W- W

  15. 7 u7 K- |. w2 J' e: A% N* l9 Y
  16.    Sub Main()
    / d! e3 W. _" I2 \
  17.       lw.Open()! K# ?% O1 e* o  O& E, Z
  18. * V' E$ G; Z) B; c- w
  19.       Dim dispPart As Part = s.Parts.Display()
    9 m9 D* s' v9 Q. V6 s
  20. ; j5 r0 E8 P- i
  21.       Dim root As Component = _
    " C" k0 G6 K9 M# D) y* _, G' X7 o9 R
  22.                   dispPart.ComponentAssembly.RooTComponent4 ]3 c  @/ B3 J( h) f( F  H6 B9 ?. k
  23. # U: \4 A7 p+ t4 s8 c9 l' v6 a
  24.       Dim compArray(-1) As Component; A; ^* ]$ q: Z7 o- Y7 }4 V- a8 E
  25. ; z3 {0 R& ?7 T5 u
  26.       stuffComponentArray(root, compArray)
    - O+ i5 v2 |" K4 X

  27. ( s, r# ^6 [& A6 X
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())
    . W1 y0 `7 ?  }# L6 E- N
  29.       Dim bodyArray(-1) As Body
    " x/ F& t1 q6 a7 n( f! F3 W
  30. ; @4 Q2 S- _) m" Q
  31.       stuffBodyArray(compArray, bodyArray)1 ?& m4 I. E& O4 i! Y1 ^

  32. ' {3 n: ~7 v% k$ O/ M' P: A8 C8 _; `
  33.       lw.WriteLine("Count of bodies in array: " & _
    8 n6 \4 T9 |1 U) g8 e
  34.                    bodyArray.Length.ToString()), A0 I5 Y$ J6 n5 E$ C

  35. # ^* F  G& B! D" O
  36. 0 v, E# m# t" f# k- Q9 S9 d
  37.    End Sub+ Z. v+ T/ O+ m  H

  38. / T' q7 E9 W! D# i0 ?
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())
    9 s+ j0 y9 [% y4 U% k) H5 ?* }
  40. 2 Q  r- d- b& ^5 {* h; b/ f
  41.       For Each comp As Component In ca
    ! N) s% b' c/ p& L, I6 ~
  42.          Dim c_part As Part = comp.Prototype+ B3 D* A% ~. H# O4 v8 ^& c$ q
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()* U5 R+ g* u( X! V  d
  44.          For Each thisBody As Body In localBodies/ E( ~, ]! w, M& H7 N, d
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1). D( J; s- b3 f  W
  46.             ba(ba.GetUpperBound(0)) = thisBody" _. }- Q% ~2 T
  47.          Next
    3 K; c" S% U) T' ^/ L% ?; c
  48. ( _) ^& F0 G0 _& F/ `7 f
  49.       Next/ y5 J6 n6 T( G+ g: m) M# p+ e
  50.    End Sub; `* u5 q' O/ t5 k" ~

  51. + y! s  r. ]4 n/ }/ e5 s
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())
    + Z/ b, [0 d* p& V7 \+ o
  53.       Dim child As Component = Nothing
    / |) m0 {; W  v: {+ A1 T  W
  54.       For Each child In cmp.GetChildren()% Y9 c( r7 A7 `. h$ ~# B
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)1 {. W- i* ?8 a% `/ }7 Z! Q  D& b1 O
  56.          ca(ca.GetUpperBound(0)) = child
    % z* s, n" l$ ?& l' ^
  57.          stuffComponentArray(child, ca)
    $ m- E; n% B6 p. x
  58.       Next
    0 C9 G) Z) d7 S- R$ C
  59.    End Sub
    ; }3 |& b0 i6 I/ H" r1 Q) ~4 r
  60. 6 H" \' ]/ a6 i- r' k+ Y* r! R
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer1 Q* m# L, j9 E
  62. ) ?) k0 @0 O+ K  L9 O& `5 O3 R" w
  63.       Return Session.LibraryUnloadOption.Immediately
    ' V1 ?. s  e: Y7 n$ [( b

  64. : P1 p; e" r8 f1 v2 @
  65.    End Function
    + o1 n7 F$ p( O2 H
  66. & D6 l) b: o+ O
  67. End Module) n  z, b9 C& ]% ~; N! ^* [# Y
复制代码
# s& l( p, |; k8 B
( L3 ^- G- c9 i
& p. @9 _1 q0 S9 `
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了