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

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x

; }' J7 _* l/ q9 W5 F
  1. Option Strict Off& A& [* g  B& e8 Z6 |0 p6 \

  2. 2 i! z8 C9 j7 C) w* W, i
  3. Imports System
    4 l/ n+ _! D1 f, f: N
  4. Imports NXOpen! T6 ?2 k. K, G- y; E
  5. Imports NXOpen.UF
    # e) z; [2 l% ^
  6. Imports NXOpen.UI# }+ f( u3 s$ K& K5 p6 d
  7. Imports NXOpen.Utilities
    6 b: l1 o% Z9 Q7 k: \
  8. Imports NXOpen.Assemblies4 |8 x' A% R5 i# m; d# P

  9. 2 V+ f* c* g4 Q& ]% U
  10. Module create_array_of_all_bodies_in_assembly4 [+ r9 b8 V- C
  11. ; y7 R* p6 @* \$ B
  12.    Dim s As Session = Session.GetSession()
    ' d7 Q( U& j4 a' m
  13.    Dim ufs As UFSession = UFSession.GetUFSession()
    6 k0 t* n* D: O  {" A* A
  14.    Dim lw As ListingWindow = s.ListingWindow- P$ K2 S6 ~0 p! X
  15. ( k" Q2 e6 {8 c
  16.    Sub Main()5 D* H. \$ z: O* X2 m+ t
  17.       lw.Open()
    " ?# P: `2 E$ I# w; l0 C
  18. 5 v9 I4 j$ A5 A/ l! ]( [$ R: Y
  19.       Dim dispPart As Part = s.Parts.Display()- J- z# [1 e; Z4 G7 e
  20. * f7 h; U8 H7 U  Y5 T- D1 v, T
  21.       Dim root As Component = _
    & o- D  D) G& t+ s  l
  22.                   dispPart.ComponentAssembly.RooTComponent
    3 h6 U& @! z: T- u5 z( q
  23. . L( e( n- V: K: }9 p9 D" n  n3 J' V
  24.       Dim compArray(-1) As Component( \( ^9 s) P+ [/ f6 a& c7 u
  25. / m2 A3 V, l$ N8 q
  26.       stuffComponentArray(root, compArray)
    - p8 y* B* Z2 z# e, {

  27. : A" z, g# A0 `, v
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString()); g$ P0 z* S. v+ j$ l7 r/ K7 |- D
  29.       Dim bodyArray(-1) As Body1 t( `& i" n- [. Q/ D: e
  30. . N3 G5 h- U' X4 ?$ ^
  31.       stuffBodyArray(compArray, bodyArray)
    & ~! y% ?% b# e5 n6 D: u

  32. 8 f) `  z! p$ ]6 E; A( q8 ?. V
  33.       lw.WriteLine("Count of bodies in array: " & _6 g1 u4 D8 B+ k. c, r1 L, {
  34.                    bodyArray.Length.ToString())
    $ {; j8 @0 R- E1 k. {! m) @
  35. # R% {/ ^" A- i/ k3 m! ]8 Z. c

  36. ) k# H. |, S2 @' F# C; X
  37.    End Sub
    8 B3 V7 B, w( j/ g- I1 k9 u

  38. 3 h3 R" p* \3 @2 V8 i9 G
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())( U, ?" Y8 m6 P  x0 s: Z

  40. ( H$ s' H6 q7 X( E" D/ H7 D+ [
  41.       For Each comp As Component In ca
    3 A0 {$ H1 E9 b& _8 H* d
  42.          Dim c_part As Part = comp.Prototype9 d# y# P! h' ]" @7 P
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray(); ~1 o2 D  }& }: N4 Q" @7 c
  44.          For Each thisBody As Body In localBodies. }9 R, j5 x3 Q$ p# f
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)
    , o# D- K+ k! A  s
  46.             ba(ba.GetUpperBound(0)) = thisBody0 w2 X& G# }/ H5 Y9 @7 V6 Y/ u9 t
  47.          Next
    , k8 e6 j. Y! X& s! W' L" ]+ D

  48. # h1 t- |3 `) u
  49.       Next
    2 [# w3 t) C; B; O
  50.    End Sub
    & F8 b7 e* ]* M" u' J! U
  51. 3 T- s' h; M- e
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component()); P6 a. K  _: O  i
  53.       Dim child As Component = Nothing
    + S) F1 @8 n" \) T& p6 u- N
  54.       For Each child In cmp.GetChildren()
    3 w) O; J) W) |8 D3 ]/ T
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)
    ! I- i" D7 r. Z  z
  56.          ca(ca.GetUpperBound(0)) = child
    / G6 c* X0 S- _& a+ V  E
  57.          stuffComponentArray(child, ca)
    # b) I, _# {: m1 x; U1 F
  58.       Next
    % `8 n9 |% Z8 }' Z! B
  59.    End Sub2 v7 Y, z( t, ^/ }/ M
  60. 8 h8 |% q0 h; i
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer( m: o# _3 y4 a( A  k  Y) }
  62. $ ^4 s7 r5 h# \$ U% U2 b* P7 h
  63.       Return Session.LibraryUnloadOption.Immediately
    5 ?$ O; s: @* J9 m, ~9 U  K
  64. " g( W1 f$ b: A+ n4 ?7 {: C
  65.    End Function
    ) W- y  X2 ^2 d0 z. }4 s
  66. 6 g6 O: J) d) ~) E' p. @' D+ X, y4 M
  67. End Module
    ) U( @4 ?% f. f
复制代码
3 x- d7 i! j. X' k

3 V9 R" E" V$ B  R
- _- Z' l" v1 d" M: y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了