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

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x
& T. A% E+ X: Q0 I0 ?; f1 e2 j. u
  1. Option Strict Off7 v' m( D8 F: B. a; i) h! e

  2. % W: U; k- v. C+ {  k
  3. Imports System' h3 ~+ B$ M. O7 u! o2 @* r
  4. Imports NXOpen
    5 O4 Q; y! a, r9 r5 F( Y! c  s% J
  5. Imports NXOpen.UF5 h( j) b9 f& ^* k  _; N
  6. Imports NXOpen.UI* }2 q4 J. M8 v- b5 K9 {; r
  7. Imports NXOpen.Utilities
    7 \; l3 U8 o' e- J( }# X
  8. Imports NXOpen.Assemblies
    , W7 D7 g: W$ T- K3 q5 E2 E

  9.   K) M2 c- f( C  X1 o: U
  10. Module create_array_of_all_bodies_in_assembly2 T- q7 ~# a2 w3 p5 {
  11. + i4 h# x/ t- @# Q& W& M4 S
  12.    Dim s As Session = Session.GetSession()5 M" d# R: R) c) N
  13.    Dim ufs As UFSession = UFSession.GetUFSession(); m- _1 V; Z( D7 Z
  14.    Dim lw As ListingWindow = s.ListingWindow, w5 W$ F( r$ D- h2 t( V+ {
  15. 5 g8 _  k; y) n
  16.    Sub Main()
    9 `" d  q" B7 J4 W1 ]
  17.       lw.Open()! R8 m; X) L+ z( y! ]
  18. , K0 F- G! R! b
  19.       Dim dispPart As Part = s.Parts.Display()" f( @: J2 ~. J4 }" L
  20. 3 N/ Z0 i" ?6 l# Q8 a
  21.       Dim root As Component = _* P2 {) u1 _1 O( O& }  r, ?4 N
  22.                   dispPart.ComponentAssembly.RooTComponent
    - y6 u6 L$ X) H4 E

  23. ! b) V; Z: N5 d) n" y
  24.       Dim compArray(-1) As Component
    . L/ ?6 |3 m3 M9 i! l

  25. , J5 {7 i6 j) X: C0 F! S* ]
  26.       stuffComponentArray(root, compArray)' f; F. d; O4 }+ Y  ~2 `& D6 f
  27. & X* H2 G1 T" A
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())
    & ~* ]1 f3 h) u: O
  29.       Dim bodyArray(-1) As Body( w4 u4 M: i( V, @2 r& K

  30. # a6 ^. }# @, s- d8 e% G) ^7 B
  31.       stuffBodyArray(compArray, bodyArray)
    . V- S6 J4 o+ J- L4 C4 ]( ^
  32. 1 s% {  [$ w$ |! r* u' j* K
  33.       lw.WriteLine("Count of bodies in array: " & _
    & |% _( m: v2 E- g6 u
  34.                    bodyArray.Length.ToString())
    ! d6 ^) L' ~3 G( g5 ~) V# @/ L5 O+ i
  35. ! f. z8 z8 o* e( b4 k* x

  36. 0 [9 l& t9 ^/ C. P- {- N
  37.    End Sub. g: `) T. _6 _5 h! a

  38. ' U( F7 C3 p1 n* F! _4 D  E
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())% v- }; \' r; f8 J# i

  40. . c) o+ G( k, G! b+ c, z. l( `
  41.       For Each comp As Component In ca- ], A: x: ^& q4 p- Z- F
  42.          Dim c_part As Part = comp.Prototype6 h$ F) b, m" {) F- a) v8 d
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()' n4 c. R* a! l6 \! i
  44.          For Each thisBody As Body In localBodies/ d; C' {* v5 A- Y2 ^
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1). H5 E7 e$ g: L
  46.             ba(ba.GetUpperBound(0)) = thisBody; r( [2 _, y8 M2 u+ v4 e: V
  47.          Next
    " e* Z; M7 K8 {0 i( ?
  48. 7 e! H1 a# O) u: I
  49.       Next9 b/ g5 V( F# B
  50.    End Sub2 a4 ?( l. X9 ~. C: q

  51. 7 h' _+ `# J. ^+ C' i, K! f
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())
    $ u- u, |  h8 _- ^( F5 {! b( a
  53.       Dim child As Component = Nothing
    6 l6 O4 {7 O9 n5 r4 J6 L* M9 R
  54.       For Each child In cmp.GetChildren()
    $ F+ x, w" x5 e" C0 W7 A. p
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)! U7 w& [7 ~+ e  [: m* p
  56.          ca(ca.GetUpperBound(0)) = child, p9 X8 [. ^! l7 s- B
  57.          stuffComponentArray(child, ca)6 w" \0 A+ \4 g9 \" d, J- _- s+ g
  58.       Next
    / E. {6 ^; Q+ k9 E
  59.    End Sub" x& N- P, x- U. w# z$ G

  60. 7 a" D6 N, r/ n1 n
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer
    4 h4 ~4 `( g/ [2 G# n4 _2 T0 A/ G4 l4 T
  62. / o$ l; y# y/ H& E( j: y
  63.       Return Session.LibraryUnloadOption.Immediately
    * u8 o- s# O1 l$ J+ N1 Y
  64.   [' h  s' v2 U& S* F
  65.    End Function+ Z* x* h  c9 v+ j! z

  66. , E1 I6 |3 ~+ q7 e
  67. End Module$ k) U: H5 m7 k$ _5 e5 H" ^
复制代码

; R3 U7 T/ _+ ~
/ U) h2 }: t3 ]3 C+ q( b% s& [) x" M6 f1 h8 J. z* l: b  S/ 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二次开发专题模块培训报名开始啦

    我知道了