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

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

[复制链接]

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

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

admin 楼主

2018-7-27 11:00:30

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

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

x

& D2 r, g& \" z3 K- O
) m+ N! R0 ]; o" X  i' @. R( h$ eNX二次开发源码分享: 如何判断当前零件的类型,很聪明...
% B* [1 [  I) |* P" ?5 r
" Q" |8 p; X1 v/ K) |* P
* I# S: @$ D+ g% A! ]* z$ X
大体思路如下!!* R1 _5 _: d0 s+ Y& T7 L
* r/ Q7 w& z5 O+ b
5 Q4 N3 i- s* B! O
   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};
. ]) V) @4 f& I. j( t7 p  * ~' h( Q- w9 [* }7 t0 c  V
  void DoIt(string[] args)$ H" W0 Y- m& T+ `& L" x; J6 a
    {& H. a& `+ r2 |9 ^! g& T
        Part displayPart = theSession.Parts.Display;
. M% ]8 N1 d1 V7 o; x: L+ O        if (displayPart != null)
! ]5 D2 v+ v. w( S9 a- X        {
9 s. E% m0 v7 h            GetPartType(displayPart);& T# C0 C/ H2 o( W% d
            return;
- a9 _! Y: b/ H! v- W        }7 \7 X6 ^; L9 }* [* m: V, t, ?. g  ?

: J! A$ i( X0 z1 n
3 Y( X. U1 A: C% O5 Z7 n# l
        for (int ii = 0; ii < args.Length; ii++) . J) n0 l  j- d, v3 |# N9 i- }
        {
7 ^" ?) Q$ J: [6 t. _! d1 r9 x            Echo("Processing: " + args[ii]);
: k- A& e( q- N& }0 D            try
2 K, D3 }. j1 L  U            {
) C2 i2 D' T+ p8 \8 I& f                PartLoadStatus loadStatus;& d& f7 D! f, U0 b+ f0 |& T
                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);
6 ~. y8 G. n# B) t6 V                reportPartLoadStatus(loadStatus);
9 ^' y* f& Z4 F+ Q+ B, @
  l" h6 u& V% j& Y
3 Z2 P  }' F4 i. ?( z8 X/ Q
                GetPartType(displayPart);. s& S. P' o# a* d! b7 H2 a
: O. n" e1 f3 y9 F
; ^, \$ C7 T7 R
                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);
' d1 q3 s7 {- K. s6 I2 F2 N            }/ z" y% ^, d; Y" {" U8 f6 v6 |' z5 C
            caTCh (NXException ex)
, F9 c  ~/ e7 t4 `            {
8 j$ x$ X& {3 G$ l, ]! t5 S7 W                Echo("   " + ex.Message);) e- Z/ }, P1 [# Z9 I6 l
            }
+ e9 e; |# i8 N! E% B7 v        }& J! I- H$ w5 T
    }  e% ?( l! h" I' W

6 \9 m" V9 Z1 L
) \* f. J0 M% U. z# F
    void GetPartType(Part thePart)
3 A( [+ q( i! b' f% J4 k- l0 u    {1 D. W% P" P- q3 d
        int nPartType = 0;! p, i: ]2 m" f) _8 g# S$ E
+ [& ^; F# n2 s- W/ R+ p6 z; f

9 I8 [& `3 R- v$ h% g6 I$ l4 c        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;
# ^, p* i9 [9 V        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;
( X' P0 i: @: \) f) W2 s- q  r* D        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;/ v- C, q6 B- w, w

3 |+ _* _( y0 m& X

9 e* H8 [$ d' `$ }$ a  \9 C2 [        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );. F! G, _9 ]! i* B6 v
    }' r5 C+ }9 X# M- J' G$ @& ?, b
2 [. g  d7 Q0 a: v, U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了