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 2171 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
5 `( ^" T% T( @2 xImports NXOpen
/ u8 k0 `  d( m7 d3 GImports NXOpen.UF$ o% {' S& k4 f0 t* r: G
Imports NXOpen.Utilities* I: l% g! g+ N2 g
'
1 c- A0 M1 R6 Z' The OpenComponents() parameter
& n7 ~- @; C7 y  a, m' NXOpen.Assemblies.ComponentAssembly.OpenOption.WholeAssembly
* T; J: G* k6 ~8 h$ G' only opens unloaded components fully (see also PR-8406345)+ i3 H, J1 E/ p. B% G- a
' Workaround: collect and open all components individually
1 i  a( J  M7 w& m- W- G'
/ X* x* \$ s9 ?) z4 A/ s8 QModule NXJournal
) c# j1 i* @5 Y  f/ [3 V" P' K    Dim theSession As Session = Session.GetSession()
: M; U. \& t! g& W    Dim theUFSession As UFSession = UFSession.GetUFSession()
" P/ q9 M" v! ^0 E" ?    Dim dispPart As Part = theSession.Parts.Display
  d& [7 n6 s! Q+ ^/ r
  q" x  g0 B! |2 E+ X! U: k    Sub DoIt()* O0 [& ?% M' s: n! l8 M: S, J  T: ~
        Dim allComps() As Assemblies.Component = getAllChildren(dispPart)
0 K3 j, l% e" i4 \) \        Echo("Number of Components: " & allComps.Length.ToString)- n* }- C" g" l: M, H! E2 m
        For ii As Integer = 0 To allComps.Length - 1
: @% f& _& a; v+ Y% c! @  o            Echo(allComps(ii).DisplayName)
2 a( d# W) M. R        Next! I6 S; m% u* `9 C, _8 X  Y! g

5 n' w2 D: m, k$ _6 I- k        Dim option1 As Boolean = theSession.Parts.LoadOptions.UsePartialLoading$ H# g. m- C/ G4 O/ r8 }
        theSession.Parts.LoadOptions.UsePartialLoading = False
1 _& o! `9 ?% M1 V
# ]5 [$ O9 K) ?: ^4 L: O+ Y8 z        Dim openStatus1() As NXOpen.Assemblies.ComponentAssembly.OpenComponentStatus+ e7 |* l$ u/ n7 P9 z
        Dim partLoadStatus1 As NXOpen.PartLoadStatus = Nothing  Z3 x* W: a+ ?' m8 N
        partLoadStatus1 = dispPart.ComponentAssembly.OpenComponents(- @) O' A( g, @4 L+ i1 r, k
            NXOpen.Assemblies.ComponentAssembly.OpenOption.ComponentOnly, allComps, openStatus1)
2 H( w  V  b. a. O  d1 d! ~, @2 H' u
        reportPartLoadStatus(partLoadStatus1)7 s3 H! F4 s7 `& u1 i/ F
        partLoadStatus1.Dispose()# n' s8 ~! f' ]9 B

9 M2 [+ i+ Y* c5 `4 l0 j/ l- Y( u4 s        theSession.Parts.LoadOptions.UsePartialLoading = option1
5 T5 Q5 o; r9 }2 p$ @7 g# q5 k
% d. k  v  B& Z1 m8 N! A    End Sub
3 z# z/ O- r8 |- E; A
8 u: _( b* W/ U1 ^4 @    Function getAllChildren(ByVal assy As BasePart) As Assemblies.Component()5 u! E; Z: l' |- j9 Q# G3 k2 H
        Dim theChildren As Collections.ArrayList = New Collections.ArrayList) K7 x9 N4 o8 n2 D& b- p$ y6 D; X
        Dim aChildTag As Tag = Tag.Null% h. o7 Z- [- \) \4 Y; p' C7 J

- N6 ]) F3 Q0 O) }6 v        Do* Y0 j8 |- n  q& m
            theUFSession.Obj.CycleObjsInPart(assy.Tag, UFConstants.UF_component_type, aChildTag)
* Z* z  U8 x; o$ C            If (aChildTag = Tag.Null) Then Exit Do- B% i* c! _- Z! G/ @# ?# Z- |3 Q

' b# ~1 ]) z$ a2 j' v* [6 v            Dim aChild As Assemblies.Component = NXObjectManager.Get(aChildTag)
" R/ [9 B" Z9 a& f$ F            theChildren.Add(aChild)
# V. }$ a( ?/ [# p$ O" d# o        Loop
( h* @( c+ m$ C4 v+ D9 W* A        Return theChildren.ToArray(GetType(Assemblies.Component))+ L0 Z9 s! w6 c4 a+ Z9 x. f2 h: T
7 k( Y+ a) @0 |4 F0 H* w- l; l
    End Function, d" X/ D0 ~. w/ {& t

  U, Z- ~$ ?- @: ?' m8 K% b; p" @" g    Public Sub Main(ByVal args As String())
1 j, ~) Y6 ~) l% R% e. z9 Y        If dispPart IsNot Nothing Then
0 {4 ]' B& S. o# d7 |            DoIt()
$ C# j% ?4 ?; @: R% ~3 K            Return
: J# M" Q6 w% r" w        End If
5 e4 Q4 Q' X7 B2 y8 s
. e2 {) p; M" w# e1 N( ^    End Sub
' G1 H- |1 e- J. z/ o: x' L  P; B2 J6 \8 y& J5 ?% k4 I
    Sub Echo(ByVal output As String), q: u. B2 u4 R7 h2 ?% f5 y, [, j
        theSession.ListingWindow.Open()9 d3 j$ I) ~+ O. p3 }' _
        theSession.ListingWindow.WriteLine(output)
2 t0 r7 U7 c6 U; m$ i5 n        theSession.LogFile.WriteLine(output)
. t' C. @% b( O' D    End Sub' [) o. F: C& }* F
/ \0 I. Z) _5 i, G' A9 V7 M
    Sub reportPartLoadStatus(ByVal load_status As PartLoadStatus)
% K0 l2 Q! Q* m, L        If load_status.NumberUnloadedParts = 0 Then
/ }1 U7 p2 b/ _8 K0 L4 B, i            Return
9 E% _+ H7 I' W; p3 r        End If5 `: R4 X+ C0 J1 l& Y+ x; m4 X
$ E% a; Y1 t& L/ D5 a- L+ K( {- @: U
        Echo("  Load notes:"), ^* b) A+ c* m8 p( h

1 _* G8 J% A* j: c7 J8 j; x        For ii As Integer = 0 To load_status.NumberUnloadedParts - 1+ O' u) a* M. r2 a! u
            Echo("  " & load_status.GetPartName(ii) & " - " & load_status.GetStatusDescription(ii))
; M. m9 O5 \( M        Next
# ~: s3 I" H7 c! Z6 U) y2 G7 d2 `/ }0 I    End Sub& A/ m& B2 N5 ?' F. |/ u7 t
5 S+ Z  B, Q2 ?% d, l
    Public Function GetUnloadOption(ByVal arg As String) As Integer
, M) g6 S, R2 @9 Z2 ~" L        Return Session.LibraryUnloadOption.Immediately) [0 d0 M$ x. n/ S( b7 ~- \: G
    End Function
8 {  f7 m! L! M) q4 L( C3 F4 ]! S  f$ \
End Module[/mw_shl_code]0 e  }9 m' D% p& A5 O8 F' x
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了