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

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x

% C. L( q. o# ^% s
  1. Option Strict Off
    - W+ H; m1 Z+ W

  2. 5 z2 I8 T6 Z9 F
  3. Imports System
    ! f' o, V! `, i4 Z: d7 ^) j% C0 i
  4. Imports NXOpen1 z2 M, ]) ^( x
  5. Imports NXOpen.UF
    # r, C: _3 s, \4 f
  6. Imports NXOpen.UI+ Z5 N: y5 E8 r* }9 y* i( k6 T: _
  7. Imports NXOpen.Utilities
    : V6 Z2 S6 |/ B8 y9 Y2 T
  8. Imports NXOpen.Assemblies
    6 o- ]6 K: r- n: S4 l/ [
  9. ' E" U* p8 f% W$ v- D0 \
  10. Module create_array_of_all_bodies_in_assembly: `$ p  ~3 \+ l. ~+ N
  11. % f2 U3 L8 I7 s- ^8 X: R
  12.    Dim s As Session = Session.GetSession()( v/ a6 a' j. ?
  13.    Dim ufs As UFSession = UFSession.GetUFSession()8 n/ {' n( }  \5 k* }
  14.    Dim lw As ListingWindow = s.ListingWindow( s2 E; l! ]" u; h4 O3 b0 Y: b/ E
  15. 1 ~3 R3 B/ j2 |- |* i
  16.    Sub Main()
    9 l1 L: R- n  `: |0 \# m
  17.       lw.Open()
    6 T6 G# b) b: A" r: e
  18. * j$ Y/ \0 j0 z
  19.       Dim dispPart As Part = s.Parts.Display()# O& U: ^& e* S% Q0 G/ a) t
  20. 8 D; t" [& a3 G6 ^  }9 A
  21.       Dim root As Component = _
    " m6 a7 Z0 g" v1 |% M
  22.                   dispPart.ComponentAssembly.RooTComponent, }' g+ {3 A8 w  f% r) T3 x

  23. : M1 Y. a* o! g6 O8 I
  24.       Dim compArray(-1) As Component: r5 @! k( w* s1 N* V8 T$ i
  25. : X2 C, H3 @* n7 d& e
  26.       stuffComponentArray(root, compArray)7 F1 b* V8 ]( f3 M

  27. ( c. m: C! W$ n# @( q! o4 Z, z
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())% }/ v2 @8 X2 c/ {4 z( P  r0 F
  29.       Dim bodyArray(-1) As Body$ c0 M  Q4 ?  J7 a

  30. - I+ }8 J7 k4 K. r- o1 C
  31.       stuffBodyArray(compArray, bodyArray)
    * f- F8 T! q: k& ~2 w
  32. / H% q8 z* I; @" j4 j; _4 n
  33.       lw.WriteLine("Count of bodies in array: " & _- z  U6 J9 W! _; u) k$ h
  34.                    bodyArray.Length.ToString())
    2 B3 F" [9 n: t0 g& Q/ B
  35. ; G4 W1 B) _5 p

  36. ) m/ Y+ ]8 y- r. Z. e; ?
  37.    End Sub. x2 Q, y6 q  v5 J- U

  38. * c/ h! e* Z$ s! i" a
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())
    4 y: j8 B+ s: I% T0 n
  40. ( I) I& _( A3 x
  41.       For Each comp As Component In ca. {9 N/ E) h2 q4 [+ Q
  42.          Dim c_part As Part = comp.Prototype. h. S% }1 ?5 o, ]0 \9 H: [
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()+ [. c+ z6 X( }% O! T
  44.          For Each thisBody As Body In localBodies
    7 m2 [9 k% i" D7 ~
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)
    7 i' S- W. V. p3 S
  46.             ba(ba.GetUpperBound(0)) = thisBody2 _+ ]" n' [! L& q% q# [
  47.          Next
    4 i+ h5 K. ]0 a

  48. ) b1 X" R8 J! U, J8 ]5 u; f
  49.       Next: K/ u2 L: u. d7 p  n
  50.    End Sub
    ) [6 H* ]/ M' o4 p7 m; S6 H

  51. 6 R6 J5 m( L5 w5 ?
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())
    : n; M1 `( }+ R: {( i9 ]) V0 d
  53.       Dim child As Component = Nothing" e: }, L. x; ~: H
  54.       For Each child In cmp.GetChildren()
    ! e5 i% L) q; B
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)
    8 ~/ \3 D- a; v# p6 {0 U7 P
  56.          ca(ca.GetUpperBound(0)) = child# \% A6 i- [5 W/ J. W7 n$ v
  57.          stuffComponentArray(child, ca)( K6 {5 T" R- h3 R# R
  58.       Next
    ( Y) V. m" J6 `; o5 }. U
  59.    End Sub
    & e3 ~8 R0 u( B7 q: S4 O1 L

  60.   k% f, v4 U1 A  Q9 i5 S6 v5 o) `; b2 T
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer
    7 O# v  G7 A" k: S
  62. 7 [) }  L) ?  Z1 `+ i; e
  63.       Return Session.LibraryUnloadOption.Immediately
    3 ^; e: v5 T0 _7 _, o! ]8 L
  64. 0 d3 B6 k+ h$ b) X
  65.    End Function
    6 s, `3 t, l/ L. Z- {, W

  66. + r. l" p. @- T# r; i" I
  67. End Module
    , H' l! I7 S& v$ }3 R( i- O) Q
复制代码
1 t7 A1 E6 H* H% A

' r3 H* L$ w3 x( K* l: @& u* Z) p& `$ v4 ^
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了