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

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x
( z: q. L# `3 l" E* t' J, H& F8 m! @6 S
  1. Option Strict Off( p8 d8 f+ v2 D% f$ T2 C
  2. ! i9 V4 D. {9 x
  3. Imports System
    6 y/ @* @# h8 x, G
  4. Imports NXOpen4 z4 p4 i3 R1 B: [; B4 w
  5. Imports NXOpen.UF" v1 h/ \& q7 Z6 f- u9 H
  6. Imports NXOpen.UI
    7 T4 p6 p0 V- O4 @" H8 X
  7. Imports NXOpen.Utilities( K  {) q- O$ }# d; {3 ~% j% I
  8. Imports NXOpen.Assemblies
    4 m7 |# \1 `+ z. g$ o0 O
  9. & g# ?1 @9 w8 v
  10. Module create_array_of_all_bodies_in_assembly6 g5 R9 J2 n) F* T

  11.   }6 c$ T2 n# F3 a
  12.    Dim s As Session = Session.GetSession()3 N" a2 v& l9 O/ J/ J; p# e1 q8 i, n
  13.    Dim ufs As UFSession = UFSession.GetUFSession()
    $ L) ]( M/ F$ P/ _; R/ w/ K
  14.    Dim lw As ListingWindow = s.ListingWindow
    , Y4 z% v$ w4 P% n* H

  15. * g: W' b! r( m/ b$ B: d
  16.    Sub Main()
    . G* k* y8 R( E9 X7 O' _
  17.       lw.Open()
    + {3 K% ]7 g0 ?5 v. n) I# b* i1 N
  18. 7 F0 c) V7 \, ?! @' _3 |" ^
  19.       Dim dispPart As Part = s.Parts.Display()) H5 W5 _4 m5 |& R9 D  i

  20. ) q3 [- F2 U7 _3 `2 u# D$ D2 {1 l
  21.       Dim root As Component = _# d; p* Z! p9 J- K, D7 n7 [0 Y
  22.                   dispPart.ComponentAssembly.RooTComponent! @! y; S% Z9 |2 R
  23. 0 ~1 @" P3 C8 U2 F. e9 Y. l6 A# C3 J2 p
  24.       Dim compArray(-1) As Component. ?5 f/ B& E1 C+ t
  25. ) \" ]4 I: U  [# A! T
  26.       stuffComponentArray(root, compArray)% l2 f& {* R5 A- V8 r8 H
  27. 0 _0 ~' q0 j& ~/ r8 G% ~
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())8 o& b* y+ f# @  h: j- s
  29.       Dim bodyArray(-1) As Body
    , P2 ]2 \" r% C+ ~+ Q# |# R% m' [
  30. $ T8 |* x( F3 Q
  31.       stuffBodyArray(compArray, bodyArray)
    9 B8 ?% V7 h+ s& H
  32. % B9 x0 p0 ?* |; @! |; @
  33.       lw.WriteLine("Count of bodies in array: " & _% F3 w2 Q" L% T# a, V5 L, S; Y
  34.                    bodyArray.Length.ToString())
    ' }3 O& }) P! a" k; e3 h3 I; Y
  35. ) b7 S3 T; [- K4 O5 z0 v8 ?

  36. 3 N2 t5 a; L# {! t& l( J9 }7 j
  37.    End Sub) l: s$ x2 U. Q, [5 X4 F- z

  38. & \* z2 J+ E8 t, J
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())
    2 d2 X' s3 c+ J; N8 ]$ c

  40. % L4 E3 i$ k0 A( u7 F; U$ {
  41.       For Each comp As Component In ca+ t" I7 M! {  i6 n, v
  42.          Dim c_part As Part = comp.Prototype5 r& T7 e2 D, n$ M( I
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()
    ; E5 @; l, _  P
  44.          For Each thisBody As Body In localBodies
    ' s/ D4 U( Z2 L/ }. l  b
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)  b0 x2 `& z. W2 v1 t
  46.             ba(ba.GetUpperBound(0)) = thisBody- g: [5 W( C. o5 I* k8 ^
  47.          Next: [0 K0 h* P% O& x2 i1 s

  48. , }: N' h7 Y2 \( K  Q# B3 O
  49.       Next* i3 d  I8 r- ~& w+ w, v% I& U
  50.    End Sub
    2 D" B1 n) O6 S1 s4 w
  51.   B7 J* W6 G  p. h( N
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())
    ! P! \/ d2 f6 m& K2 {
  53.       Dim child As Component = Nothing
    ( F8 x! m" A1 f! t+ N, ?
  54.       For Each child In cmp.GetChildren()
    5 y3 I) _. \6 _& l5 w
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)
    % \; E5 W! n% W5 g( P' v
  56.          ca(ca.GetUpperBound(0)) = child& P1 m5 U  W  K* p
  57.          stuffComponentArray(child, ca)' L$ P  A1 ]; Y: z8 ^- y4 I) G3 t
  58.       Next
    ! q4 {0 S0 S# H% h7 J" o0 j
  59.    End Sub- l+ b& ~3 f8 j5 |0 J$ ]

  60. : ]* w- K2 z9 a5 ]" P
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer% n, d1 L% v8 a& A, \1 g" b$ V. z
  62. ; N, m' L; z# z, J; R/ g
  63.       Return Session.LibraryUnloadOption.Immediately* r# Z, g4 r- M" o
  64. 6 ?8 o2 [' B8 S  R$ w* m) o
  65.    End Function4 ?$ U; e/ ]: M# D1 F$ i

  66. " M. u  g. F, b, i
  67. End Module7 g# C( N# S* n8 e5 W
复制代码
- s8 {) V/ G6 W( O: Y; M6 C' d

0 Y  l6 c' B1 x0 |  u, R  U; q1 ~6 K; U8 n! Z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了