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

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x

1 n0 i; Q! m( S9 U& O4 A
  1. Option Strict Off
    9 l0 U& I9 e# h( l: h
  2. & b0 y/ e- K( |
  3. Imports System
    0 G+ L2 n6 Q/ ]
  4. Imports NXOpen% @0 B# z: H' P$ {# Y
  5. Imports NXOpen.UF
    1 q6 [& G: a. e8 h* |
  6. Imports NXOpen.UI! A6 k. [% |' {- K
  7. Imports NXOpen.Utilities8 S: J  g- [7 s
  8. Imports NXOpen.Assemblies- ]- S' U6 V( @( e" B- N# o. S% g7 {

  9. * e7 |* v( n5 l( Z2 o
  10. Module create_array_of_all_bodies_in_assembly4 ~( b  M  c/ F3 K2 s, L; k6 s7 w

  11. ) h. c  n6 j0 ^5 O: c! i1 i/ b
  12.    Dim s As Session = Session.GetSession()
    8 a( D) }; \& G6 ~! u  Z' A
  13.    Dim ufs As UFSession = UFSession.GetUFSession()' e; L  _2 x  v3 A( E, M; s2 ^0 Q! e
  14.    Dim lw As ListingWindow = s.ListingWindow: j% I! ?) {$ m2 M
  15. ( n$ D* {9 p& a5 Z. P8 \( |
  16.    Sub Main()% E0 t5 o& r* p7 n5 ^
  17.       lw.Open()
    9 ]+ |2 r' }0 t# ?& w
  18. , b# ]4 |" `/ j6 S
  19.       Dim dispPart As Part = s.Parts.Display()
    3 R2 l2 n. B; p6 X
  20. " u: T! F+ f. e6 S
  21.       Dim root As Component = _/ p- P2 Y$ ?( L2 ]" n: v( ?: \! X
  22.                   dispPart.ComponentAssembly.RooTComponent
    4 A+ P) X5 ]1 a1 Q" `/ H

  23. 5 S2 R7 Q# ~0 m9 Y6 c) U' m
  24.       Dim compArray(-1) As Component
    1 ?4 |% g7 e, f( F: c2 t

  25. : N9 [8 T: t" L( V* P; @3 U. w
  26.       stuffComponentArray(root, compArray)
    / E5 N1 N: ]. p, Q5 ~9 M% u
  27. , C& A' r( S& H& _$ l6 {' x
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())1 D; D" k. n* E% C6 s( L7 O
  29.       Dim bodyArray(-1) As Body, B& \# x9 A- ~" k* r" {

  30. ; W: E& q. V6 k# d, x
  31.       stuffBodyArray(compArray, bodyArray)
    8 t8 c& `6 W: F, P/ s

  32. 0 @' D2 W+ |" s# E: \
  33.       lw.WriteLine("Count of bodies in array: " & _8 y- k! L( s* I+ W
  34.                    bodyArray.Length.ToString())9 c) W& n4 l$ a/ e( B9 f" o

  35. % L4 A" |' m2 N$ i: t7 ?

  36. 5 U4 p/ s+ A& f4 j" T
  37.    End Sub
    8 S& n. n7 U3 B* ], }
  38. # B' w: q& L3 {1 v3 o
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())0 G& Y6 u- N; w7 G$ Z  E  N9 s

  40. + ?  ]+ y) s  N- s3 V% M
  41.       For Each comp As Component In ca
    + |1 h- e& N# l; C* Q/ ?
  42.          Dim c_part As Part = comp.Prototype2 _# O# F: ?3 I) _) p
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()* c( z" b! Q! A+ y
  44.          For Each thisBody As Body In localBodies
    8 a# H3 o) ~4 O/ A4 R
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)
    & s, v% \" x' P( ?4 Y1 M7 f
  46.             ba(ba.GetUpperBound(0)) = thisBody7 b6 g0 L5 X$ H/ R" z; n
  47.          Next
    9 X0 @  x: P0 l* k

  48. 3 @& C  f1 L9 N
  49.       Next) K, D5 `  k4 ~/ ~
  50.    End Sub
    3 A: o# V2 o0 Z0 h: l1 h
  51. 9 c; R: ]5 ?' `$ ?. M
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())) D0 b& L* }. v/ h7 J
  53.       Dim child As Component = Nothing
    , [# {! Q8 q$ Z) r8 u% C) t
  54.       For Each child In cmp.GetChildren()1 ^- U: T; B" x% n+ j5 m
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)+ V' o6 }/ j5 f  n3 e/ F" C
  56.          ca(ca.GetUpperBound(0)) = child
    * k! W, s& H/ S# O4 T1 P) O
  57.          stuffComponentArray(child, ca)
    ) D" q' Z9 [3 w* K+ S$ t0 `
  58.       Next# m& w. |7 |. j  A
  59.    End Sub, k- u9 p2 b4 Y

  60. 8 J  C  ]% ^1 m9 T9 R3 W
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer
    & }2 f" m; x% G
  62. 0 Z7 |; ^2 K7 S* Q. j, q/ k
  63.       Return Session.LibraryUnloadOption.Immediately
    * G4 ^$ M1 r% q9 D; i
  64. ( c( k' A  A2 ^" k3 m: l7 m: n
  65.    End Function
    # c6 u/ {" A/ i. z! w+ u, E

  66. ) E9 a$ E- Y  C& |1 H4 B
  67. End Module4 C; x1 q& e7 K( }, i! A1 T% Y
复制代码
: I" B) f- D# w8 i
+ i5 A- F3 F) L$ {+ f

' ]; x, [1 V6 h  ~- ?% f$ ^* L
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了