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

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

admin 楼主

2019-4-12 09:06:31

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

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

x
[mw_shl_code=csharp,true]Imports System0 {* W* y# V. f8 V3 a+ @
Imports NXOpen
! o& b$ C+ I7 {- q1 C' L: TImports NXOpen.UF
% B9 ?+ r5 Z/ k3 nImports NXOpen.Utilities4 u; q+ \( X" E& I. R% S: z6 \* o
'2 F. G/ P7 u  K+ x) H
' The OpenComponents() parameter
0 _. y2 T" I6 l+ T$ U' NXOpen.Assemblies.ComponentAssembly.OpenOption.WholeAssembly
( y5 n& J7 d) a' only opens unloaded components fully (see also PR-8406345)
) K; `# g1 o, x" @' q' s" x' Workaround: collect and open all components individually
; o: N$ {4 D' N/ ]$ l'- u  h* ~, T8 n) R# r) p
Module NXJournal
' w! r" H: |, I* ]6 _/ x% @# c    Dim theSession As Session = Session.GetSession()' r$ g; w: p, Y
    Dim theUFSession As UFSession = UFSession.GetUFSession()
+ U# H& r- n+ S    Dim dispPart As Part = theSession.Parts.Display
* G# Z, ]$ V/ E; I; N# J) n2 M
4 C5 h7 F! ~; [1 L: Q    Sub DoIt()
' F% b) D( }  {) P        Dim allComps() As Assemblies.Component = getAllChildren(dispPart)
" G8 t! E8 `" a. C: A* \1 z        Echo("Number of Components: " & allComps.Length.ToString)
5 u6 C/ B7 v$ {0 D9 v9 L        For ii As Integer = 0 To allComps.Length - 1$ ]2 w8 |, P- m) w; g5 p. h
            Echo(allComps(ii).DisplayName)
  r  S. C# V$ w( {* K9 w        Next
! H# B& C& T' F; K$ b4 X! t4 l
9 [/ z2 n% G% d        Dim option1 As Boolean = theSession.Parts.LoadOptions.UsePartialLoading0 p  m! C4 d3 U2 d# P1 L' f
        theSession.Parts.LoadOptions.UsePartialLoading = False. i$ h+ J# H. F; m# p; z2 |

9 w+ h4 q0 I# H( N& a+ ?0 ]  m8 B        Dim openStatus1() As NXOpen.Assemblies.ComponentAssembly.OpenComponentStatus- u7 f5 i- t# n
        Dim partLoadStatus1 As NXOpen.PartLoadStatus = Nothing
! \: q8 r2 ?& D% i; [: R        partLoadStatus1 = dispPart.ComponentAssembly.OpenComponents(/ O2 J: S8 ~* O3 m
            NXOpen.Assemblies.ComponentAssembly.OpenOption.ComponentOnly, allComps, openStatus1)
4 l# Y* H/ Q  p, Z/ G+ Z% n1 ^# F7 q* g  l
        reportPartLoadStatus(partLoadStatus1)
: u8 |1 S% f' i! w9 Q0 g. \        partLoadStatus1.Dispose()
5 ~% d! \: n4 G# d# N6 ]0 o  {2 R6 b& g& ^/ h/ p
        theSession.Parts.LoadOptions.UsePartialLoading = option1, l) K' |8 X) U

+ U7 N; Y- K' s    End Sub
% c. |) t# G0 c4 L  J# x5 b2 G, w; E
    Function getAllChildren(ByVal assy As BasePart) As Assemblies.Component()! i* k. q" M8 U2 m
        Dim theChildren As Collections.ArrayList = New Collections.ArrayList2 L5 \! `( D6 `" T7 ?  s; r4 ]
        Dim aChildTag As Tag = Tag.Null
6 f8 I# m! c2 w' e  O
3 l0 v/ I$ T5 M5 m1 i% W        Do
) c4 a$ O$ G! ?8 B$ y3 j            theUFSession.Obj.CycleObjsInPart(assy.Tag, UFConstants.UF_component_type, aChildTag)1 u9 K& k% _; }' d
            If (aChildTag = Tag.Null) Then Exit Do
! E9 m% y. \8 c- o; m9 T
7 V0 s5 t1 b: V$ v) a8 N            Dim aChild As Assemblies.Component = NXObjectManager.Get(aChildTag)
8 q2 x5 J- _6 {6 X2 @6 H            theChildren.Add(aChild)
  P* G' s' @* |1 D        Loop
! A/ v6 a/ w+ \, i9 v' K        Return theChildren.ToArray(GetType(Assemblies.Component))
5 G' o; T" g5 m, K
7 v3 `6 P  B* b3 N- n* @    End Function) @1 M% W8 A( b( P

* _' ?$ I( n+ _    Public Sub Main(ByVal args As String())" f# a/ r$ N: i
        If dispPart IsNot Nothing Then( |$ S/ d7 g' n' g* Z' x( u4 m
            DoIt(): N% U" Y' }- w: s) @' G& U7 l6 Z  u
            Return
  {/ g3 U' j/ w# d        End If3 _. Q) Y/ t2 t( u) m" P

1 C! ~6 l5 F& Q0 Y    End Sub
6 {; _1 l4 B0 @# d
  E( \) B9 M% F+ T' e    Sub Echo(ByVal output As String)
: s7 I0 w& D0 _        theSession.ListingWindow.Open()# |4 j3 N; g! I- G3 F6 p$ T1 {. _
        theSession.ListingWindow.WriteLine(output)* H! A& q2 y- h' w' N& i
        theSession.LogFile.WriteLine(output)% ]% ^9 t8 G9 U9 y3 Z
    End Sub
% Z" W- L' g, B, y' V8 x
" h% u+ S0 G) t5 H+ [$ w3 r    Sub reportPartLoadStatus(ByVal load_status As PartLoadStatus)5 i0 i3 N2 M9 c0 T) z# f' B
        If load_status.NumberUnloadedParts = 0 Then& m. O! A8 {. f8 M0 @; |
            Return
8 a% {( L, o6 Q: H        End If5 I& k' Y" w4 o: T% ~

$ Y) ^! d8 z* e# z2 j        Echo("  Load notes:")
# E1 `+ Y2 Y" n+ a, L% P
7 u* d6 e& m  ~1 d& P& A. \) j- E        For ii As Integer = 0 To load_status.NumberUnloadedParts - 1
0 I! ?6 i4 l2 O9 b            Echo("  " & load_status.GetPartName(ii) & " - " & load_status.GetStatusDescription(ii))9 _" z5 `* w$ D' M
        Next& Y6 `" X7 Z& v7 _* B% h3 {6 N) H) ]
    End Sub% ]+ V5 O- G' x. w) G3 {* D
+ J, v* _4 S0 _) d% w5 U4 [
    Public Function GetUnloadOption(ByVal arg As String) As Integer# D0 y1 b  {% H* }/ z; j
        Return Session.LibraryUnloadOption.Immediately9 e3 u& E( n$ N1 g
    End Function7 \3 Y3 s$ x$ C4 |

+ |( J! ^3 o) w: zEnd Module[/mw_shl_code]
& _- `3 p+ M3 L* x6 Z5 L
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了