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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82170
QQ
发表于 2018-7-27 11:00:30 | 显示全部楼层 |阅读模式

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

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

x
. w$ `+ u+ w1 C- X9 M" V9 G4 S& `# o
" H' z: i2 ]  f& {* N% k3 S5 v7 ~9 y
NX二次开发源码分享: 如何判断当前零件的类型,很聪明...
! @$ k2 S1 I% N6 n6 F7 t7 h" [0 K/ r7 x# q
8 ]4 r, h; o* ~% o& M: j6 U6 X
大体思路如下!!
. i, a( h; B6 H; M' u( l( |; x! f' N, k0 p: j
7 o. J( p" e3 p+ O. ]
   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};
' l9 K* y9 Z& l  1 f- q- Y) G, T6 \5 d
  void DoIt(string[] args)" _1 g: @. Z7 A' q
    {; B) o2 O9 I4 ^9 U( N5 F* P3 o4 P
        Part displayPart = theSession.Parts.Display;: u; Y$ w% w+ k7 n2 O
        if (displayPart != null) 5 e+ z# d1 I5 Z& \, d# x- D4 e2 I
        {
2 b; p$ p- C6 d/ g3 i2 u* r% C$ n4 f            GetPartType(displayPart);
5 @' b) T  D8 N; o6 q3 ~. z/ k            return;
5 N. S: s! K2 r  @) \" ?7 [4 o  M        }
; e! x& s. s3 e$ w4 D1 b  e9 M: d) ?6 x) M9 I: S9 e2 O1 |! e1 \6 T

8 P4 R, K* f  ^" ^  T$ v5 j        for (int ii = 0; ii < args.Length; ii++) 5 _! v' C( \. [! B8 |0 _
        {2 }( D; H  @$ y. v- W
            Echo("Processing: " + args[ii]);) P3 o- M3 o9 Y8 [6 v
            try $ h8 ~" k. S( l
            {* s- B) O6 ~5 b
                PartLoadStatus loadStatus;4 R& w6 E! c5 _
                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);9 J0 Z- u  A5 s! h& U$ A
                reportPartLoadStatus(loadStatus);8 q1 I' L+ ^) f; {+ V+ V( b

$ a& f1 F" |* t3 x: g
8 L4 L4 h$ h/ Q9 n* i* e2 r
                GetPartType(displayPart);+ B0 X2 R* L1 a/ c8 A

% B( s" w1 j% s; |, ^0 E
% M! h$ E1 s8 k
                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);/ [7 W/ j4 O4 w8 x
            }
+ {# e- f  |& w4 y3 K7 T( m) M            caTCh (NXException ex)2 Z+ d" a* ~% l" p8 ^- C) b* ]3 Q
            {
$ x5 Y( Q1 N5 V( F$ M/ O8 z$ w  _  j                Echo("   " + ex.Message);
2 @; A# U6 B2 Q            }) j& k& u! S0 X% @+ {+ j" t& [6 Y4 q
        }1 U, P# I* z3 P1 V0 ]! q! A+ y
    }
7 m/ N9 J" J$ q) ^; r0 H; C7 o
- J, ~6 i8 T; A0 K

& S5 \' S& y4 [, `    void GetPartType(Part thePart)4 y+ j# i, T+ b5 K! F% ^$ c! N$ Y* t
    {  v% N# R0 _/ O1 O: k) n$ d
        int nPartType = 0;; `2 {( z: J8 b  M- T' h
5 x3 I6 i4 s! K! s/ B" t4 W

& J( N1 u* |+ j& J" x4 w) n+ U        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;
- ^7 y% m5 R* D8 O        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;' t4 g+ @3 w: Y1 r3 b) w/ c$ ]
        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;
; t9 r8 S0 E+ T* i
/ i% M' c+ P' S5 l

# a% @+ d& Y' ]  k$ s/ w        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );: ~/ V6 e! k$ K' N+ g- b6 M) k5 e
    }% m1 \4 @0 D; Z; O  g& s

1 q- B4 V9 z2 D4 _$ O- ^
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了