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

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x

0 z1 J( F; B9 Y' H1 Z
  1. Option Strict Off
    - [( }$ {- x7 b# @" |% x( d  y: @

  2. ( {/ c  C3 T1 r% q5 C7 E! y1 O
  3. Imports System4 [% G& \# L/ M# n  E" C/ i
  4. Imports NXOpen
    ; A( e# H5 T5 v& I9 o" X9 j
  5. Imports NXOpen.UF0 y6 w7 L# _1 T' s# z& i
  6. Imports NXOpen.UI0 G0 Y/ D8 g0 r1 E! j
  7. Imports NXOpen.Utilities
    0 }, k' M+ v5 p, q& ~
  8. Imports NXOpen.Assemblies
    0 c$ |3 Z' J) m" ?6 }

  9. " K. i# [9 Y, B7 ?3 U+ k+ v
  10. Module create_array_of_all_bodies_in_assembly  P2 _4 l) u5 u! ^7 o2 h

  11. , P/ [, T( a& [5 H
  12.    Dim s As Session = Session.GetSession()8 F) G  J% O4 a7 x- }
  13.    Dim ufs As UFSession = UFSession.GetUFSession()+ E  L9 c3 y2 C# }+ K7 \/ O4 V8 v
  14.    Dim lw As ListingWindow = s.ListingWindow
    ( U$ V0 N9 J* }3 g# Q5 G- z

  15. % x+ {- @  F( ?0 K& K
  16.    Sub Main()
    0 Q! \/ o* L$ L' N1 _1 `5 L. e# H: v
  17.       lw.Open()/ ^# h5 u/ h2 H( x6 W" g
  18. $ u8 h, s' G. g, f1 \# E6 t1 L. @
  19.       Dim dispPart As Part = s.Parts.Display()- O; ~( X. d$ p4 U) N- {
  20. : @" S' Z1 j$ ?3 `+ T
  21.       Dim root As Component = _
    ! p! }  s5 |0 U( \0 b
  22.                   dispPart.ComponentAssembly.RooTComponent% Z$ t& k* W) {, L) Q6 W
  23. % [- X7 h$ O5 b: u7 N- N' X6 h
  24.       Dim compArray(-1) As Component3 `2 [2 D& ?4 q! S/ X2 m0 d

  25. 2 _. B0 ^% G) `0 B9 w
  26.       stuffComponentArray(root, compArray)
    $ ~4 R% o) z, B7 W3 m

  27. - f+ Z' F, {5 N' u& I
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString()), v; w. i' D7 P& Z0 G* \! X
  29.       Dim bodyArray(-1) As Body4 I) D4 R% Z1 ?2 u  W0 ^
  30. * W& v8 d! i+ V: O/ g2 X
  31.       stuffBodyArray(compArray, bodyArray)
      _/ J# N' n. ^+ T
  32. $ G9 L3 \# M+ m' B/ l$ F/ }
  33.       lw.WriteLine("Count of bodies in array: " & _  z1 i0 ?1 Z2 o4 N5 x8 B& N
  34.                    bodyArray.Length.ToString())
    # t5 u5 @' J4 Y; a0 ]

  35. $ _6 p/ q* \, b4 s- F+ b# f: V
  36. 3 f8 e! M  b9 d$ a  i2 j% n
  37.    End Sub& f  B0 h( H2 ]

  38. # L; X$ u) t5 U, ?% e- \3 I
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())* y* n) ]; m# V' ~

  40. / Q- J' s6 H: @  v6 g1 }
  41.       For Each comp As Component In ca
    7 F0 ]' ^" @" t9 s- L, A: A
  42.          Dim c_part As Part = comp.Prototype
    - k3 t# Q% C) _5 p; b3 B( O8 @
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()$ O- g/ R( E5 T1 I& }
  44.          For Each thisBody As Body In localBodies
    2 u( V$ t# p! ~
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)
    ( E+ N7 q; l  k* ^7 h7 x7 c
  46.             ba(ba.GetUpperBound(0)) = thisBody" B( Z- @" j. F+ X, X/ G; ]
  47.          Next
    5 ~$ k0 d' K+ L' i) N5 j# E6 p6 S2 F
  48. # H" L* N; _' z# Y
  49.       Next
    9 G* x, H  A/ s- O
  50.    End Sub  G& a) x' ?4 j- V7 |  S
  51. 4 w6 U) v& A. Z7 ?
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())% p" t' G) \# R; g# }% d+ b1 l- _
  53.       Dim child As Component = Nothing
    7 I* A3 |* N; s# W
  54.       For Each child In cmp.GetChildren()$ F: a* ]/ N0 J, [% `) @
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)
    0 F( x! z% ^; O/ _$ ^* H& t4 D
  56.          ca(ca.GetUpperBound(0)) = child
    $ g' L* l/ h- L* N0 L) [
  57.          stuffComponentArray(child, ca)
    3 \" L& L' ]7 d, q' v- n$ N
  58.       Next
    $ @( v+ G. i& E1 D2 W" s
  59.    End Sub; S' n4 _2 G1 j7 ~- b) q! O
  60. ( \8 J' }. x/ z9 z: T  U
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer/ P0 e" {7 N0 j: y5 n4 k! g

  62. % L: _0 B/ d4 {
  63.       Return Session.LibraryUnloadOption.Immediately4 _9 t2 \2 ^% g, o0 \* i0 L# g
  64. ( f) N) H  e' n2 h. v  j1 E9 M
  65.    End Function
    2 K3 ~# L5 _$ p2 |. D7 ]
  66. . \! O  N8 k* }4 m0 M9 R8 i$ r' H
  67. End Module7 J% b% f$ o! i/ ^0 G" e2 z
复制代码

2 G6 ^3 A6 R* X- i
1 }' `' J1 [% |' F3 k# B& J, Q7 t+ p
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了