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

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x

5 e2 b3 k, ~) W1 V2 X, p
  1. Option Strict Off
    : S2 y$ f& Q1 j/ P, v  E% }

  2. 9 E  w- ~  T0 G  f4 K' x; E
  3. Imports System
    6 B) v# g8 r: H$ s, n4 u- W. Z
  4. Imports NXOpen2 l0 m7 n& W, d0 C4 v3 q
  5. Imports NXOpen.UF1 `4 R4 A7 _) a
  6. Imports NXOpen.UI$ ]- n; q3 ^! e3 w
  7. Imports NXOpen.Utilities
    7 S* W, d$ n8 |0 H. E
  8. Imports NXOpen.Assemblies$ w# O0 H) Z) N
  9. $ x1 E- X0 C6 M
  10. Module create_array_of_all_bodies_in_assembly% z& g$ B1 {2 u7 |4 g; J; T* R6 G

  11. - d6 W( }& j5 H
  12.    Dim s As Session = Session.GetSession(); w6 v( Z! a/ G( s! Y7 v" p4 x
  13.    Dim ufs As UFSession = UFSession.GetUFSession()
    ) w  M+ U/ K: c
  14.    Dim lw As ListingWindow = s.ListingWindow- s  u' P9 k) I& ?, s3 Y

  15. ! S6 _5 `2 j0 [7 ~: ^: i, `6 g3 }
  16.    Sub Main()7 d7 k  s3 C' P  Z! y+ Y
  17.       lw.Open()
    1 q2 o! o9 r4 I* _7 ^( j

  18. ( i. w" Y1 {2 b9 H' X$ W. v. \
  19.       Dim dispPart As Part = s.Parts.Display()
    - v7 r# m$ @$ ~$ T
  20. . N2 f% F! r( S/ U/ a
  21.       Dim root As Component = _9 H  J# X6 G: o! g! y9 u0 N. F3 G
  22.                   dispPart.ComponentAssembly.RooTComponent3 h' s& \( u+ v- [! X

  23. " V- h0 Q$ D4 I/ K# X
  24.       Dim compArray(-1) As Component- c+ m, _' ^9 w* }( ?1 ~: F
  25. 9 ~' A5 m$ |) d! Z0 c
  26.       stuffComponentArray(root, compArray)
    ( N, O4 {5 l0 ]1 D) f" K% Q. a
  27. 1 ?1 O; C: N; U
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())# I, X. e+ y' J( a/ j. ?7 v
  29.       Dim bodyArray(-1) As Body
    $ E- @' s. \) f2 j+ U7 M7 _3 W

  30. : I  O3 m  P2 j' |
  31.       stuffBodyArray(compArray, bodyArray)* Z+ }5 _; n4 ]3 x; L
  32. 8 A5 \6 x! z: s
  33.       lw.WriteLine("Count of bodies in array: " & _
    ) d# y  A- O; p/ [
  34.                    bodyArray.Length.ToString())) ~8 f3 b1 B7 @- f! C( t- t

  35. 0 X% z% h7 m1 o4 U5 w; p

  36. & m- @7 l* l* R
  37.    End Sub& c% g9 x; o0 P) h# w
  38.   R4 N+ Q9 ?7 n( e' h8 K
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())
    " Y4 R" h1 A; _# \( C% Y! L; g! e, y
  40. " G* n/ C9 T: x& q, x7 T
  41.       For Each comp As Component In ca
    5 ^- J! ^+ Y6 p
  42.          Dim c_part As Part = comp.Prototype
    ; Y2 Q1 H- F4 s2 f$ H
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()
    $ e& F% E2 \) x$ z, L7 x. @
  44.          For Each thisBody As Body In localBodies
    5 P0 ~+ a, `8 J
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)2 `) z, o& X6 |, c
  46.             ba(ba.GetUpperBound(0)) = thisBody
    * E. P! F6 W/ _$ D
  47.          Next
    7 U* h" V* ]+ O/ c
  48. : m! ]# g, d+ F4 n7 G1 o* Q
  49.       Next! G  S; U& h8 Q7 b2 \" Z( I
  50.    End Sub; b5 U; `$ ]7 Q$ M6 X
  51. - A! j: x0 s  X9 j7 t# L
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())
    & A/ Y! Y  m5 Z+ n3 _
  53.       Dim child As Component = Nothing
    ( [! F, R+ L/ ?1 M* U  n- A
  54.       For Each child In cmp.GetChildren()( F3 [' [7 t; H  {' D0 T" C5 X0 B! j
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)8 ]4 x; q) E2 ]6 k/ ]: \7 }
  56.          ca(ca.GetUpperBound(0)) = child# a; ^% g/ I3 K9 T
  57.          stuffComponentArray(child, ca). t/ \8 v4 q* E+ ~
  58.       Next
    % V9 Q. b; ~+ W8 D
  59.    End Sub" f* v: {2 |# |& D9 q
  60. 6 Y5 A" v/ C; l5 {6 k0 P
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer
    : r. A0 J2 \- M9 Z8 \
  62. 9 F1 }# D, H& I! _/ ?
  63.       Return Session.LibraryUnloadOption.Immediately
    # B, r, e/ W$ Q! Y2 U6 ~5 N( l
  64. " a6 W$ g/ Q7 i2 x" ?
  65.    End Function
      c+ \( x* s0 V6 `/ g

  66. - D- q3 _+ ?; [8 Y" z! f! Z
  67. End Module/ Q4 t9 {' S8 ~- p( R; N( ]
复制代码
6 I7 k+ L1 i; o, R
  m: d# \7 R0 j" G1 d

$ e8 G7 U4 I0 A
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了