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

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x

8 X. l# w/ w0 D; d8 @# c; Z
  1. Option Strict Off, L9 o' V, }7 x/ E" `8 S+ k" _
  2.   k4 T6 M* X, S& }" G
  3. Imports System" f( Z" M* l7 Y0 U# Y( ~
  4. Imports NXOpen
    , n8 T' C7 O( a8 Q
  5. Imports NXOpen.UF' v3 u3 x" C/ W4 }' K
  6. Imports NXOpen.UI/ D* U7 m1 ~3 K1 J3 V5 }
  7. Imports NXOpen.Utilities& n+ H! K! v& w/ A
  8. Imports NXOpen.Assemblies
    ) k6 p4 k" u7 ^
  9. ( ^3 n) I7 W' q; v' u
  10. Module create_array_of_all_bodies_in_assembly
    " ]) \3 p6 L4 @6 ]

  11. 9 v# r/ r" |0 l# _: E
  12.    Dim s As Session = Session.GetSession()
    $ k" j7 n3 B9 p0 s. i: U
  13.    Dim ufs As UFSession = UFSession.GetUFSession()  x1 Q# \1 t% I9 v; y( p+ E6 @
  14.    Dim lw As ListingWindow = s.ListingWindow
    4 k5 ]* [9 P8 x% ?
  15. + G" \7 v. l$ e4 a% M9 T
  16.    Sub Main(), e) s1 M/ j# m6 d1 X: W# @
  17.       lw.Open(): {' C4 a$ Q2 q$ R- k  T4 m2 [

  18. . E* u/ M; r/ ?$ ?3 \3 I8 ~
  19.       Dim dispPart As Part = s.Parts.Display()
    % z( I: @+ v: O9 N

  20. . Y5 C6 v3 B- g: W- _
  21.       Dim root As Component = _
    + l9 u. G& n2 N7 `
  22.                   dispPart.ComponentAssembly.RooTComponent
    & n( ^5 F6 P0 h, L: N+ E9 I+ E3 x
  23. / A  P8 F9 u" q5 E
  24.       Dim compArray(-1) As Component, b1 |8 @6 n1 G/ x! r9 Y5 {3 w5 o( y
  25. : Z4 t9 O3 f% s* K
  26.       stuffComponentArray(root, compArray)
    - g# u6 Z2 }! |+ ~, w/ \8 e

  27. : ^. o# d& q  x3 H! [
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())9 L, L/ b* \8 I
  29.       Dim bodyArray(-1) As Body
    $ |3 Q" K2 {# V" z
  30. 7 n) K) \- w0 a
  31.       stuffBodyArray(compArray, bodyArray)8 |3 j0 O' G4 c7 |, Y" q, S  C
  32. ' R  ^5 A; f3 g6 o. g
  33.       lw.WriteLine("Count of bodies in array: " & _
    ) {% z; D8 j) h
  34.                    bodyArray.Length.ToString())
    ! R# T/ _! h! {+ z
  35.   ]# t3 |* r. j& r0 B6 @* Z! Z

  36.   |: n; K) L9 ^+ N
  37.    End Sub+ o. p, m' i/ u+ d0 \

  38. 3 J8 h: C$ a2 v5 q) g5 x% a4 U
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())  b+ Z7 E( M2 `' x

  40. 6 |& g- A7 p& ^1 p6 y
  41.       For Each comp As Component In ca
      B% z# m+ j% _1 g& {" P
  42.          Dim c_part As Part = comp.Prototype
    2 m8 t# u4 k) m- a8 p8 @& c
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()$ L+ E  E) X2 N* j5 ~: @
  44.          For Each thisBody As Body In localBodies
    " d$ s6 @& x1 }
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)) @9 v6 \8 r! c! Y0 v4 s$ R7 [
  46.             ba(ba.GetUpperBound(0)) = thisBody
    - o/ G3 y/ J' E- a
  47.          Next4 t6 p1 @" `  \) V" R. n

  48. : S1 _1 A8 L2 E) j% s% B! C' I3 R
  49.       Next
    ; S4 f* c( t$ u9 f3 I# e: O: n
  50.    End Sub3 z/ B& H; _4 h; A. H7 o

  51. / ?6 ?. p+ H& a  E: y
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())
    * v; R+ o4 s: M8 j, G
  53.       Dim child As Component = Nothing* I1 f6 s- v4 Z1 l! w7 A7 b
  54.       For Each child In cmp.GetChildren()9 V/ C% e8 n  A, R) ^! x
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)( M' j0 C# l; t, T3 G2 U" m
  56.          ca(ca.GetUpperBound(0)) = child4 ^9 C2 a6 o1 g
  57.          stuffComponentArray(child, ca)
    , a4 b4 L9 X: K0 x( ~; E7 T# r
  58.       Next: c5 {( I% `0 I$ ^9 ^
  59.    End Sub* ~. S6 d4 z' Q; O) Z* c
  60. ; ]* Q* D" U7 n! a
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer
    1 P; |* V. J/ ]; S3 u, v3 j
  62. . X( U' j+ r# Z* {% |: Y$ h% M1 {
  63.       Return Session.LibraryUnloadOption.Immediately& g. r+ i2 E( ~6 W
  64. " [. l. H  M* z( I
  65.    End Function
    5 v& e. A: ~8 j7 {) T1 M+ c
  66. ! _6 S8 p+ u. m8 |" k
  67. End Module  _  c3 T# U+ N! g* Q" Q
复制代码
, C1 n- b( Z/ N3 e( }- q; `
% W) b- n3 A! P5 T
3 D& J7 g# t* {1 D, C0 B, W
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了