PLM之家PLMHome-工业软件践行者

[二次开发源码] NX二次开发源码分享: 如何判断当前零件的类型,很聪明...

[复制链接]

2018-7-27 11:00:30 2279 0

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82170
QQ
发表于 2018-7-27 11:00:30 | 显示全部楼层 |阅读模式

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

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

x
! A9 I9 J6 m! V+ z' u

- f9 q5 }2 X/ }/ g0 iNX二次开发源码分享: 如何判断当前零件的类型,很聪明...8 P# N9 R. j4 U8 N7 J. a1 T2 G

/ X) `8 l  a8 l8 K* c7 B+ C" d

8 h7 s# y6 t- X3 V) ~5 D大体思路如下!!8 q$ t% c8 H8 ?$ z$ a/ `

+ w  y1 l# Q  |, i1 R
' m4 {$ o5 N' I; {% ~1 T/ C2 a   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};
: @2 A- B, D+ \; a$ w    F8 Y/ B; p/ U8 _9 M6 Y: B2 p
  void DoIt(string[] args)
+ T) l, d# s8 K/ T1 i    {4 C: I) `3 o9 o3 `: ?
        Part displayPart = theSession.Parts.Display;' y$ P' D0 {' R' H% R( F2 j5 g* G9 ?1 U
        if (displayPart != null)
, q. b; v$ Q9 j/ }; {1 A7 ~        {
# _% ]: z7 [. x" C" w            GetPartType(displayPart);
* B& k/ d0 q5 a9 g            return;' r2 h2 g7 c& O9 p' g8 P
        }) E4 @8 @/ k! v) I* a7 x. F

( u2 C# }9 K3 H3 t7 X8 S: Y

6 j; {% e' d1 F  ~$ `5 H5 V, q        for (int ii = 0; ii < args.Length; ii++) ! j  r) N4 V# R/ ~  H
        {
0 Q" O1 ~8 p0 H            Echo("Processing: " + args[ii]);4 D" D& [0 E! b% h, c
            try
+ P$ \/ ^( v; X) Q2 J* \! v& M            {
  N, o* R, I. F% C) q                PartLoadStatus loadStatus;
  E9 b! d) F  X. a6 B                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);' i- J7 }' [/ }( N2 F  N5 R' s
                reportPartLoadStatus(loadStatus);6 s, I' ]2 i! K' Y& b

( v8 f0 |# x0 K4 j1 g+ l$ [% ]

" d# k& J7 ?3 W) V/ o' j                GetPartType(displayPart);$ Y/ ~: o/ k' A

$ `1 a5 e/ A: u, A, v; n* Y+ V

  X' E: p( J6 }/ S5 b' n' E                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);
1 M* ^' O# h! {* Q            }
1 L! r  f4 g4 d2 L, b) L2 O) ]: f            caTCh (NXException ex)
! z1 x" ?% _) p% ^$ C3 E            {1 v' P6 \( X& R' L2 F# d
                Echo("   " + ex.Message);
& K( l( r: @% L2 U* R            }  ?. u, C' c3 x+ k% \- C
        }4 E) K& L: ~( D" j# ?# k
    }0 j+ a4 C! q7 l8 z( x

: T* @* D, W$ a2 \' Z: Q

3 O, E' y9 r; U3 Z! R6 k" y    void GetPartType(Part thePart)
% [" V8 b) q( s+ n5 i. B    {8 H' @' d/ M2 v  x: g6 V! `  v
        int nPartType = 0;  Q+ V/ a! x5 S5 I1 d+ b
' Z) ?/ i, _9 Q2 |( ?

$ Y2 y, T+ ~: }. h0 S: y        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;1 U& F( `' ?( _
        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;7 d- ^9 F) s5 g2 p. c
        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;, ?$ [5 F2 t  e+ D" t" [0 M+ Z

( L" ?9 b3 \- u+ X
# V: Y9 I. K6 G
        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );
) ~+ I! V" L, k+ o1 L4 f) `    }
- z( Q7 [% |; J9 {, l: b9 H6 [& T8 ?% }! s! J
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了