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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x

$ A4 i3 g+ W3 Z* ^5 j" Y0 s! E% s9 }
  1. Option Strict Off- g9 c" ]6 v4 y! |  v. k3 M

  2. ; F, j% U! q0 b5 t3 t7 M7 m, r- X
  3. Imports System% u7 ^( n! p, a/ t
  4. Imports NXOpen) A6 z3 v5 z4 r% y; s+ H* h
  5. Imports NXOpen.UF
    ' o8 ?. w- _) R' l2 F6 o
  6. Imports NXOpen.UI+ S# H$ q. d( F2 z: ]
  7. Imports NXOpen.Utilities
    8 z9 E. O8 o5 k, t$ t# C3 V2 T+ a
  8. Imports NXOpen.Assemblies3 m6 @) q+ g! B6 i( M' C8 _2 g+ _
  9. ; y+ U: D# n: `: n
  10. Module create_array_of_all_bodies_in_assembly5 r- R: T# y4 G! o5 e

  11. 3 Z5 F+ ^) V  ]4 ~. W2 C! S. V
  12.    Dim s As Session = Session.GetSession()
    4 E, f# Y0 n  x0 a; d* P
  13.    Dim ufs As UFSession = UFSession.GetUFSession()
    ! O# `% n6 U! M( v- y6 P. q
  14.    Dim lw As ListingWindow = s.ListingWindow
    # R& j3 V1 o9 a6 t

  15. 4 v; G* P8 V, N
  16.    Sub Main()1 ^! w" z- q/ d; O  T3 J3 g
  17.       lw.Open()
    8 _+ Q! G# B4 S9 z: p

  18. 7 ^: I. W4 V8 d/ e
  19.       Dim dispPart As Part = s.Parts.Display()
    2 d; w) Q( Z- X; s- v3 O
  20. % o1 e5 X- C% m. \; y! ?/ e$ j" o
  21.       Dim root As Component = _7 k3 F6 e( h/ V( I
  22.                   dispPart.ComponentAssembly.RooTComponent
    3 V8 m% x: s- p
  23. % l9 o9 M+ x9 z9 h0 t+ ^; a! ^
  24.       Dim compArray(-1) As Component
    1 |' C/ R2 c% X* @2 ?1 g) ~

  25. - V7 z3 d1 E/ Z( B# C; u
  26.       stuffComponentArray(root, compArray)& O0 R8 K2 ^8 G% d5 V/ X

  27. $ k) f1 ~! p* R9 }6 H0 w
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())
    9 v8 G& ]; v3 a
  29.       Dim bodyArray(-1) As Body& q8 I% A8 g) y; j6 ^; X- H

  30. 4 ?4 h  h' \7 n
  31.       stuffBodyArray(compArray, bodyArray)! @( ~+ }/ u3 o/ }' m% A. Z& [. b

  32. : @* x- a: G; o1 l, u! n
  33.       lw.WriteLine("Count of bodies in array: " & _
    5 a# {) Y7 h+ v& u; j9 S
  34.                    bodyArray.Length.ToString())
    $ j8 ^) v" D% j# \4 W! S5 D

  35. 9 U2 G7 H( p5 o& p
  36. / ^$ I, Y/ ~: P# z
  37.    End Sub- X" i1 u. ]7 n( t0 v& k

  38. ( k6 l; {0 V3 ~. F  k  B. F. Y0 G
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())
    + f9 W: Q+ c' ^$ X% `

  40. : x0 X. j% T3 D0 r, D
  41.       For Each comp As Component In ca
    ) ~6 z. A: C! y8 C
  42.          Dim c_part As Part = comp.Prototype8 X& d: f% t& W# ]( E
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()
    3 u" x  j& g" J# F/ ?
  44.          For Each thisBody As Body In localBodies
    . Y" Q- ]/ ~% q) G9 ]9 H: g/ B
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)
    0 E. ?# {. _& R9 ?4 f
  46.             ba(ba.GetUpperBound(0)) = thisBody
    : A; H* J1 c# ^) k3 k% _# y
  47.          Next
    0 {$ z+ {( X) E( Z) p4 h* n% m

  48. 7 m$ f, X4 s5 T+ |. t+ S
  49.       Next% W% Q- E4 r+ x% h" Z
  50.    End Sub  @/ O( X6 t4 C9 u1 D
  51. 6 f/ ]) F. X& e' O% g+ `: j+ W
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())
    ) K, C, N% a9 b' ~- D, ]& B" I! _
  53.       Dim child As Component = Nothing( T$ }; `$ C- r! z9 S4 K; F
  54.       For Each child In cmp.GetChildren()
      }& i( w: S! h
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)) d  x; p2 }5 P/ |8 {& H7 l5 `3 b) }3 {
  56.          ca(ca.GetUpperBound(0)) = child; X. C+ p* A0 u  \: h
  57.          stuffComponentArray(child, ca)
    1 c2 K+ i2 F8 a' V: [1 N
  58.       Next
    4 g/ c$ R2 Q" y$ b, d. L, x8 O- C5 K
  59.    End Sub
      }$ L/ P* H. W3 H9 p) ^
  60. , ?2 H! Q/ w8 G) S
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer
    9 o) q, s/ F- e0 j; H. t. N
  62. 9 u; O5 o; _# x& q
  63.       Return Session.LibraryUnloadOption.Immediately
    ( k1 G7 I! y/ p9 f+ E) }

  64. $ z- l" a" C, f" q$ X7 x/ a( V
  65.    End Function
    9 S% j0 M# I5 u9 W% v
  66. 9 Q: T! Z# a9 I+ D8 X( N/ C
  67. End Module* k& @0 ^% L4 x
复制代码
& q- \0 ]3 l) c8 j2 }  F* j

! E3 {5 Q' ]) U0 p: b  ^- T9 ^: ~6 p8 m
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了