PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

[复制链接]

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

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

admin 楼主

2013-10-30 13:46:00

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

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

x
8 ?, M! D4 v+ d0 ]6 C2 o' E
  1. Option Strict Off
    6 T+ {- O% k6 v* v

  2. 1 V( I: r0 t/ n% O5 n' c- B! _
  3. Imports System/ F  A, A' W/ f1 {- s$ c3 n
  4. Imports NXOpen
    ) w9 I, J7 h. R" |6 _. L
  5. Imports NXOpen.UF3 t- C9 v$ m0 T( F, T' E) @
  6. Imports NXOpen.UI  H* k! w; J; C& l) K/ U
  7. Imports NXOpen.Utilities
    2 i' l& Q' A' M% q3 B# ]3 e0 S$ x
  8. Imports NXOpen.Assemblies
      m7 E0 v8 P$ z0 K/ O) L2 s$ T
  9. % q+ l2 J; V6 X3 ?( i: r. \
  10. Module create_array_of_all_bodies_in_assembly
    - d* r& c* T/ i7 F
  11. 7 @8 g: L. |, w" H, I
  12.    Dim s As Session = Session.GetSession()
    9 H* I7 J2 K# L# N3 m+ w! Y
  13.    Dim ufs As UFSession = UFSession.GetUFSession(); w+ C8 \% `6 f0 Z7 D. D2 d
  14.    Dim lw As ListingWindow = s.ListingWindow
    " L( K& H! T2 J0 e+ L8 y( s

  15. " A2 Z+ v- {, `  x  O
  16.    Sub Main()# j3 l: z% p# |) a
  17.       lw.Open()' Q( q$ E. X$ o- \- s5 P
  18. 5 d+ \+ O6 \6 r
  19.       Dim dispPart As Part = s.Parts.Display()
    ! i# j; Y% c' @" x. [

  20. ; k3 w7 h. q% y: U: \  R; t  o
  21.       Dim root As Component = _
    ! b! |* Y( s) Z+ D
  22.                   dispPart.ComponentAssembly.RooTComponent
    % D! [! V6 _5 x4 K

  23. / ?) ~+ q# ~* A, @* |4 P  g
  24.       Dim compArray(-1) As Component
    7 O1 P. M" V9 {) N: ]# z! B

  25. / z7 H: B) V( L
  26.       stuffComponentArray(root, compArray)2 O6 [0 w2 d& s* t& Z& R4 d
  27. 0 L& n: I1 G( n) p. V; Q0 B
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())4 S& \9 n; g: V, X* |1 n( _
  29.       Dim bodyArray(-1) As Body* ~' v2 U( J3 A$ q$ }; i* ^# w7 z9 v

  30. : Y: F2 w! v  Q- l3 Z0 i3 z
  31.       stuffBodyArray(compArray, bodyArray)
    ! I0 |3 X' n# P2 ~! W0 A

  32. " s& [, ?; J' w. `- s/ t" w1 S
  33.       lw.WriteLine("Count of bodies in array: " & _3 z" A6 ?( a; ^1 m: D' Y. E
  34.                    bodyArray.Length.ToString())
    % o+ H% P1 Q+ J4 q. s8 ^

  35. % W5 n. s8 ?2 c- H
  36. . w- d, K* X2 ]) d
  37.    End Sub
      }: W1 `& n0 Q3 U6 m
  38. ( K. |- z* y' ]$ ~8 P0 ]/ O
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())
    0 F# B, A, t; {0 ]

  40. % L* N( c7 z( D
  41.       For Each comp As Component In ca
    ) e" Y- i0 a: }' S
  42.          Dim c_part As Part = comp.Prototype
    9 x6 G' W& E0 d7 N0 {2 w
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()+ A* Z5 ^( G4 J1 E# b, S
  44.          For Each thisBody As Body In localBodies
    0 D. \) t3 y; j% }; z6 ], s. @
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)& S: W  T: r) |- Q
  46.             ba(ba.GetUpperBound(0)) = thisBody; h( g2 d$ {) y! g) V; k0 f6 ^7 B
  47.          Next
    " k) b% x* w6 F0 G/ Z

  48. & o. Q) m+ l& U0 [: B! E
  49.       Next1 h1 j2 o% U1 A- [
  50.    End Sub7 g2 B3 R8 ~; C. ^
  51. " s0 T+ r% ]  c' @0 y
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())
    1 E* u4 h8 h. \& s1 _8 ~6 Z
  53.       Dim child As Component = Nothing
    % y/ B/ f# D7 G) s* n6 z( `! ^5 m
  54.       For Each child In cmp.GetChildren()
    8 U# R( D# p& C8 Y4 N6 m* x
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)
    5 C7 |, V6 U" _: K' }5 n1 h
  56.          ca(ca.GetUpperBound(0)) = child. U- q# e+ s) i3 d4 J6 P
  57.          stuffComponentArray(child, ca): q$ E& J% u, i& |8 r' q8 D  S7 |
  58.       Next
    1 I! P4 a1 f6 t3 H/ w" U# g
  59.    End Sub- V" d. _6 @8 }3 V5 s, T0 I

  60. 7 W, D. A' O3 Z& S% v$ J
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer9 A! i+ _3 h7 H4 |. D& W* S; W# c

  62. # o9 u$ K5 v1 T
  63.       Return Session.LibraryUnloadOption.Immediately' k. W) ]; n! e3 A0 _0 S
  64. 9 j% u( J; T& C  K
  65.    End Function6 q& T  h: M  I5 }: L$ z. G3 ?
  66. $ T7 \/ d5 I4 \, L/ ^
  67. End Module6 w% t1 b" g$ X
复制代码

0 t+ r, q! u% B9 o7 S# u/ i) b, [2 d

' @5 y, K9 Y$ m* U" W3 X6 ~
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了