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

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

[复制链接]

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

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

admin 楼主

2018-7-27 11:00:30

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

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

x

( k0 j+ w  o, V  y; R2 y5 n0 }$ b/ v5 `% E+ {4 W
NX二次开发源码分享: 如何判断当前零件的类型,很聪明...
; f- A% N% @- N) l
  C- B2 Q+ N4 z( S# }" p! N
$ r2 L( z/ H) Z$ W
大体思路如下!!
* w" W: M; I( H7 ~
: i' Z# m3 Y# T. f, ]3 t" w3 c6 p; W# T8 F2 s5 ]
   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};& G6 T$ `7 S6 w2 v
  
4 @! o, u+ ^+ v) `  void DoIt(string[] args)
4 d9 k0 _# c' C; j' s# F    {
: s- i4 y/ H4 P# A2 F. E' r4 A. b        Part displayPart = theSession.Parts.Display;7 Q6 }7 K# G# d
        if (displayPart != null) 4 J/ @  e! C9 E% V* {) L" V0 r
        {2 N9 q9 R& D# r! _% |9 e4 B9 U( h! ], \
            GetPartType(displayPart);4 b1 d. j. t8 S& ~0 v  c
            return;+ u& H# g! D9 B4 `) f7 x
        }5 q) N% h' @8 ]! m9 n* c

  x, J4 F& n5 M$ d& ^1 Q

6 g, m3 @: `6 D2 ~$ v7 f# }        for (int ii = 0; ii < args.Length; ii++) + z- y. s  W% k6 F
        {
6 |2 q1 r( N0 R0 f- t            Echo("Processing: " + args[ii]);
' c6 e& M) p* M: R% y' q            try - {; t4 D: _5 B0 l* u7 P
            {( I2 H4 I1 K- H' E. g2 m) }& f
                PartLoadStatus loadStatus;; d, S: M0 N. t( V6 _% d, P6 \
                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);* ]" K3 Y3 v9 p$ z) o0 N
                reportPartLoadStatus(loadStatus);) i$ b( m/ Q" n# ~6 L& |8 g
! \( }" m- Z9 v

$ I% Z3 X3 z$ ^8 E' A2 s4 @                GetPartType(displayPart);
) B* _6 B9 k. o+ M. ?0 O& D. Y2 U/ F$ ^% }
9 j; E( o& |& J
                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);* n3 j! G, _7 R8 z4 m) w, @* @
            }
0 c5 Z; R6 x" k' h# k            caTCh (NXException ex)/ Y2 K2 n1 n( x: m% |% w, [' R
            {
, _( Z. _8 A# b3 r" d0 q/ }                Echo("   " + ex.Message);/ C. y# Q& V+ H! A
            }8 _! Q3 |  L, I1 [
        }
3 ~1 g3 V$ C' b. M7 T8 O2 |/ v5 b    }
* L  ~+ |0 V* M' K; t
& [$ q$ f8 R; J# ?
9 @% Y1 O: Q$ c; w) r1 {
    void GetPartType(Part thePart)
/ q" l4 B( V/ [7 G# w8 |    {
3 o- k: s2 Q6 D; T; L' g        int nPartType = 0;! e8 p) D/ V- P4 U1 y3 n3 P1 z6 {! f

; p: n. P* p# j. H: B3 |1 y8 [
9 k4 A1 K& U. P# G" e
        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;
2 H$ t: b0 k6 z- H; \, z        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;
' e) p! t+ q' v& a0 M/ U- @6 O        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;
: G4 n2 e+ T/ Y+ j& X5 L& `/ u0 m/ j
; t. Z1 }! ^: g4 H/ q7 r
        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );7 Z8 t: P3 V. c$ U' G& Z% Y3 ]/ S
    }
- n' @/ P5 X  ^/ W
2 T# Q. M0 m; S& K' a2 [  [
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了