PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2018-7-27 11:00:30

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

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

x
- I& g) N4 m! J

3 j0 z) u' o; KNX二次开发源码分享: 如何判断当前零件的类型,很聪明...
1 Z+ y/ x1 ?; l+ ~/ e2 g: k
9 L0 T8 b8 o3 m  w7 F# C
- T% r+ x7 Q$ @/ F6 g! w; R
大体思路如下!!2 [1 l4 I2 q4 p
* ]0 R! h4 O9 A* G
, G/ w+ [8 g1 J
   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};: h! Y& ^# F! W: |
  
* s$ J0 Z; |: X9 m+ v2 @  void DoIt(string[] args)' R2 q& L- @& W+ r' p* q
    {1 ?1 t, |2 p" e) [. b; g& u9 G, x1 y
        Part displayPart = theSession.Parts.Display;
" S) ]- d# s7 ^        if (displayPart != null) - d' x3 s/ X: D8 D% x/ F
        {7 k+ `0 W* p* M- K
            GetPartType(displayPart);
; S/ s/ U* Q6 c9 I+ A) A% B) t1 T( H* w            return;
; O8 v7 }5 ?) m2 M" [/ b        }
; a( g" |9 g* t* o- q! F1 r* p8 _

$ H3 {4 |% \$ Z* S& M        for (int ii = 0; ii < args.Length; ii++)
2 F) P4 v( P$ k9 H+ v        {' }# o1 v0 C, \7 r1 x
            Echo("Processing: " + args[ii]);
! l3 }. F6 D$ I" Z5 l3 M- |' I            try
$ o- z, m# q1 c            {
: V; }! K& G( ^4 ?- a                PartLoadStatus loadStatus;
1 g  Z7 d) y( C                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);; ~+ O/ L& s6 ]7 Z' x* W+ p1 E
                reportPartLoadStatus(loadStatus);
7 i5 ?# X6 w  l7 n. u6 X' w# W+ q& g# [1 K1 Q$ J1 z
+ W* m/ a' Q4 O3 g+ Q6 x0 a
                GetPartType(displayPart);
5 s* G. \) |( `0 n8 R. z
  A8 r' u1 |$ V- k. N7 P; J4 Z
# k, e. ^% D3 h' \1 q; d" C
                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);" G0 x: I& h! p* V  i
            }
. T- u  ?6 q0 ]7 y            caTCh (NXException ex)" l5 k( a: S0 I; I, i) }
            {
" M7 ?6 h2 g" a, N+ L                Echo("   " + ex.Message);4 z/ x, z+ y$ G3 N
            }
9 b1 l9 I( n1 ^" J        }
- r' y7 J6 s' |6 @- P$ L2 N; w* G    }
) j8 M2 T- K+ _- ^& O0 q+ e7 _* T, n/ t) r: |2 o7 }. P
+ \, X0 i! v; ~" A9 K
    void GetPartType(Part thePart), X8 w% V: d- H; ?& T8 a
    {
0 e6 h1 D' F6 \, W* J% c4 R* y) v. @        int nPartType = 0;6 b+ m7 }) K& F  H% }# V9 ^# M8 @

7 _' H  b. T( }9 T2 [5 h  |9 H
* ^) G: z) V+ [- {: W+ l& ]
        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;
  k6 W( g; B/ ]5 \; n  P        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;
8 _8 g2 e2 l8 p8 E8 ]5 V2 U/ C8 f        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;* k  u7 \5 f2 u0 `5 ?9 A' g. i- C4 R0 u
2 P( X) O# \7 |4 A8 ~, K

1 [9 m0 |( ?8 v! R) o* H        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );0 i4 Q6 B7 J9 v% L1 B6 u
    }+ q6 ?' J' M" S& n% y& S: e

, F! Y& {! h4 d* R3 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二次开发专题模块培训报名开始啦

    我知道了