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

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x
9 A3 O; N3 G1 S/ B& s  v
  1. Option Strict Off1 K  N4 v; d- G
  2. $ p( v+ ~8 W# H4 b: i: ?
  3. Imports System
    9 n+ A6 [  c5 _( y
  4. Imports NXOpen
    7 P/ d5 M  z/ ^' h
  5. Imports NXOpen.UF
    + J6 X2 S  U( g8 a$ O9 r
  6. Imports NXOpen.UI% b( {! w. A2 n$ x
  7. Imports NXOpen.Utilities
    8 H4 a# D0 \9 q6 y
  8. Imports NXOpen.Assemblies
      d# ~" X8 ~$ \$ ^4 y+ S
  9. 2 b, ]# H2 R4 Y( n4 c1 Z
  10. Module create_array_of_all_bodies_in_assembly  {* s- {* g9 @
  11.   I0 a" A# U+ _- r5 H; A1 [
  12.    Dim s As Session = Session.GetSession()
    4 E& |4 x" ?6 x! g# Q6 z
  13.    Dim ufs As UFSession = UFSession.GetUFSession()% {2 C! {  I6 ]+ b% s
  14.    Dim lw As ListingWindow = s.ListingWindow# ]/ P3 s& V. C( {) P
  15. + B; W: D3 b$ r; V/ H" d6 q. C
  16.    Sub Main()
    , Z+ p, Z' |2 [9 W" S  r0 ^& L
  17.       lw.Open()
    9 A( l! {* _4 Y. X" }1 L

  18. / ^+ i( r" u% ^  P! r  A7 v
  19.       Dim dispPart As Part = s.Parts.Display()
    ' h/ J: W0 c0 x) Z' ~7 t

  20. ; X) z) i# u6 f* u/ V/ X
  21.       Dim root As Component = _
    # {; K0 p; P0 N& C4 q! M) J* K
  22.                   dispPart.ComponentAssembly.RooTComponent
    & r; ?2 q- A& e- t

  23. 0 ]( S% u) C8 ?1 l# `+ h0 f
  24.       Dim compArray(-1) As Component
    % q5 D/ e/ `" @% n

  25. 2 f9 c# D5 h2 J( ?' c  N9 h
  26.       stuffComponentArray(root, compArray)9 i5 t9 x: ~$ q3 ~7 Z2 o
  27. + c1 O$ s$ |5 A- a7 Z
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())
    - j( u; z; N/ y' ?
  29.       Dim bodyArray(-1) As Body
    ) [: B& c* e, c+ R4 q$ O4 b" H

  30. # o* J/ [/ C  P8 Q* p* q* E$ u
  31.       stuffBodyArray(compArray, bodyArray)
    ( `# ~" M8 G3 i. E( a( w

  32. - O" d' A# M5 X7 v9 k  g! p; r& o- a
  33.       lw.WriteLine("Count of bodies in array: " & _, d5 s6 i  _( K, \) ]
  34.                    bodyArray.Length.ToString())
    8 C, {  s- Y' V5 R' l0 d; B3 h

  35. ) \2 c4 W' ?+ {$ O. |: r/ q
  36. ' Y2 z6 U) ]$ E9 M9 c% y
  37.    End Sub( H/ p( U) x( S8 T+ v1 R
  38. : [$ q7 J( a8 G3 w
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())9 d4 y+ S, Y. i4 O" l/ a
  40. ' H, u$ e  ^; S* c" f( R7 M+ L0 v
  41.       For Each comp As Component In ca# s- q4 T( I0 i4 _
  42.          Dim c_part As Part = comp.Prototype( W3 b% Z, r( J/ z% n/ j% M- v
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()4 Z! e( M5 x) a/ B: T. c
  44.          For Each thisBody As Body In localBodies9 w/ L  i) l* U3 z; X; C6 |
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)
    . |+ k/ }" u+ g, s: P' m% |
  46.             ba(ba.GetUpperBound(0)) = thisBody% F3 P# S: [- f3 z. K. {
  47.          Next. Z) B% L& s0 v$ ~, }" I# V' n$ W$ ^

  48. + Q: l9 p0 _6 ~' n( r0 z/ y# w( R- m
  49.       Next. I* R. o( q) j& ?! @8 {" F* Z
  50.    End Sub
    * k* R. t# \0 u

  51. 0 j( ]- ~) T  ~2 Z+ s' ]; J& [
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component()); f; H3 [& T# w! ^/ P/ N
  53.       Dim child As Component = Nothing
    ) a5 U1 V7 E! m% V- a
  54.       For Each child In cmp.GetChildren()1 Z) E. q6 O) }* }: z/ ?  ?
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1). |/ `0 V" _) h9 W0 i9 S+ y# n! B
  56.          ca(ca.GetUpperBound(0)) = child
    8 m  \# F# }; s, W  e
  57.          stuffComponentArray(child, ca)
    " r% e: B' G$ g4 U$ D5 G# c
  58.       Next
    + w5 L2 F9 S% R, {* C0 z2 Y4 H1 j
  59.    End Sub
    4 Z, j; X6 h. `- x, }

  60. : u7 ~  E9 J# V/ E
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer0 a$ P; y; k8 f5 x

  62. 4 C; J0 E' o: Z3 o
  63.       Return Session.LibraryUnloadOption.Immediately
    ( i/ Z4 V4 j3 R' {1 B

  64. 9 ?. t5 L+ Y( m* F6 v
  65.    End Function4 I% J) O# N" `- o( s! f

  66. / j0 w% o" b) I: z; x9 S" O0 \- c; f
  67. End Module7 i& j0 i; X! e3 G5 \# S9 ^4 C
复制代码
& @, t5 b9 W, `
) i) w; A) R6 v
' [  m1 q' M' {! E
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了