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

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x
1 B5 x; z' F: g) j6 Y
  1. Option Strict Off6 I$ U8 h% M4 A% g6 q
  2. + [, l# O; y9 v* T( `3 N
  3. Imports System& R7 ~1 m* w8 d( A8 p
  4. Imports NXOpen" R) h* ]8 J7 _$ v6 v
  5. Imports NXOpen.UF3 `" R1 Z2 Y  ]9 U( V7 `
  6. Imports NXOpen.UI: a; q! v+ g/ u- o* I" y
  7. Imports NXOpen.Utilities1 @% i$ f* g5 _* _3 N
  8. Imports NXOpen.Assemblies) q+ z2 r" |) g$ g) f- L( R% {
  9. ; Z( E0 a9 H2 \7 s! x: [4 t" q# M
  10. Module create_array_of_all_bodies_in_assembly
    " K! o+ B& @# O/ o+ j% }

  11. 3 C2 f1 l0 b) m3 V" I5 |; Q
  12.    Dim s As Session = Session.GetSession()
    & s+ h# y8 e2 f/ i7 t0 h
  13.    Dim ufs As UFSession = UFSession.GetUFSession(); M$ v' J8 Q9 o9 ^3 [0 y
  14.    Dim lw As ListingWindow = s.ListingWindow3 y1 t% n- t9 N/ {4 z* v

  15.   X1 l3 I! B0 K
  16.    Sub Main()  y" Q5 f+ @, D* G
  17.       lw.Open()
    & ~; l' P' R3 h0 c$ m+ ~) o5 G

  18. 8 i, ~5 B8 T* N( [9 t/ h/ q
  19.       Dim dispPart As Part = s.Parts.Display()/ \" X4 f* f% O+ e$ I

  20. ( w6 b9 u& l. |( ^
  21.       Dim root As Component = _
    1 j; r' G8 |: g) v1 a: h
  22.                   dispPart.ComponentAssembly.RooTComponent1 i! \5 X& t4 K: @
  23. 1 v- T9 ~, D' I! h* x9 \% K0 |, ^; t
  24.       Dim compArray(-1) As Component! w, Y# N2 `4 o3 `0 U) y) Q

  25. / u/ g* D/ S* p  D
  26.       stuffComponentArray(root, compArray)
    / }" t/ g  i8 K+ \0 {! |0 e
  27. % s& K+ b- u* W+ P2 a: g3 p
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())
    + V) j% {. S: R: g% C6 Z5 J
  29.       Dim bodyArray(-1) As Body
    7 o' R. n+ |8 |
  30. 2 c" n8 N8 y* r, E( c8 S! m
  31.       stuffBodyArray(compArray, bodyArray): F8 `. m. G& u9 P+ ~" `
  32. % m& B! W& f- G; J6 B
  33.       lw.WriteLine("Count of bodies in array: " & _* }8 J/ u. a+ S/ o, S
  34.                    bodyArray.Length.ToString())6 d: ^8 }" u( M) ]' V* z
  35. + l5 Z$ Q6 U& O7 M, b7 X

  36. * Q$ I/ U  @0 t  A% K  F* m0 h) E
  37.    End Sub
    8 M  T& w% z) ?& I' a& a8 }5 c2 }

  38. 7 [& V( P8 w. Q
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())  Z/ S$ j* o& F$ o& v: S! ^

  40. 1 h3 [/ l  u: E/ \! G, x
  41.       For Each comp As Component In ca
    ( _5 `' y+ g' e$ E3 O- \
  42.          Dim c_part As Part = comp.Prototype
    - k2 L* x: V4 J' @% u) J7 l/ a
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()$ s$ e) A( L3 a
  44.          For Each thisBody As Body In localBodies
    " e5 I! V0 s$ }$ V
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)
    5 `! B5 i  U4 {5 |0 }
  46.             ba(ba.GetUpperBound(0)) = thisBody
    : d$ S7 ]7 l" g, O0 f- b6 y' ]. L
  47.          Next
    , ?7 N, _, ^1 n
  48. : p7 u# u) M" z( `  o1 S
  49.       Next5 X7 j" a9 O* N4 c; x+ y
  50.    End Sub! P- [0 o* H) C) X
  51. 3 I* L; M1 X, g. I/ e
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())6 a7 j3 P. E! v8 ?* h
  53.       Dim child As Component = Nothing$ X3 `0 ~* [: Y! A
  54.       For Each child In cmp.GetChildren()! Q1 o/ o+ ]+ _% F! m
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)
    : x+ _4 h$ b* _) [8 a
  56.          ca(ca.GetUpperBound(0)) = child! D, S9 b1 J& P/ ]9 S
  57.          stuffComponentArray(child, ca)+ Z5 M  F- o4 k7 Y! l, v
  58.       Next1 d& J8 y5 i! h7 k" @2 ~
  59.    End Sub) ^+ B/ I$ c; k. Z; |% B2 S2 D
  60. 4 E7 s$ b$ @! W* Y7 q
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer
    ) F- B* f1 ]: S
  62.   @8 I: v7 `9 {' {9 j& [
  63.       Return Session.LibraryUnloadOption.Immediately
    ( R4 b3 A4 B& y! G" I  H
  64. % O4 J1 k1 ~, F: J$ F
  65.    End Function
    . g4 Y; c$ P1 M7 y# L- n. L

  66. , ~0 f$ W, }: u. `4 }6 k0 f
  67. End Module8 t7 E& c0 _7 d6 i4 l
复制代码

+ B% u  t, n  W2 s( {( f8 a, g9 G; B5 s$ s& W. s

5 U) g% Z* [# \  m' |  s; x
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了