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

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x

6 n- ^1 F4 @/ a" c' T
  1. Option Strict Off
    : ^& q1 ]/ o3 S( |$ \7 F* c

  2. # K2 m8 o+ U1 P5 b9 d
  3. Imports System7 ^/ U' l! p9 Y8 ^
  4. Imports NXOpen
    " F- P- ~. @" J: G4 Z
  5. Imports NXOpen.UF
    ' ^/ A. G# \/ ?' |+ c. G, C
  6. Imports NXOpen.UI
    1 F2 E' B9 P0 b# [
  7. Imports NXOpen.Utilities
    * S  L, V, @7 {: a' A
  8. Imports NXOpen.Assemblies+ H' g( w5 P& T; I6 ~
  9. + _3 B( `4 h) d3 ]2 M5 c" ^6 C/ @% I
  10. Module create_array_of_all_bodies_in_assembly8 \) v1 p  ^& n

  11. % A3 i8 w; s% N0 a3 n; R% b' y
  12.    Dim s As Session = Session.GetSession()$ N7 `; `- n/ q2 S
  13.    Dim ufs As UFSession = UFSession.GetUFSession()# g5 I& g* L0 V' l* h' g, s4 [
  14.    Dim lw As ListingWindow = s.ListingWindow
    * S9 a6 q+ G* o! h2 V
  15. ' L7 U% U+ |+ N! L; {
  16.    Sub Main()
    : V, {* ~; [$ ?+ a1 E$ `, L, s/ t
  17.       lw.Open()% i+ G; V, i& q. |# T9 E# p

  18. : a( j4 C) `7 a! x2 W
  19.       Dim dispPart As Part = s.Parts.Display()5 J  i8 u$ m/ l
  20. 9 r2 u$ L" ?2 M
  21.       Dim root As Component = _
    - N, s1 f0 O1 ?  X+ l$ I5 B+ Z: `
  22.                   dispPart.ComponentAssembly.RooTComponent
    $ D0 W7 P* {& }: M, z
  23. 1 o- d" R$ h% E) j! X/ ^7 m, ?
  24.       Dim compArray(-1) As Component
    * y7 |# @! v9 \: Z7 l0 C
  25. ; `* p1 ?* ?5 }
  26.       stuffComponentArray(root, compArray)
    % r" R) `* g7 E
  27. ! t' c( `# l) t9 w9 ^
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())
    9 c; t0 E$ I' f
  29.       Dim bodyArray(-1) As Body
    / s' |* Q6 ~( T2 S8 Z; H

  30. 8 c, i% t0 G; F& {5 t
  31.       stuffBodyArray(compArray, bodyArray)
    . W4 v' J( f( g. F

  32. ! @7 E. W6 I$ I) a" b* s
  33.       lw.WriteLine("Count of bodies in array: " & _  |, |6 m4 Z, |  X; l- R
  34.                    bodyArray.Length.ToString())7 H: L# `% u6 r: y
  35. , ~2 m6 T# z) D- A' |- @- g; _

  36. ) H4 X" U6 u% ~" w* f+ ?/ J, o2 T
  37.    End Sub2 @) M4 F3 p) \6 B7 H2 A( g
  38. 4 o9 P" R: ~/ e6 |
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())1 h0 E% r; B% q( _0 k

  40. - b5 C% j" A3 D0 X$ j$ o$ M
  41.       For Each comp As Component In ca! g1 h: G4 {) e2 n5 Z3 e) I& F
  42.          Dim c_part As Part = comp.Prototype% {% \5 T. W* i5 s) H( ?
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()
    ( b  w0 K" d# H7 _" D* L/ D% A' ^
  44.          For Each thisBody As Body In localBodies7 z, N4 B; I8 Y! m- w
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)# z% p$ a9 N$ \  Q
  46.             ba(ba.GetUpperBound(0)) = thisBody9 U0 x1 L. @! e/ q/ ~3 g2 f+ q
  47.          Next
    7 `' ?6 x" l( j  C7 k) U
  48. - c' A3 ]8 |. ^! o! |
  49.       Next3 w. A3 k  `2 u! T: P
  50.    End Sub( K5 C: |6 ~- v  W' |' q4 z, `3 x; Q
  51. . E2 b1 j  Y) @" b! @0 A
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())
    & s/ c9 L2 Q8 ]1 E4 f& p# A% d
  53.       Dim child As Component = Nothing3 O  _+ ?$ H5 q  e
  54.       For Each child In cmp.GetChildren()
    $ q/ z+ E# H. g2 k
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)7 g5 ]6 [" j4 M4 \! |0 Z0 J, ?0 ]
  56.          ca(ca.GetUpperBound(0)) = child* h7 G- C( ]1 E+ ?: u5 n  i
  57.          stuffComponentArray(child, ca)
      v4 N- b: }8 I8 D8 q, ~) ^
  58.       Next  l3 E2 T0 @- K  I
  59.    End Sub
    0 m/ r  h* X1 |, r/ j& J7 Q1 F7 U5 }9 u/ t
  60. - m+ F8 W4 s* o: o% @9 N) {
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer. R9 I$ P3 {: j/ c; P
  62. # T* v4 Q8 `  o; X0 `; n; g
  63.       Return Session.LibraryUnloadOption.Immediately4 D( X$ V4 ?. y! Q2 _% q

  64. , e# K% c% y9 [
  65.    End Function* i" \9 ^  C5 u. U4 z; \

  66. 1 g* t) s! x7 Z2 m+ @9 v
  67. End Module7 [$ ^) W- C! `& b2 K7 g  X
复制代码
/ b/ C5 O/ X8 g0 |6 _# b7 ?

& O% L3 D; ]2 W5 R( b3 r9 H- ?5 y) X; W
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了