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 3598 0

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

admin 楼主

2013-10-30 13:46:00

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

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

x

' ]+ G3 y' ?4 E
  1. Option Strict Off. P  F# z+ H/ c2 e# e! A

  2. ( N+ ~- M1 J) P6 w7 i
  3. Imports System6 ?7 u! d9 m7 X
  4. Imports NXOpen3 I- c+ }2 b' J
  5. Imports NXOpen.UF. g, X) ?+ w( M1 u
  6. Imports NXOpen.UI
    9 T7 K& }3 _5 _" K# N7 @" [! b6 p
  7. Imports NXOpen.Utilities
    9 ~6 i1 G3 L$ o, g! q7 X
  8. Imports NXOpen.Assemblies
    # V8 B9 F- h5 i" H) I2 ^

  9. ' _4 E9 c2 \. J
  10. Module create_array_of_all_bodies_in_assembly% i- n" V3 P8 B" D; W2 U: J

  11. * D8 D# U4 z3 s/ C" P
  12.    Dim s As Session = Session.GetSession()+ W3 N  ]4 F4 D0 P% t% u4 N; [: c
  13.    Dim ufs As UFSession = UFSession.GetUFSession()
    6 W( R4 N6 {' f8 `% @* c
  14.    Dim lw As ListingWindow = s.ListingWindow6 N4 E8 e7 G+ E7 F4 ^1 l4 \
  15. ; |, A9 T1 i3 q7 q
  16.    Sub Main()
    , I! q/ t) B, k% Q2 H( \/ d' w) R/ T
  17.       lw.Open()
    & g; `: x; F, J" w# r- W
  18. 2 z" z4 n' D& o% ]2 ~# f& l: y/ }5 V
  19.       Dim dispPart As Part = s.Parts.Display()+ `. A# F5 b8 D$ h# E4 }: v
  20. . a3 u3 z$ l) O
  21.       Dim root As Component = _
    ( x( s5 X5 h  ~1 {
  22.                   dispPart.ComponentAssembly.RooTComponent
    9 ~- |! c3 o$ Z4 W! v$ O4 ]

  23. ) n: @: M6 H" l% `
  24.       Dim compArray(-1) As Component: |3 P! B% _+ Y; m4 v, g

  25. 0 X! \! ~# b6 Z: z
  26.       stuffComponentArray(root, compArray)
    " k( z4 [- p6 J" ~3 C

  27. - @" _1 ?' }, s4 [$ m
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())
    ! O. U5 Q) j/ n! t( `' H
  29.       Dim bodyArray(-1) As Body
    ' \) E+ z) m. s7 G+ w1 B; I
  30. 7 K1 a7 s  d- Y4 R6 j, f- A4 Z2 U
  31.       stuffBodyArray(compArray, bodyArray)
    ' Q( h  C. w! m! A3 l
  32. & S6 ^9 O2 B' D. b
  33.       lw.WriteLine("Count of bodies in array: " & _0 L! M6 e! `9 w8 a- o
  34.                    bodyArray.Length.ToString())/ K! a, B2 W6 V9 W

  35. 7 m- B$ k! ~2 s& [( t; X

  36. 6 Q& c/ z2 V$ i
  37.    End Sub# [& C% B! {: L, F+ n$ f9 _

  38. - K" q1 z  D' y
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body())
    - ]: X6 q3 {+ D$ v; K9 U! z! G6 k% \
  40. ( |  q3 f) F$ e4 ~+ K
  41.       For Each comp As Component In ca
    - |: G) Q) G: v: K) L: M
  42.          Dim c_part As Part = comp.Prototype
    : T1 S$ y5 H( ~% j/ {# P6 H8 I6 T
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()
    1 H2 ^8 ^: w! C6 ]% g8 G
  44.          For Each thisBody As Body In localBodies
    - {  J7 n, S: S5 e4 F+ O; O
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)
    / _6 b/ s; A6 d* r& X
  46.             ba(ba.GetUpperBound(0)) = thisBody6 @0 \) t) R- U( b0 v) X6 W8 y" L
  47.          Next7 r! N7 ?# [% u( W. Z

  48. 1 u7 e0 c3 J: h; r
  49.       Next& v3 s5 J3 B# I/ B- x3 ^, S
  50.    End Sub
    7 x5 h! P9 G% Z/ ]( H' K* t0 q& y

  51. 5 s4 c( k$ f# Q7 Q% e; x6 d
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())/ {0 @/ j  _# ]" k5 x4 U" u
  53.       Dim child As Component = Nothing
    * o" Y: V2 U6 h; D7 M- ?) ^
  54.       For Each child In cmp.GetChildren()+ ~) c. x& H/ j! H4 D$ {
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)
    / T  c+ @; N( G! i6 M
  56.          ca(ca.GetUpperBound(0)) = child
    / j& b9 E1 A7 x
  57.          stuffComponentArray(child, ca)
    , D. d; u. _; z6 C
  58.       Next' ^+ E! C7 v' [# i0 ^0 d
  59.    End Sub8 Q  U* g) @& l  K
  60. ) t0 W- o9 Y9 C6 w$ w: {
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer8 Y( a/ n# C0 d' \' n- F% v2 i; n

  62. ' L8 l. N1 S* X: L" ^
  63.       Return Session.LibraryUnloadOption.Immediately  e% ]  F& z9 ~. z: p* d
  64. . c$ K  R( d; V
  65.    End Function
    , ]. u  w: M/ }1 H
  66. ( D( `( _) }% m7 f) G" x
  67. End Module
    ( F/ {/ v3 C) t) O- t1 a/ \. \
复制代码

" Q7 }2 O; U& u* m/ F4 `( o$ S# ?$ S* Z7 z

0 G. c; {$ G9 d* u' ?' h3 g
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了