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

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x

# P8 o* o& ~1 J; M1 R' i0 A
  1. Option Strict Off) Z6 d( ^, k8 n: o4 `

  2. ; t# w7 C+ z/ T+ U2 l
  3. Imports System
    6 v/ R& w4 H5 U# X
  4. Imports NXOpen
    1 [# T* W6 t, N( |
  5. Imports NXOpen.UF: o) K+ A, x4 ?! S9 I: f  ?
  6. Imports NXOpen.UI& E3 ~# C7 d$ e, X
  7. Imports NXOpen.Utilities
    # z( o. y) m: ~5 @* Q" u
  8. Imports NXOpen.Assemblies( Q+ w: Q- X& m- ~

  9. 4 t. G  h/ V; l0 b) H0 e2 t- L
  10. Module create_array_of_all_bodies_in_assembly# D7 O5 ~- W% d. l. O" a0 _

  11. ; g5 d& M' [' _, U' u6 D) V2 v
  12.    Dim s As Session = Session.GetSession()
    * G2 G7 ?. H3 U: w2 o
  13.    Dim ufs As UFSession = UFSession.GetUFSession()
    - \0 \2 s. {1 p( X- S
  14.    Dim lw As ListingWindow = s.ListingWindow3 _; j9 c9 x& g" ~5 G
  15. ' }( P+ S) Z5 ~
  16.    Sub Main()# P4 f2 w2 S. P& H# ]: y; Z
  17.       lw.Open()* S# c2 x  S. _+ M7 W% H

  18. " K5 |3 Y  z' X% V9 ]: D
  19.       Dim dispPart As Part = s.Parts.Display()
    , t: o' a- e- f  r1 ~
  20. " Q. `2 P& D1 K) M# \6 l
  21.       Dim root As Component = _
    5 W: t' W' b& c! J: d% o( V6 E, _, D
  22.                   dispPart.ComponentAssembly.RooTComponent
    3 P! ]. E2 H2 b% Z: s% O7 V
  23. ( A7 A9 X0 Q7 V; b2 ]4 ~
  24.       Dim compArray(-1) As Component
    . B) ]; p# `% y9 ]& Y1 D% i1 B
  25. 1 _9 i3 n5 v) \" U
  26.       stuffComponentArray(root, compArray)* O( {; e$ H2 ~/ |5 w1 ?8 R, H2 D

  27. / M$ Q: \, R# n6 g0 z. }
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())0 w! W2 w! t% J( ]1 G1 I; W
  29.       Dim bodyArray(-1) As Body
    / g# M" @- G0 W* D% B" o1 [, c

  30. / }3 T" N" M2 S; q. H9 L5 y
  31.       stuffBodyArray(compArray, bodyArray)
    . P+ Z, b; A. Y9 h7 L. p

  32. ( F) I7 N4 V! g: g+ ^( @- E
  33.       lw.WriteLine("Count of bodies in array: " & _
    / h) @& m( e) p( m  R" G  |9 b
  34.                    bodyArray.Length.ToString())! S" g: m$ W; R) T8 L

  35. ! H. o( d. i; X' g

  36. ( l- D1 o" i; B7 {$ D1 Y" w. E' T
  37.    End Sub
    ) D) f" I# g/ o! x( G* I/ W1 B* U
  38. 0 N3 C- w4 l4 E+ o7 Q  P2 z
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())3 J4 ]0 E* w, L6 q& n+ g1 N. \

  40. 5 C+ x) S/ j2 Q; @) H! U
  41.       For Each comp As Component In ca7 h8 W0 d7 N  ?6 E. O8 ~$ b
  42.          Dim c_part As Part = comp.Prototype
    + P, p" R/ U: J6 V! S; {% h/ ^" x
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()
    4 y- W2 ?' l" b
  44.          For Each thisBody As Body In localBodies8 {4 j9 u+ u4 u( k- M' n
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)
    $ [' k7 `& w- x1 P$ b# _! k
  46.             ba(ba.GetUpperBound(0)) = thisBody- n% y8 m" M/ k- C5 a1 C9 b8 S
  47.          Next) z  k0 \: M- _: q) A

  48. + _% F, X# O; @& b& S9 b$ _' e
  49.       Next3 y0 @/ f+ b( [
  50.    End Sub9 Y  ~+ r/ b+ m5 [5 F# s& G

  51. " K( c  M+ m* ]$ D% y6 B
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())
    & E* p# A" H( W5 ?9 \+ z
  53.       Dim child As Component = Nothing: B/ D, G$ @$ X9 s5 W$ c
  54.       For Each child In cmp.GetChildren()- Q+ s2 c6 N/ h6 i/ t& \0 m1 g
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)
    ! Q6 G6 o7 @( y' f( S  h# B
  56.          ca(ca.GetUpperBound(0)) = child
    8 ]- ]  B# n, B2 Q
  57.          stuffComponentArray(child, ca)5 v6 U% y" m, B2 N' R
  58.       Next6 S, `. _4 T  C: e2 N5 j
  59.    End Sub
    3 Z- e" V: Q/ V; S

  60. 0 A7 C# Z  P! [  S/ a4 e' \
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer8 I. w3 o# v  p

  62. 9 d9 _8 p) p( e0 [9 I
  63.       Return Session.LibraryUnloadOption.Immediately
    9 q3 I. W2 L  L/ X) R3 Q, z

  64. ; ~' H" V5 \8 c9 r, P4 ?$ P
  65.    End Function
    " d9 {% E/ Y' O; D& i) a

  66. " d4 d, N3 @7 }1 {  L! L9 k% y% {
  67. End Module' C! q0 u. H' a4 r, K- t5 m
复制代码
: U; U$ ]8 w- ]. O2 Z5 ~
3 c5 q6 }' Q  M8 I: T5 s
- T5 }7 T$ r: t" v
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了