PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

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

[二次开发源码] NX二次开发源码分享: 加载所有的装配组件----全部加载

[复制链接]

2019-4-12 09:06:31 2164 0

admin 发表于 2019-4-12 09:06:31 |阅读模式

admin 楼主

2019-4-12 09:06:31

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

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

x
[mw_shl_code=csharp,true]Imports System' j. s0 V- {+ u6 I
Imports NXOpen+ Q! O" z7 z' x0 v; ^
Imports NXOpen.UF" _1 K2 u' t  L# ~) N& p
Imports NXOpen.Utilities4 J$ ?" ?$ G  S( {5 _
'
5 f! b- @& [- s  S& [3 c' The OpenComponents() parameter. t7 b  ?- ?8 x5 u
' NXOpen.Assemblies.ComponentAssembly.OpenOption.WholeAssembly8 G$ t% n' w3 |: p; _0 y! j
' only opens unloaded components fully (see also PR-8406345)5 }4 L  |2 h- Q
' Workaround: collect and open all components individually& d$ |: w! z  W+ S
'& L9 _9 `/ [; x
Module NXJournal
7 V6 L" H1 G& v& [- U! D* h    Dim theSession As Session = Session.GetSession()$ W5 ]/ z" h" t* x9 [' r
    Dim theUFSession As UFSession = UFSession.GetUFSession()# D( J  O. B- n( B
    Dim dispPart As Part = theSession.Parts.Display
- _8 A; T% v+ P$ A  e
1 V  f! d3 {+ _) l4 S5 W    Sub DoIt()
8 d9 r: M( r1 U! i* k# l. s        Dim allComps() As Assemblies.Component = getAllChildren(dispPart)/ b7 c$ N0 ^, C/ f3 U
        Echo("Number of Components: " & allComps.Length.ToString)! y1 {& X2 [; [$ Q2 ]
        For ii As Integer = 0 To allComps.Length - 1% z1 F4 e) h* W* e6 `% j8 b+ Y) o% _
            Echo(allComps(ii).DisplayName)9 X( ^- X0 P3 k  M
        Next4 g: }" f# I' B- W

( U, f/ N# N; m9 R( a" v& q" F        Dim option1 As Boolean = theSession.Parts.LoadOptions.UsePartialLoading
2 y! G% F9 j+ e. X* w6 L        theSession.Parts.LoadOptions.UsePartialLoading = False4 P0 J2 u# S2 t5 i2 l" b
9 Q2 H: x) n4 r; S  c' B0 C
        Dim openStatus1() As NXOpen.Assemblies.ComponentAssembly.OpenComponentStatus
  N" H: @: `1 R  V" W, q! ]        Dim partLoadStatus1 As NXOpen.PartLoadStatus = Nothing
; \( d  k$ r. f! B" R! G        partLoadStatus1 = dispPart.ComponentAssembly.OpenComponents(  d" C0 Q' s$ S6 C
            NXOpen.Assemblies.ComponentAssembly.OpenOption.ComponentOnly, allComps, openStatus1)6 i, z% H4 \, [8 A

; n  \6 E! K. ?* x# ~        reportPartLoadStatus(partLoadStatus1)$ w# I3 H- F/ I8 Y% X
        partLoadStatus1.Dispose(). M; P% a4 T7 d2 G; O$ V6 E: H

6 y) R. f) p# J& Q. [& U        theSession.Parts.LoadOptions.UsePartialLoading = option1
) G1 h! F" U, i& L# t; S
) O* d7 }$ K' p    End Sub9 Q) b( c: n" J- ]: b
7 e3 h! P0 b  t" C2 D* b
    Function getAllChildren(ByVal assy As BasePart) As Assemblies.Component()
' Y" d$ y" S+ ?        Dim theChildren As Collections.ArrayList = New Collections.ArrayList
" t( G/ t& V( c        Dim aChildTag As Tag = Tag.Null6 S6 q; e8 C) h+ ^7 e0 m) X

5 b' F8 Y6 L3 D! e/ x        Do5 v2 k2 ~9 A1 G* {9 w% P
            theUFSession.Obj.CycleObjsInPart(assy.Tag, UFConstants.UF_component_type, aChildTag)5 c3 {: o% j/ R6 z" v9 m5 Q" o
            If (aChildTag = Tag.Null) Then Exit Do
" e, m% x1 j# d( f8 e8 X* y8 y0 _" s( e, F
            Dim aChild As Assemblies.Component = NXObjectManager.Get(aChildTag)* t( N- F3 _4 @9 `
            theChildren.Add(aChild)
9 y: [' S+ i5 i2 \        Loop
4 N/ ]" w5 u" ]! Y8 u2 y5 Q& A        Return theChildren.ToArray(GetType(Assemblies.Component))
" a6 t, g, B: J2 _8 K0 C( x+ `' R( |2 A2 {1 g! U5 _
    End Function8 g$ s  w0 o+ z: h* ]5 K- Q

) q- |% t5 s/ z    Public Sub Main(ByVal args As String())! d# J. b) u! I' n# E
        If dispPart IsNot Nothing Then
/ @& d* ^- E4 Q8 M1 ]7 M- Y  i            DoIt()2 F3 h. P9 a& s" J( X/ [
            Return
6 g2 {5 W. L4 V# h        End If
7 C& n+ s) I/ z: G' H# s& L/ x% ~: M" \* _5 a
    End Sub# D/ \# Y) G  c) q2 n+ b3 Y5 l

. D" h3 N+ T) [* M0 P* o    Sub Echo(ByVal output As String)* P, v6 X% }% L& k
        theSession.ListingWindow.Open()) |9 W8 ~7 x+ G( c+ r
        theSession.ListingWindow.WriteLine(output)9 {$ Y$ F# o8 L8 Z/ g
        theSession.LogFile.WriteLine(output); S2 C, v3 h! L1 d0 W  U
    End Sub
" @! s) ~9 W7 Y  {& D. q3 ~3 `  H. F5 G0 _" }
    Sub reportPartLoadStatus(ByVal load_status As PartLoadStatus)
8 J4 W9 o2 z7 M# D, W        If load_status.NumberUnloadedParts = 0 Then
- b6 u( l, u0 P            Return/ a( |: L6 s; c4 e3 S; D; ^9 O% s8 s1 L
        End If( }# n% T$ {. J4 a9 \5 F

& g+ o. `7 _2 a8 N! n: d' Q5 E        Echo("  Load notes:")5 s- n7 {. _7 _: S& ?4 I% k: p
% j# O" v1 m5 C
        For ii As Integer = 0 To load_status.NumberUnloadedParts - 1
" T% v! O! h4 t% q' ?0 T            Echo("  " & load_status.GetPartName(ii) & " - " & load_status.GetStatusDescription(ii))
( a# ]2 c3 y0 w" r% X5 I# q        Next
+ E: p9 B$ L0 W: P    End Sub- K. q# R( o$ t" ^8 @

- ]$ R( t" `6 N+ S3 Y! o    Public Function GetUnloadOption(ByVal arg As String) As Integer
1 n% K& G# W, F        Return Session.LibraryUnloadOption.Immediately% I" s1 n) k9 ]9 U& m4 q0 ], z
    End Function4 y% j6 H# @: S. e
5 h4 S8 c8 E. P6 N* _6 q
End Module[/mw_shl_code]
+ U' \& J5 `( R. |
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了