PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x
# X* U$ d- G9 L
  1. Option Strict Off
    9 [8 J7 u% m# D

  2. ' Q' L4 {& a, g
  3. Imports System1 P: _2 D/ B: Q, R
  4. Imports NXOpen! I! T( ]4 j8 _
  5. Imports NXOpen.UF
    8 p. M# @8 B/ T! h5 F6 V* M& q
  6. Imports NXOpen.UI# E$ t2 k+ F% O3 }2 Z' k; V- ?
  7. Imports NXOpen.Utilities$ E$ b# ^+ e, J7 J6 F/ X+ ^, `
  8. Imports NXOpen.Assemblies
    5 ^. S" `/ x6 Z3 q  [" e" `
  9. 2 A# R1 @6 O, u3 W3 V& q( q6 r
  10. Module create_array_of_all_bodies_in_assembly
    9 P4 f( l3 A- v5 l4 D6 ^; z

  11. , A( w9 H7 {/ s  J6 {
  12.    Dim s As Session = Session.GetSession()
    & O, M2 F: X$ Q$ t9 o8 f: j
  13.    Dim ufs As UFSession = UFSession.GetUFSession()
    1 g3 C# U% u6 W( ?0 B/ e- S
  14.    Dim lw As ListingWindow = s.ListingWindow
    ) \# m7 w" [0 D0 [5 g. J
  15. * k" K/ G  T5 U$ Y
  16.    Sub Main()0 k: k0 C( t& L  f* S
  17.       lw.Open()
    8 p; ?2 f+ H' G* n8 S  R( s8 T9 Y

  18. : g7 \0 H0 W# j8 O  ~% O
  19.       Dim dispPart As Part = s.Parts.Display(). z" c2 E: |7 P( c/ v% M

  20. 6 x0 n4 ~  r/ b/ V/ n5 W4 b
  21.       Dim root As Component = _
    ( V+ ?2 V  V2 a- i
  22.                   dispPart.ComponentAssembly.RooTComponent
    6 @0 T9 y) F' s1 B' H

  23. - n; g, e; r; {; g* I# `% _* m
  24.       Dim compArray(-1) As Component
    , |/ ^: Y. T! q3 L3 T0 N, t$ H) M: ~

  25. ) {$ G- s+ i5 U% B, |
  26.       stuffComponentArray(root, compArray)0 ~, u$ h! D& B. R7 x6 s

  27. 0 U* m6 a( D% Y4 w0 j" k
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())1 c7 x+ S+ ?5 C- y
  29.       Dim bodyArray(-1) As Body5 p2 c% V. X8 p  ~1 A& _! i. \) S
  30. / C' P" u4 b9 l2 H/ Z; w
  31.       stuffBodyArray(compArray, bodyArray)
    # x* g9 U3 F0 S! e: ^

  32. - M2 J# W/ u1 W. g
  33.       lw.WriteLine("Count of bodies in array: " & _9 H5 a8 `: ]) c5 ^/ h0 w3 r- _+ f
  34.                    bodyArray.Length.ToString())
    ' O7 Y9 U0 N# J0 k

  35. ; A; S4 k8 M9 g$ T

  36. 9 @9 n  q3 n6 d+ ]& [
  37.    End Sub
    % T' @+ z& b2 V" q1 R: z" f
  38. $ q; f3 J' B, F
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())! u7 _0 F0 S! |6 V

  40. 3 V/ k/ j9 p8 e9 e% ~( \3 Z
  41.       For Each comp As Component In ca8 ?* M0 x* c7 K3 ^2 N. V. B* I
  42.          Dim c_part As Part = comp.Prototype
    / z. R% n1 H, j3 C7 l
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()
    # j% W( z3 A2 m4 T( r+ L; \
  44.          For Each thisBody As Body In localBodies6 A* Q) S1 x& l3 s$ U9 d- [: d
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)
    2 M: w, I( x$ [- Y. P9 o8 P
  46.             ba(ba.GetUpperBound(0)) = thisBody  Z5 h  ~9 U% u- b, X( \
  47.          Next
    : p( `& Y" B: v. M

  48. 5 W$ H) v1 g% f4 B$ x3 K
  49.       Next1 G$ ]% l5 Y$ w5 k4 L* Q; n
  50.    End Sub5 |5 r8 P  y+ U1 i5 j  f4 o
  51. . A( p$ L( [+ s8 A
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())! u) @: F. A( e, y: a
  53.       Dim child As Component = Nothing0 d5 S7 ~! _6 @. p! A6 X
  54.       For Each child In cmp.GetChildren()
    7 f% S! Q! V' |' a, X7 o
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)
    / ]; U- h3 ?9 h) J
  56.          ca(ca.GetUpperBound(0)) = child
    ; t5 @0 D8 H* P* }
  57.          stuffComponentArray(child, ca), e# m( W8 Q' \2 U  J) K
  58.       Next
    ; e/ B4 ]6 q# Y/ Z" O) T7 M2 U
  59.    End Sub
    % w* h6 x+ t: J' n5 Y

  60. ) V+ B, o8 C) D# s1 U! G' `7 @
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer
    ' U! h% I$ t. N
  62. . O, M8 I1 P+ t# B! p
  63.       Return Session.LibraryUnloadOption.Immediately
    6 {  X  a8 n8 ?& L) u9 h( ?! S# v% P
  64. % K5 N+ ]' ]6 O  f0 T
  65.    End Function
    " w& ~2 i4 e$ f) G/ D3 o

  66. $ d) ^) R, e6 X
  67. End Module
    1 j) _. F' }1 M* N
复制代码
. f2 D7 y" j# }8 `! l- _

% o! v4 l9 p* T. n. D* V) F  ?8 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二次开发专题模块培训报名开始啦

    我知道了