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

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

[复制链接]

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

admin 发表于 2018-7-27 11:00:30 |阅读模式

admin 楼主

2018-7-27 11:00:30

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

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

x

9 T- b7 T1 n% _  n( a' R9 n9 ~  |3 {$ r5 K2 X
NX二次开发源码分享: 如何判断当前零件的类型,很聪明...
+ X3 c9 ]# c; t* b  ?7 G
  |* I3 l* p9 r6 e: }1 Q
0 y) t( J" y. R6 L) f$ Q0 m4 {- Z
大体思路如下!!
2 s3 g' Y- n; q1 k/ l# F  E9 p4 t! G4 K) Z) C6 i) t, K

. O& b, f3 G/ z$ N   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};
2 s% S0 ]% p% W5 l7 @) R  
& O& q* ?5 \6 Z+ k+ |  void DoIt(string[] args)
4 U$ L: f6 O8 g( k9 J    {
4 g  E0 k, ]/ ~) b: \1 {$ h% @        Part displayPart = theSession.Parts.Display;2 U7 l; w& I1 M/ P' O( E
        if (displayPart != null) 4 _4 }6 g) R- `6 w8 n8 ]% F& y
        {
' @9 q+ Y& a0 H4 r: d( p$ ]            GetPartType(displayPart);
: J& |6 a& {' I$ f" L1 X            return;8 F; V: p0 Y( U$ E" T1 r
        }( O. G. d5 p$ f$ b2 r
8 O# Q+ ~" T  M7 v# Q
+ d1 c1 a" J, j! w. c' |
        for (int ii = 0; ii < args.Length; ii++) 6 }" b, n% t, j- \5 O4 G7 Q* W
        {* q) t- A" \, ~, q& F
            Echo("Processing: " + args[ii]);
" q# \( [6 Y/ _8 J, P4 X6 d            try 3 [) \0 S* i2 M1 T  y! ^
            {
5 C% B5 O4 f2 k) H, D                PartLoadStatus loadStatus;
. D# w/ s2 U% o5 k1 l. C                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);
6 ?0 u" a) p' a( w) Z; q                reportPartLoadStatus(loadStatus);( m  h; y2 B3 k7 W; h# I

1 P) ]" f' A$ x) \" w8 M0 B
9 f$ Y3 ]# `, m- F% x6 S8 s, J! x
                GetPartType(displayPart);5 R' M- Q/ K0 w8 b

* ?/ I8 W4 C9 l6 {! F; y" Q9 v
/ G, y: D  h( N' G
                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);- L2 g8 I' X0 [+ G4 Q
            }
* s' {' @: B- |  {8 |2 z            caTCh (NXException ex)
* r3 X8 z3 ^/ z            {/ M# d5 g+ g9 G+ Q6 |
                Echo("   " + ex.Message);' i/ d* c  Q9 T3 ~
            }
+ b* d& f2 l7 m; s/ D) Q        }
/ o# w( b3 C2 z2 H! }    }
/ [( r( T: d! e* d! J+ V0 S  S
6 G- {- a4 k- t( A* l
2 T& `7 l$ G; q
    void GetPartType(Part thePart)7 R% r( t, U1 b9 ?! z! U
    {
6 ?# T* x4 H/ h/ N5 E' ~0 v2 r7 R% E        int nPartType = 0;
) B9 J: U* R  l9 b6 [4 b4 W/ `5 U6 I: n- f7 s9 Z
( X% X( P0 z2 r
        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;& [' I- @5 |  \: d5 K2 \: C% l
        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;
1 ^6 c- \. G, x% q4 ^        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;  _4 x0 }6 I/ y9 |
7 W! e& ~9 |% {
; o& ]3 n! v3 p$ P$ i- R  P
        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );: T4 z: F8 m+ A- w& A
    }4 b3 F$ b/ d; s* F) W" j
+ Z* Q9 Z5 n/ m, @- [
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了