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

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

admin 楼主

2013-10-30 13:46:00

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

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

x
. G9 i, \: _5 D' W
  1. Option Strict Off
    4 Z2 x0 X: N; H3 m+ y$ L
  2. - ?) V4 O% v  m/ B
  3. Imports System2 _6 s& V3 X. H, J& ^5 ]+ ]3 t- l& ]
  4. Imports NXOpen- B7 H7 q- {) l$ [# N
  5. Imports NXOpen.UF" }- {2 F& l9 ?6 D6 y
  6. Imports NXOpen.UI! D( f% G/ C+ w" r/ j& l4 g/ y
  7. Imports NXOpen.Utilities( C( F9 c; J5 o* Z4 [. ]' z% x5 C
  8. Imports NXOpen.Assemblies2 J4 ?; [3 H- ^) P  B* ^' T! E  E

  9. 3 J! A+ Q  J5 n. p# ~
  10. Module create_array_of_all_bodies_in_assembly
    - y5 y3 b3 p% q" v" G) a

  11. 1 \0 r  G: P" x% p3 K/ o1 `, n
  12.    Dim s As Session = Session.GetSession()% W: _4 `1 U) N6 E# f9 E
  13.    Dim ufs As UFSession = UFSession.GetUFSession(), o8 q& K1 M" B$ H& Z1 V( n+ a
  14.    Dim lw As ListingWindow = s.ListingWindow; @8 _/ x6 j; ]& a4 x# _( Y
  15. + m/ d2 S8 `: k' F
  16.    Sub Main()' n* Y; f  m2 c1 z: y6 P" `) l0 J5 B
  17.       lw.Open()1 |6 f- u- A1 J( k" X9 j$ `
  18. % x0 B" j: ^: H* C' C, ?0 m2 d
  19.       Dim dispPart As Part = s.Parts.Display()
    % W8 R! c2 ~& K6 k# c
  20. 1 o- t* n0 v6 q; l8 i& H5 A
  21.       Dim root As Component = _2 O9 ?. X! z- \. [/ }
  22.                   dispPart.ComponentAssembly.RooTComponent
    + e& g4 v8 L3 d" r

  23. ) \! G4 b! l) w8 C1 L
  24.       Dim compArray(-1) As Component8 u& N8 |$ Q. R# K/ v
  25. & y1 _! R) i6 N3 n" o* T9 [
  26.       stuffComponentArray(root, compArray)3 `) E. D( L7 m% a: Y0 A6 a/ o  b

  27. # K2 b# }  X( r  }5 b
  28.       lw.WriteLine("Component Array Size: " & compArray.Length.ToString())6 i3 l  O! u% z+ E5 Z, D
  29.       Dim bodyArray(-1) As Body1 K7 q5 ]  _, M! E! A
  30. * _: W. [% e& J* K- L) |
  31.       stuffBodyArray(compArray, bodyArray)+ R4 M5 J. U8 s* h" @6 e. v
  32. ! f: N! J/ O- {6 H7 y0 d& \
  33.       lw.WriteLine("Count of bodies in array: " & _
    2 v" `0 E" G% N! i7 H, I! B# E
  34.                    bodyArray.Length.ToString())' Z9 y/ k. d  v$ H1 m
  35. 0 \* }; G7 o2 A# X& z5 S& w' k
  36. : q+ P; |1 Z& Q; D" H
  37.    End Sub2 Z8 Z4 b/ ?+ g% R* \( {
  38. 1 B+ D7 c/ a* Y. R: t4 X
  39.    Public Sub stuffBodyArray(ByVal ca As Component(), ByRef ba As Body()); z0 w0 R& E2 B: Q  p$ S

  40.   _  D3 K$ d& x6 ^- E
  41.       For Each comp As Component In ca
      L8 j; G4 F1 n: ~; l
  42.          Dim c_part As Part = comp.Prototype
    , q! S; G" M9 r% O$ p
  43.          Dim localBodies() As Body = c_part.Bodies.ToArray()
    7 m# H0 H: o; b8 }0 F8 ]4 \
  44.          For Each thisBody As Body In localBodies* K7 U* G  G  w5 t' I
  45.             ReDim Preserve ba(ba.GetUpperBound(0) + 1)
    " f! h: q1 q% P% V' _2 C9 P
  46.             ba(ba.GetUpperBound(0)) = thisBody7 G% I. U3 t4 {5 j5 [6 i
  47.          Next
    & i/ b. K% t4 ]5 P% B0 C
  48. + b. d5 T8 L0 H7 S+ F8 z; V( R0 ?
  49.       Next
    ; w) ~# |; I# N+ X
  50.    End Sub( T( s, E% q+ T( ~( n: a$ B4 ]0 H

  51. 0 m+ J$ B' C( S+ p- N& ^
  52.    Public Sub stuffComponentArray(ByVal cmp As Component, ByRef ca As Component())& C4 p/ _+ n; C/ b3 _$ P- q6 i; m
  53.       Dim child As Component = Nothing
      M7 F1 g7 H$ c; I+ Z! t2 k
  54.       For Each child In cmp.GetChildren()( w& u$ w! f! s3 A# d8 _
  55.          ReDim Preserve ca(ca.GetUpperBound(0) + 1)
    : a7 D. N+ i0 S. |
  56.          ca(ca.GetUpperBound(0)) = child
    % O; i. v2 Z! g! B
  57.          stuffComponentArray(child, ca)
    + [& v1 R, ?/ F3 g" v
  58.       Next
    + s$ {( Q3 \- ?+ D% t
  59.    End Sub% H. G; O) J2 n. i! s- ?6 v1 a! [' p

  60. + H# X! Q/ ~' L" ~  K
  61.    Public Function GetUnloadOption(ByVal dummy As String) As Integer
    " e5 j. w/ r- y& i7 B
  62. & O0 c6 I2 E: P/ `; k  Z. ?
  63.       Return Session.LibraryUnloadOption.Immediately
    8 M8 N* T* O0 V/ g  p9 f

  64. 9 o5 s! o+ j$ P6 f9 s5 D
  65.    End Function- @" f5 e: J1 G) ?9 }6 U. B
  66. ) b, e, m- @9 F* f6 A% L
  67. End Module, T% C6 I% @! J
复制代码

0 s: W! y3 F* d) ~$ |$ a% z* }% M  W- R8 e( @

8 c: r' }0 D- W$ r& [/ z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了