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

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x
+ D; J* _4 _2 z. D: }+ d# [
  1. Option Strict Off
    4 ^# l) S5 K. a, ?$ Z

  2. 4 _5 D& z# C2 f/ N4 A7 J( O
  3. Imports System
    " B) Q4 O! X. p* m2 K
  4. Imports NXOpen
    5 l5 n% |) O/ n$ D# A: e+ T
  5. Imports NXOpen.UF& \4 G( ]2 N% g: Z; q9 _! {
  6. Imports NXOpen.UI+ f1 A" i9 S% A
  7. Imports NXOpen.Utilities& L* X# ~1 A+ w+ ?* w- e
  8. Imports NXOpen.Assemblies$ j& k( ?) j7 S
  9. ) _( a( j% a3 K2 r
  10. Module create_array_of_all_bodies_in_assembly- K% z9 \+ v% ]1 a0 w

  11. / ]. H! }  L: a
  12.    Dim s As Session = Session.GetSession()
    2 H4 m6 K/ t* {( y6 c2 |; M/ b
  13.    Dim ufs As UFSession = UFSession.GetUFSession()5 U0 {- W) n. _+ C8 n
  14.    Dim lw As ListingWindow = s.ListingWindow
    ' q; p! [! z% r# l" K

  15. - K& n5 j' D1 Z1 _) d: C
  16.    Sub Main()
    . m; S. d" f% x8 z; [2 C) t
  17.       lw.Open()5 a$ u0 X0 }3 W) Z9 t

  18. % v* c& u' ^$ m8 a  N5 V
  19.       Dim dispPart As Part = s.Parts.Display()7 M. L. r8 D" d0 F8 k6 v
  20. ! l4 k" t; c, C
  21.       Dim root As Component = _
    $ D1 K$ G: V' G* ]
  22.                   dispPart.ComponentAssembly.RooTComponent) U/ Z& J$ ~$ ?$ H) v1 |1 y

  23. 9 ~1 w: S" C7 t  p; ?
  24.       Dim compArray(-1) As Component9 n4 Y4 k: s; d4 t/ ]9 V( V
  25. ! [5 Q- N8 c( P% `( F
  26.       stuffComponentArray(root, compArray)
    7 W4 m7 z) a" u2 n
  27. 3 R' V/ f5 Y6 E$ n/ `0 @
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())
    7 F' h5 Y6 \- U0 `$ p4 T& b4 \
  29.       Dim bodyArray(-1) As Body8 J# ?/ @- ?$ l) D/ A
  30. # Y1 ]8 Z; s- q/ ?
  31.       stuffBodyArray(compArray, bodyArray)" x8 h' ^* F/ s+ h# Z
  32. 4 Y% r+ J& ^9 v* C* o; \! N
  33.       lw.WriteLine("Count of bodies in array: " & _
    2 V) i, O3 }* r# o: N  I; L3 _
  34.                    bodyArray.Length.ToString())2 g2 F2 ^) j. L. n; _8 D. `

  35. 6 h+ f" m' w) @% z0 D  t$ ~2 f
  36. ( P0 S/ [/ {/ }/ `. x7 V9 Y
  37.    End Sub+ R0 t- a( W% e9 x- L
  38. 1 _: N4 K* I8 L, Z0 T5 i0 A: D: @
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())
    ! t/ ~$ u1 k+ r, Q
  40. : _/ P; E! I+ L7 a5 B
  41.       For Each comp As Component In ca
    ! P9 w. M+ G/ C- p
  42.          Dim c_part As Part = comp.Prototype
    1 J$ Z, b4 {" @
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()3 E' U7 m' m) k7 `& h" Z
  44.          For Each thisBody As Body In localBodies  }) {% h4 @# H1 T1 V
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)
    $ z  e: s4 D# t+ z. A2 S8 G: S
  46.             ba(ba.GetUpperBound(0)) = thisBody6 J4 b6 {2 X( a" E  e
  47.          Next
    ( ]% h* o; D7 u% @2 e

  48. : q, f: m$ s2 J4 K! l( o& m2 n  K( F
  49.       Next" p) Z, o8 l/ ?" o
  50.    End Sub  Y3 a% K. N7 O

  51. 4 ]6 u/ K1 @  L9 G, h* M# Z! w8 p
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())
    5 x7 P" }& O; s  [
  53.       Dim child As Component = Nothing
    ; @1 Z1 w. j; n. G
  54.       For Each child In cmp.GetChildren()
    ) D" X" a; [/ d! T  s6 j
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1). A3 J5 p! y" M- y+ R
  56.          ca(ca.GetUpperBound(0)) = child
    4 ?6 l1 s+ ^  a  `4 {4 \' ?0 c8 n
  57.          stuffComponentArray(child, ca)4 ]1 \5 n' g4 g
  58.       Next, G3 K, [* T- m$ ]4 l0 {
  59.    End Sub- Q( c& m5 F% ?- ~/ }- e6 E  Q
  60. 9 r; W1 t2 V& S
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer
    3 u- y0 W% _0 f: S  K
  62. , f# x* f9 Z( Q$ B* _
  63.       Return Session.LibraryUnloadOption.Immediately
      @6 w3 d* i+ ~2 {. I
  64. 8 q* P- l) G3 d4 f; S% _: M
  65.    End Function! H# W) ^$ g5 J) F1 \' S3 i$ i9 W: [

  66. , h" M+ g( w9 `6 d* _- i
  67. End Module
    + ?2 i: [3 H& i, P. ^$ r
复制代码

/ I2 A/ ?6 g+ h7 P: o7 R0 L) F0 C- Y# t2 {* }: d  X  L

; U) z' Q8 k! K6 f! m0 X; s
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了