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

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

[复制链接]

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

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

admin 楼主

2018-7-27 11:00:30

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

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

x
! Z, w* j5 a: X) T! V' p
* A' p* y" w1 n; u' }- U
NX二次开发源码分享: 如何判断当前零件的类型,很聪明...
' m$ w6 C; E1 L8 }( H* I) V. P
8 u6 N" d* Z( b1 F8 |4 {! |% C: Z  j

( T( C( }0 a# a  ]大体思路如下!!* @4 a% H+ p; F# z

$ n6 `+ A+ j0 G( b  o+ Z0 S& v: w3 I, S$ T/ ^7 |
   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};0 D4 ~' r; M, D5 z6 c7 B2 j1 F! u
  7 B2 D/ r; P9 H8 B/ z/ ]
  void DoIt(string[] args); V% w! Z6 Y  R: q1 e2 l2 q
    {- G$ e% C$ A/ k& _& _
        Part displayPart = theSession.Parts.Display;* e; W3 e, E& @! b* c- t: E9 X: n
        if (displayPart != null)
/ T' j! [% p3 }/ V) j& y        {8 T3 c& }4 E- i7 s  l) q9 k4 I
            GetPartType(displayPart);7 T5 w/ r4 a. F$ O' G- N# O1 K% D
            return;' B1 v8 h& y7 y7 m, U- y' I
        }  E* m8 j: V$ h( P6 L5 I
% K+ N5 Y  V& `$ {; j

7 m0 M& M5 x; ?# I& N        for (int ii = 0; ii < args.Length; ii++) - C! i. a6 u# y. G
        {
# \* l: Q) ]+ J5 S            Echo("Processing: " + args[ii]);
2 s5 F$ S: z9 d7 Q2 [# X( T+ U            try * t% p9 [3 ]6 W& j; g0 v
            {
9 b3 C! v7 d+ c- C9 Y4 x                PartLoadStatus loadStatus;* Q$ Z1 F& T: \0 D9 o
                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);" Q! g* T, d' c7 \3 K4 z4 F: ]) O
                reportPartLoadStatus(loadStatus);
( V7 x- h6 |/ h) O. t% ~% b  T$ R7 ?  y% A: K. `2 T
3 Y, j) k) L8 y5 g; D
                GetPartType(displayPart);0 d0 S( H" E7 U; u, a1 G# m
1 E$ e* J/ ^# b+ N

+ r. p! Y, g8 c5 V9 J                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);
- v6 G+ i& u+ q/ P0 ?' p            }
' m3 n5 w/ {" ?2 x; _            caTCh (NXException ex)
& `7 s/ z9 c  A1 w. j$ u            {3 p1 t0 M$ R5 V5 O# z6 C2 S
                Echo("   " + ex.Message);
3 W' }* e: o* y& E) G6 i0 N            }
' r% _$ \2 O( {# [        }6 B! m9 d2 O/ O1 j# Z
    }# s. Z9 C* i; i- C. a4 X9 e
! {8 @) W& V8 Z4 ?, D
) y! o; r0 Q0 Y" _
    void GetPartType(Part thePart)  X& s6 H% S- O/ n6 Q' Q: u( \
    {" E3 V  \) l$ ~% m# n
        int nPartType = 0;
; ]' a9 P8 u2 `& d
+ K9 d$ Z' x" F) ]0 L
! N: G1 c& p1 @) ^1 W. `! N
        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;0 `3 W4 L' t0 |  G' f
        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;
! q  _$ K2 l7 E  ?6 f        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;% z" ^& s- ]' ?

- F0 R7 S& }+ j$ d& q
& M; g# @: Z1 \1 K" S' B6 i& C
        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );
$ X% k7 B: }: i* a    }9 `8 O$ p  s& R2 j9 A

( p; z" F$ |6 |) P
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了