查看: 4162|回复: 0

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

[复制链接]

2477

主题

1280

回帖

8万

积分

管理员

PLM之家站长

积分
82265
QQ
发表于 2013-10-30 13:46:00 | 显示全部楼层 |阅读模式

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

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

×

: Q$ w" ^1 @( M9 K
  1. Option Strict Off( v/ f8 W) D# A( A: X$ A) e
  2. ! a- ^& J- _& }7 @$ ^/ i5 \/ {  p
  3. Imports System$ A2 ?8 g: U! a6 n
  4. Imports NXOpen
    5 S5 `( G" M, h( Y3 |0 j' s
  5. Imports NXOpen.UF
    0 R1 [+ S' W  e- l# {6 o
  6. Imports NXOpen.UI2 @) J: N' T6 w! r8 t
  7. Imports NXOpen.Utilities, ?3 ]" V5 `6 \! M
  8. Imports NXOpen.Assemblies+ [; l% b& k) r1 j  r1 c+ O4 \* {
  9. ( n6 t3 Z/ K+ J- Q7 E4 N3 B
  10. Module create_array_of_all_bodies_in_assembly
    6 O7 R% I: ?3 ]9 X: k

  11. 8 i7 ?) x% h. A
  12.    Dim s As Session = Session.GetSession()/ [7 ~5 V8 a9 _4 ^* |- ~
  13.    Dim ufs As UFSession = UFSession.GetUFSession()8 i, Q! c- @2 [4 D: t
  14.    Dim lw As ListingWindow = s.ListingWindow
    ( S; I6 I' e. S  W! y& f) Z2 U7 S% ]
  15. 5 P$ y7 h+ c4 A$ ~
  16.    Sub Main()( y1 I$ i8 L1 P5 X; L8 l
  17.       lw.Open()6 x# n, i! N0 M" m

  18. * N" X4 d/ B0 ]/ Q
  19.       Dim dispPart As Part = s.Parts.Display()
    : n4 u+ s7 W, T: K
  20. - k8 ?2 b/ k8 o2 u
  21.       Dim root As Component = _" Z1 H8 ^1 L( [, t% g9 v
  22.                   dispPart.ComponentAssembly.RooTComponent
    ! o2 s. [! |3 M' l; Y
  23. 1 U( c0 T( m- U3 z1 d
  24.       Dim compArray(-1) As Component8 R1 N6 w. N! W: k% ]
  25. 1 L7 i) r" x; Y5 s
  26.       stuffComponentArray(root, compArray)3 N8 ]3 L2 u4 o& f2 n2 V+ M& L
  27. 0 r' y' |: G0 @
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())
    3 I2 s* J2 @! c/ E) w7 f
  29.       Dim bodyArray(-1) As Body/ {) B% d$ C9 K1 R: n

  30. , H2 A+ }, i$ |( e" b( e
  31.       stuffBodyArray(compArray, bodyArray)
    # _/ l% H, O* e5 S

  32. 6 B" w1 B, C3 D; t. q3 H( B7 h/ W
  33.       lw.WriteLine("Count of bodies in array: " & _8 \! g% H* I  T+ @( B( Y
  34.                    bodyArray.Length.ToString())
    0 B% z1 Y+ u- L

  35. ' W! k7 A+ H5 H/ A$ r- ^  |
  36. ( ^# ~7 g0 N2 n% S7 _! }7 p: `
  37.    End Sub
    0 R6 P$ x+ F! D2 D) O5 E" B

  38. & d: `, z. X' ?6 B, z9 a
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())
    ! Q7 N- \0 _5 T; i$ C" o

  40. 9 E4 R7 r$ S& }2 o9 g3 J
  41.       For Each comp As Component In ca
    5 a9 Y6 n" `7 I0 Y( y- A
  42.          Dim c_part As Part = comp.Prototype$ `9 h; d) O% N) A' j
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()
    + P! ]# L1 y' S6 e6 K
  44.          For Each thisBody As Body In localBodies
    & m" y6 ?# v0 R# U: P" w# ^
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)
    & z+ }: S- K: |+ Y$ y
  46.             ba(ba.GetUpperBound(0)) = thisBody
    % U. Y6 j6 M2 ~9 n/ Z
  47.          Next" b. l5 l( V* x! ^9 h: H* n+ {

  48. 9 R8 ?! d$ s6 p* a9 p: _) \* E
  49.       Next
    , ~8 u* A9 S' U8 l1 N( a! |. u* l
  50.    End Sub
    1 m' T. [) A8 F

  51. 8 ~3 E5 ^* p" `& k) h5 p0 j! X" u
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())6 K2 ?# ^0 s/ [9 w
  53.       Dim child As Component = Nothing
    3 ]" p* P( ]" {9 w& H* F/ j7 [
  54.       For Each child In cmp.GetChildren()
    ( K! |+ |1 {7 x9 q5 F  ]
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)8 l9 z, l2 U) \2 h; I
  56.          ca(ca.GetUpperBound(0)) = child: N& t. a+ e" ~3 D
  57.          stuffComponentArray(child, ca)
    " t2 x# C, H  ^. d- l
  58.       Next: l) s/ g+ C8 o* ]/ I9 l8 R% n
  59.    End Sub' ]$ F( o3 F0 i  J3 y0 U2 |
  60. ) R$ U& A4 H$ J5 C/ [( Y
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer
    + _4 q" T7 T8 r) l

  62. 2 M% D8 }' Q9 l+ g( [
  63.       Return Session.LibraryUnloadOption.Immediately7 ~: Q+ Q6 K# ]; v- m
  64. 2 F4 t- C$ f9 u& e2 J$ ^
  65.    End Function7 J) a% c$ d( r" i0 \" r+ x- h

  66. ) T& U% b; N* _: [
  67. End Module& B2 Z- F: Y& W  `6 O; }: G
复制代码

, T9 O$ W# \# r* A: P- R9 N4 r4 \) E) [2 ]( N6 r. }% W( G: M

* Y# C3 x5 \5 J5 T& p' C
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部