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

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

[复制链接]

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

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

admin 楼主

2018-7-27 11:00:30

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

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

x
9 d4 k; r' D" i

" S: `3 Q" c2 PNX二次开发源码分享: 如何判断当前零件的类型,很聪明...
1 W- t( s8 ^9 ^& [1 R" w. c% m' [/ x' n+ f. i

6 N6 U4 O/ y  K大体思路如下!!  ]& v- K4 G4 n
7 |$ v# @& l6 W1 F' z) U4 I

0 M- e" R5 g$ }   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};
4 w7 `( |; S  x* ?* v* O8 D  
8 Z+ c& F7 ?& ?  void DoIt(string[] args)
4 t4 F6 |* S- a$ X' n# I% J  @4 d    {$ y; H# [; g. }0 ]$ w
        Part displayPart = theSession.Parts.Display;# `/ S- c- r. n* _: C
        if (displayPart != null)
  _" r+ [# t+ c+ l& V' i) T        {
% `$ R2 W2 f* }$ J; l4 U( k            GetPartType(displayPart);1 W3 [, [4 I: J8 H
            return;
: u& i$ X# n3 w8 F        }
# ?: E4 K6 N( s1 }. H1 F
- L6 `. i0 b! a; N
$ ?2 {) J# f( K
        for (int ii = 0; ii < args.Length; ii++)
4 i. D! j' Q. w  R9 [6 w        {
- M; ?0 U# A. w; y" o2 i$ s            Echo("Processing: " + args[ii]);
5 \& |6 A6 T7 Y# v. t  C$ k! U            try
9 ^9 j! l  N' a# c  X            {
0 {3 o* \6 }- v+ v3 g                PartLoadStatus loadStatus;
! {6 }5 |" q. c2 a$ b                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);* f: _1 H; b/ e$ _/ u% @* H- y% j
                reportPartLoadStatus(loadStatus);
7 G. j5 j' f- ^" r
5 e9 k" E/ I4 q1 i

# e3 f" t  Y8 v6 R. Y3 w( A, g                GetPartType(displayPart);( F4 D, V) y5 P7 b. s$ |% b
, E/ u0 X* x9 E) g
/ W# j% @! a' u( \# P
                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);6 ?  D9 L1 @9 ^5 Z9 H* W" ^
            }
/ T; Z) {1 A" {! S: D            caTCh (NXException ex)  f$ B) }6 v5 y" {& E: N( Q# I9 n$ P
            {
4 N5 ^8 _4 D; p* Q( u$ D                Echo("   " + ex.Message);
2 e1 T0 _. |0 n+ S            }- x) M& q4 }; v* P7 y9 e
        }
: V- }  u: ?0 v. ?! }7 x" N    }
) N! P4 Z2 I- f( \6 \6 l* {5 g4 j4 X$ x" w& }
* W( _1 D' G/ H0 ?
    void GetPartType(Part thePart)# q3 D( D5 v7 P% W& ]  X
    {
1 L& {. w8 T) |5 h        int nPartType = 0;+ a$ T$ }2 [- o( ~( w6 M9 n2 E
' o& W  V' ?. l' i
2 v' a4 _8 P( B6 x5 y* E. v
        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;
& b  ^6 q' C# x+ Y) {        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;/ b& e+ Q; k3 ^1 s: ^
        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;1 Q" `, }- k; z/ K
0 N; _, a) g& l+ ]0 q* y2 k3 ~

! M- m; A. U2 N$ ]$ E5 Z! ~        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );
1 T) e# z* u! F8 @9 g; V2 X    }* E2 e1 o( M# q/ K4 ~# U
* s2 a. p1 m' a3 E8 @. b
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了