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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x

$ }, c6 ]2 v# e' d# m% u' \- b
  1. Option Strict Off  _% g2 S3 ~* D+ w2 t
  2. ; g: g2 T) ]0 X
  3. Imports System: D! p- v2 w9 i3 \+ ?5 L* h! W; \
  4. Imports NXOpen; l* _# ?7 t. n$ c! y( y4 e  k; u/ b: M
  5. Imports NXOpen.UF
    8 a/ G* l9 Y( r
  6. Imports NXOpen.UI, F& D( J- E4 I. n5 X+ C) B3 n) w
  7. Imports NXOpen.Utilities
    , b9 ^: Y6 [* K' s; e
  8. Imports NXOpen.Assemblies
    * ^' @7 a5 q0 t& n
  9. / k; j( n: H" `0 x% }1 |
  10. Module create_array_of_all_bodies_in_assembly1 a9 F& Z2 O: c+ h, ]
  11. 5 B- h6 X  M  `
  12.    Dim s As Session = Session.GetSession()4 a3 G* {6 l1 z; {9 i+ J* g, c
  13.    Dim ufs As UFSession = UFSession.GetUFSession(); M* K, l' c; |) r- E/ D
  14.    Dim lw As ListingWindow = s.ListingWindow1 E7 J; t7 ~2 j
  15. : V+ |/ y4 p. A1 q: c! ^) T
  16.    Sub Main()
    & H/ v2 S( Z$ Q7 J
  17.       lw.Open()
    6 ?) _) P( `/ p8 y2 t" s( f1 |
  18. # S3 @- S3 {" Y; ?8 @6 \5 ]: L
  19.       Dim dispPart As Part = s.Parts.Display()7 h! P! l0 k1 e

  20. + V5 \8 H4 w8 ]) R
  21.       Dim root As Component = _% q9 b" ^+ O% U0 g4 \
  22.                   dispPart.ComponentAssembly.RooTComponent
    , }4 S2 R9 d0 v. N* X

  23. 0 W1 ~5 P( @! J) w
  24.       Dim compArray(-1) As Component
    * A) t% i; ^7 B8 q; w. r0 }" W. S# F

  25. , X4 d  l  x" U. |) G9 E! s
  26.       stuffComponentArray(root, compArray)
    ; z8 U5 _5 K; n

  27. . l5 E0 Q" H; ~7 C6 h% ]) w+ [
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())
    + _; g' n* ~  Z/ q& O) h$ H
  29.       Dim bodyArray(-1) As Body* i) x! G8 e" h- h" L3 i% j

  30. 4 o8 e' E6 y1 {6 Z3 }
  31.       stuffBodyArray(compArray, bodyArray)
    - F& n1 _0 \% F; ~" A3 d# t2 l: W
  32. ' [3 M& U# t# e/ I4 ^0 J
  33.       lw.WriteLine("Count of bodies in array: " & _
    ! q, c* X" N$ b$ p
  34.                    bodyArray.Length.ToString())
    ; u" q3 p  x5 z, n# c( Y

  35. + y2 N& N* e; A8 r+ E& A; v

  36. ' X% U+ ^! t! H) U+ r( b- y
  37.    End Sub  w7 g' Q$ {. l- _
  38. % y3 ?6 z" W0 [1 A. c
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())
    $ o2 K! s0 t* p+ x9 q9 N
  40. # l9 L1 {1 u' @" T1 `
  41.       For Each comp As Component In ca
    / b8 q) o* \7 l8 o0 P
  42.          Dim c_part As Part = comp.Prototype
    5 g% ?7 v  G% h! C3 [) n
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()6 N; q" J; q+ Y
  44.          For Each thisBody As Body In localBodies
    % l6 Q/ ~6 W9 N9 |, J
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)
    / s5 O+ Y# C8 B) w5 K
  46.             ba(ba.GetUpperBound(0)) = thisBody
    ' c2 ~3 \; V, y9 }. V- g
  47.          Next% I- e" I$ h+ F3 p+ E$ m4 \

  48. 1 p( l5 B. _  G: }
  49.       Next4 a% z& M6 @$ p& g, j+ V+ |* U  d
  50.    End Sub  Q6 b" ~+ \2 F) a
  51. ( R+ S# i& C* P$ E
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())
    ) D1 Q& {# N% r& n- n
  53.       Dim child As Component = Nothing- s3 U9 C3 ^: j' a) ?# W
  54.       For Each child In cmp.GetChildren()
    2 \6 P0 }8 ^# G) N) Z
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)# Y5 G/ F! [: T1 ]9 C8 h* }
  56.          ca(ca.GetUpperBound(0)) = child
    8 k# ^5 W% T! J* \$ V
  57.          stuffComponentArray(child, ca)
    , ]: d/ U0 h* L/ a% w9 T
  58.       Next
    2 {* e- b5 ^' p  R7 d
  59.    End Sub
    & Z3 ]! m! u7 W' E" h5 e

  60. $ l+ M" r# G8 i
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer. Z7 e, D. o! n) |; Z

  62. ! d+ K- d: U; @5 A
  63.       Return Session.LibraryUnloadOption.Immediately
    - I' a" T6 r2 s$ i3 ]) G

  64. : t, j# ~, B" R* T
  65.    End Function
    # j5 ]! h6 O! C4 t
  66. ! R) B* [5 {2 h3 N. A: J* x1 c
  67. End Module4 q3 d2 P" K8 _6 R& B
复制代码

8 H2 G% X" {: _: W- `2 ~# n& R" {9 f7 |5 v% Y

! c, u. K' t3 I- Z* y: p" x
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了