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

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x

0 G6 d' c: L  n3 g6 i6 K5 T9 C
  1. Option Strict Off
    5 J  n  Q+ @1 l2 l5 U* V2 F
  2. ! W* [- t6 K' f! _, C
  3. Imports System
    + ?% `/ k, |$ o- t
  4. Imports NXOpen1 {+ Z* Y2 B- O$ v
  5. Imports NXOpen.UF
    0 g; }8 O" F; Q# Z8 N: {5 p5 N
  6. Imports NXOpen.UI
    . K9 |' V1 N+ f2 u, n/ H& @. L
  7. Imports NXOpen.Utilities, k/ ^% i- Q  T. H' m  f, r
  8. Imports NXOpen.Assemblies( y; X! _: a9 E3 H$ h) d
  9. 5 c8 p1 [1 d- P: V" O
  10. Module create_array_of_all_bodies_in_assembly9 @+ s3 i# d( p

  11. $ U1 f& J! H. X# y  g5 n- T, C
  12.    Dim s As Session = Session.GetSession()
    2 g0 g1 J& Q6 c6 l
  13.    Dim ufs As UFSession = UFSession.GetUFSession()
    4 _2 S- w; z$ O
  14.    Dim lw As ListingWindow = s.ListingWindow
    4 B. f* M5 x" w2 w8 \3 c9 r* h( U2 o
  15. 8 R  n" P% e/ a9 a) j' i! A
  16.    Sub Main()
    ' Z2 T/ ?( k( d1 ~; E0 i
  17.       lw.Open()
    " l8 X1 C0 W. D/ C! w5 o  y

  18. 0 ]( P' f9 z! Z
  19.       Dim dispPart As Part = s.Parts.Display()
      S( \1 n2 O1 s3 K
  20. & g, Y9 s# Z! n1 z7 t+ y
  21.       Dim root As Component = _
    , Y2 k# ?/ y) I: h
  22.                   dispPart.ComponentAssembly.RooTComponent0 j$ k3 |% y! ?* k
  23. 3 ]# a+ O1 L% C! r( Z: B- l* i; G
  24.       Dim compArray(-1) As Component
    ' [( e! M3 S$ q
  25. - H' H, v3 Z- j9 @
  26.       stuffComponentArray(root, compArray)! A- J$ w) G2 M. X
  27. * j) o$ N# w' l+ O, t8 u
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())9 u3 y5 u; m3 h* b
  29.       Dim bodyArray(-1) As Body
    : h% r5 I+ f0 C2 W- a4 U; j" Q0 a

  30. * t) F$ M. C3 J9 \+ `1 p! ]8 _
  31.       stuffBodyArray(compArray, bodyArray)
      S( g$ L/ q' c% z3 m

  32. , o. W4 y$ x$ U* q9 w6 K
  33.       lw.WriteLine("Count of bodies in array: " & _- w4 v1 k' y6 `, n- j9 V. ?/ Q9 q
  34.                    bodyArray.Length.ToString())* q8 J! t9 }5 V$ `: D

  35. 8 \) X+ G2 y  D# v5 \
  36. ' t" }: T( l4 M3 o& D- R
  37.    End Sub
    & _5 ^! W" @7 s0 X9 g

  38. 7 n! I3 n/ M% B; E# E
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())
    0 p0 |  N2 ?3 D0 s  _4 Y
  40. 8 {7 r$ `! I' u- P
  41.       For Each comp As Component In ca
    7 n# d' d6 z! q. q2 v) v0 X
  42.          Dim c_part As Part = comp.Prototype  e2 U" R9 q8 \( R
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray(); u1 X5 ]# r# X" S% `
  44.          For Each thisBody As Body In localBodies: ]8 X- i7 S$ A; j
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)3 u1 |# L0 x9 Y
  46.             ba(ba.GetUpperBound(0)) = thisBody
    / V7 V+ o+ {+ A! ?) P6 R: m6 @
  47.          Next
    ) n9 j# U/ ~4 Q1 U* d

  48. 3 Y# G1 ]8 V9 S4 s/ a2 F, @; _
  49.       Next
    9 @; R6 B1 R$ A( o1 H) N
  50.    End Sub* A' e' E) f7 Z7 Q. T4 P

  51. + [' r8 I! k- P! z+ u/ B% o
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())) k" s: X! k: ^" \# ?6 B3 c
  53.       Dim child As Component = Nothing2 S8 J; z  v. ?8 A- i6 ?9 m. x
  54.       For Each child In cmp.GetChildren()
    ) x% q- G7 X/ C* a8 _4 g
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)
    ' v% ^: W9 {7 t; F9 x( q9 [1 G
  56.          ca(ca.GetUpperBound(0)) = child
    8 [: u: I; E4 [0 N7 T5 a* P
  57.          stuffComponentArray(child, ca)
    ' j* J1 B* {/ o& W7 I
  58.       Next
    : `4 }: q( L( Y$ c0 X: F0 K' g
  59.    End Sub
    - M6 f2 U1 m; \3 }% I
  60. 0 P# g7 T5 [$ j7 J% o5 R# c
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer
    ! B6 z- R. x% c: p+ z9 g* f! f9 T
  62. + {$ Q" C) C- u
  63.       Return Session.LibraryUnloadOption.Immediately
    + l( {0 o" k% I% i2 M
  64. + G# a! A3 K* b9 L- @+ f  B* a  O
  65.    End Function
    , O" X' X5 q# _9 _
  66. 7 I0 ~* U4 [( g
  67. End Module3 [" {: c& \' r4 G# J* }
复制代码

* N1 D; ]( ?( y0 {+ [
9 I. N# q5 S7 B! d6 D$ z/ [% D' }
9 S8 J$ i0 o# |; {0 i! I
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了