PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x
) Q$ r4 q! y5 O/ H7 @, V2 R6 e
  1. Option Strict Off
    3 a' g- M0 W' k. N$ I; k/ R& F0 ^
  2. 0 ^0 d; r- A7 X+ A( B# r
  3. Imports System
    3 E0 b; T1 Q5 o7 |9 @6 q% T
  4. Imports NXOpen
    0 F1 ]# L9 N2 t% G
  5. Imports NXOpen.UF
    " b$ B* P+ U+ p3 ]5 T" j, ]1 |
  6. Imports NXOpen.UI
    * Z9 V" `; T. X- p# o
  7. Imports NXOpen.Utilities
    0 a, e! u2 q, p  R  G1 @
  8. Imports NXOpen.Assemblies
    ! I( W( D: y) t* `4 S
  9. , q7 Q- K" W, b) P2 Q0 ~' o/ }3 v  A
  10. Module create_array_of_all_bodies_in_assembly
    $ v+ X$ @/ h( l6 q) W
  11. $ G8 |4 [+ R$ f3 H, ^9 F1 N
  12.    Dim s As Session = Session.GetSession()
    : k8 b7 P6 g5 W8 A& f
  13.    Dim ufs As UFSession = UFSession.GetUFSession()
    & L$ P* P! D3 T3 l* o2 w& v
  14.    Dim lw As ListingWindow = s.ListingWindow8 V: k; O2 d9 I) t/ `% g
  15. ! B( }" W. {2 ]: c' Q" z$ X& C
  16.    Sub Main()
    5 X, f- o% W; v0 ^. A
  17.       lw.Open()# J3 N/ P* K( `

  18. 2 t: E# X) u( n$ |3 r( q
  19.       Dim dispPart As Part = s.Parts.Display()' m/ }* y: T2 d; [/ w* n* E

  20. + B' V0 ?3 p7 X1 q+ C9 b+ d
  21.       Dim root As Component = _
    6 K" ~0 ~  f" h. {2 C, J
  22.                   dispPart.ComponentAssembly.RooTComponent
    , T. S  Y. C, ?1 y
  23. & r' y* j& T  l+ m) J8 ^
  24.       Dim compArray(-1) As Component3 j: X6 f& ]* H8 m, }0 V# H/ ]

  25. " ?$ e; s3 _$ k: C5 b* f
  26.       stuffComponentArray(root, compArray)" D! X4 X$ m( _0 I& v% w
  27. 3 R6 d" R8 w0 j, [8 c) w
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString()): P  z1 W' g7 G7 A( |
  29.       Dim bodyArray(-1) As Body) T. V5 d2 Z7 P
  30. 9 w  D: H  t' _3 @1 v
  31.       stuffBodyArray(compArray, bodyArray)4 P, ?) J2 A: t* k# F  o, G/ U

  32. , j5 l8 c0 [9 E% ^8 K
  33.       lw.WriteLine("Count of bodies in array: " & _) A6 D* w; A$ B( C1 @# J; ]
  34.                    bodyArray.Length.ToString())
    : p  \/ M0 P2 S
  35. , m( |$ K9 }0 o1 E
  36. # {4 E) n9 [2 v7 v4 a
  37.    End Sub; R, U! c3 V4 s4 M5 T# w7 _6 ]
  38. " y0 E; B3 }# O
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body()); l1 e' e' b8 d

  40. 1 H  A2 ~* `) Z$ h! x( Q8 I
  41.       For Each comp As Component In ca! P% \7 L! W% ?% L# G: R& d3 t
  42.          Dim c_part As Part = comp.Prototype
    : `) B' s: h& K( {- G1 Y3 m
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()
    9 H6 U/ x' W) B& L+ c
  44.          For Each thisBody As Body In localBodies  ]+ I: l% H$ ]7 L/ l7 f9 V
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)
    & E3 P; w  E' A6 ?3 H) T) Z
  46.             ba(ba.GetUpperBound(0)) = thisBody, k8 g7 ]; p+ g! I
  47.          Next
    " \% m) v( I/ ^3 C
  48. 5 B* G' D9 H) z$ O: o4 q" P
  49.       Next
    1 D( V1 R, Q) m, e! G
  50.    End Sub+ ^6 X! D, z# T- C! R2 j" i
  51. / y* q; k0 j' K
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component()). W6 j& K  {: n2 L/ q+ Z3 A7 q* c- g
  53.       Dim child As Component = Nothing9 M) h# V. }4 }: g, i
  54.       For Each child In cmp.GetChildren()
    , [7 ]6 _. g, b9 ^  O2 ^
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)  }$ S" l+ J4 F8 m" Q* Z+ P
  56.          ca(ca.GetUpperBound(0)) = child7 ?2 x% D5 Y; x5 O$ }( ^
  57.          stuffComponentArray(child, ca): @8 f- w5 e3 V  t2 Q: _6 D
  58.       Next
    ; I9 Y8 l$ g+ _1 r
  59.    End Sub$ p. T- _2 {$ g- y8 X4 R1 y2 c
  60. ) a0 K( Y# n. d
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer
    - |# s( L6 F) n4 J
  62. ( B( t9 k" s' F) N
  63.       Return Session.LibraryUnloadOption.Immediately1 l: u; n# I! \7 M

  64. , @" Q* G$ ]  ?0 m8 X! l, I% F# P
  65.    End Function
    . a% c6 a* y9 Q  K& _+ N; M, `
  66. 8 F  `% g# T+ J0 m6 O3 }4 t
  67. End Module
    8 g7 f) d' R6 K2 N, N
复制代码
: m  y; g8 f0 J, s( T4 B/ B, g
6 Q, b# c$ E6 v. `" m

5 Y) ~0 J, W1 i; f, [: t
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了