PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x
) C5 y$ ?. b# o7 ~1 Y! n* A3 Q% o
  1. Option Strict Off8 y( z! O( t) q/ C
  2. + P) n( N! i/ I2 A2 j0 x
  3. Imports System
    2 u. W" @5 [' P5 P1 L& }
  4. Imports NXOpen0 `, s0 h/ t) S& E+ E4 B. v
  5. Imports NXOpen.UF
      G; L/ j9 _+ V8 |
  6. Imports NXOpen.UI  W1 E- t7 H3 r0 ?4 J# s5 H
  7. Imports NXOpen.Utilities
    1 G0 N9 G/ J7 O* A4 ^& `* q7 c
  8. Imports NXOpen.Assemblies
    ) h/ R: j  k: O; ^8 y" I

  9. 4 w, D5 |! ]8 `! p
  10. Module create_array_of_all_bodies_in_assembly
    2 @3 O5 L. n: [# ?0 ~

  11. # V# P4 D2 W7 k: u1 k1 V9 N
  12.    Dim s As Session = Session.GetSession()
    5 G0 ^& b8 j* j" x
  13.    Dim ufs As UFSession = UFSession.GetUFSession()
    : K& d: P% l$ q' z1 f7 b
  14.    Dim lw As ListingWindow = s.ListingWindow  N# L/ i$ C5 g1 X

  15. 1 k! ~7 {+ O: I7 _
  16.    Sub Main()
    1 @& q( c! N: @9 A/ ~
  17.       lw.Open()
    2 ?$ q; j! B5 e9 s1 p

  18. % e3 a: r: @2 u7 ]* C$ x% t
  19.       Dim dispPart As Part = s.Parts.Display()% t" j" }" s( h

  20. * P6 Q2 T& I! F
  21.       Dim root As Component = _
    . f. v# R+ N) u: C$ M% O8 g
  22.                   dispPart.ComponentAssembly.RooTComponent2 {: }7 ]9 S; F  Q$ \
  23. - G# {0 a3 F5 o9 H) ^
  24.       Dim compArray(-1) As Component
    ( J/ ~. \# B8 U4 o, Q
  25. * Q! t" ^- w8 ^) F
  26.       stuffComponentArray(root, compArray)
    , B7 g5 z3 F6 e; k( \  p( n2 @

  27. : r& c$ F) T: A
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())
    . E6 J# F; p" o5 ?
  29.       Dim bodyArray(-1) As Body" [- T: f* Q! m' L
  30.   ^2 |! I% V# T
  31.       stuffBodyArray(compArray, bodyArray)
    - J1 K9 Q7 A/ H7 v

  32. * |* H3 o( `; {. x
  33.       lw.WriteLine("Count of bodies in array: " & _
    ! t7 o* U* A0 V4 U
  34.                    bodyArray.Length.ToString())
    3 B& L- G2 f" _4 g4 C3 ]5 ]( b
  35. $ {5 q5 h0 I/ |
  36. 5 K$ M9 |" F, }9 L
  37.    End Sub0 \  h8 ?) `! |2 I

  38. ( q: q2 Z' }4 x
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())
    , M, K5 _- F2 G' d9 h( E6 l3 u" I7 v/ X% E

  40. 2 A* t) v) ~' r( A8 w4 j
  41.       For Each comp As Component In ca. x. g; I& J+ T, {3 m% U
  42.          Dim c_part As Part = comp.Prototype3 d$ q9 e2 C6 M7 y/ U+ n
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()0 y5 p3 \5 Y# V& m4 n: N* A7 {
  44.          For Each thisBody As Body In localBodies( m( y/ R3 L! X) [  W
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)
    4 t$ Y7 ~0 g& d
  46.             ba(ba.GetUpperBound(0)) = thisBody4 X* c4 D: k0 G# ?3 [
  47.          Next/ D. z' j* K8 W  j5 F% ^1 ^

  48. ) C) \4 h6 P4 E( e8 T* Q0 T  q. S
  49.       Next  x0 ^; J( P. W  z7 ?
  50.    End Sub
    " d; J! `: G4 I/ n: V; v1 ]4 U7 o
  51. " T/ q3 h$ P2 i
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())
    : O; T# Q/ `  U2 P9 ]- N% u9 k1 w
  53.       Dim child As Component = Nothing; F3 u- W2 n* ]( F* D' }; v
  54.       For Each child In cmp.GetChildren(). L9 [3 O! f% ~6 Y1 l" N9 N
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)' J$ u# R( K. h" u$ K) F9 A
  56.          ca(ca.GetUpperBound(0)) = child& J  r2 t+ i- X8 _$ |1 d+ b
  57.          stuffComponentArray(child, ca)
    - q+ O( }' B; I) |9 H
  58.       Next
    9 `7 ?8 S4 `2 n4 x8 ]4 V* j
  59.    End Sub8 T  P* c% S% T! J& {. D" h
  60. 2 s! G( f7 u; ~4 u! \8 }) w7 f
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer
    6 U/ {$ I) M8 P) ]$ ^' A5 u
  62. 1 A# i7 g* Q- x* ]
  63.       Return Session.LibraryUnloadOption.Immediately+ y$ A! _: n& N% h
  64. 4 I" W& P- E( r& U2 @3 q3 N
  65.    End Function% M- ]2 D% ^! W) G* `/ [/ W+ ~6 c

  66. 2 T2 w+ v% Z8 F
  67. End Module
    / R6 h4 U1 {; F3 n. v
复制代码
. s  H- W- p0 e6 y0 ?6 N' s* K
! T9 L) s* o" g+ t  O
% {: b$ K- _( W" [9 t
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了