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

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

[复制链接]

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

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

admin 楼主

2018-7-27 11:00:30

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

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

x

" A! l1 ?( n0 G7 {) Z- q5 S3 H6 R7 s9 d
NX二次开发源码分享: 如何判断当前零件的类型,很聪明...: w3 L: |2 X* N2 L
: ?, t. s% e+ M, A5 e8 G2 V* }

3 X; F2 x) I& b( G8 D大体思路如下!!( z  T7 G3 @9 C4 l* a; D. O

! |7 A6 q" Y  D! ?& e+ |) n; H9 j
   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};3 K' e7 W4 V) ]  D  H. P) A
  $ c' C1 v% x* c/ K. a) b  v
  void DoIt(string[] args)
2 Y$ s, I- t+ O0 k. W/ P5 c* T    {
! I0 f& g" a* k. I1 y        Part displayPart = theSession.Parts.Display;: g& o/ k$ O) x! I+ ~8 s
        if (displayPart != null) " i9 g  }0 q% ]* {
        {
3 |' W# h; u4 a1 ?- o            GetPartType(displayPart);
  S; Z" X. M6 t6 H* d0 A( R            return;
, U7 v5 ]1 _5 y1 P0 _        }7 A. P' U9 S& o" F7 @
2 e! |; V9 A. q( G  ?- G+ k
% F% K  [' t5 J4 V$ I* O9 S0 Y
        for (int ii = 0; ii < args.Length; ii++)
* B+ n3 o, ?" j# \" ~        {
3 i( `, K( q5 F+ p$ B            Echo("Processing: " + args[ii]);
7 E+ y+ W" p3 ?4 y! n            try
. B  L$ z& h9 h0 U: t; U            {
8 D% Z+ E+ R1 Q/ T1 U                PartLoadStatus loadStatus;
+ i, ^9 W1 `) X4 q" ~                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);
4 l" z; V( l8 \                reportPartLoadStatus(loadStatus);5 h- ?5 y  Q2 z5 m+ [' U
' \! _. O5 E  N6 w6 V! W7 B1 P  t

0 C8 a" t4 L' E+ \+ O1 ^8 }                GetPartType(displayPart);
! i  @4 A& X" h1 g/ [
( s$ e+ Y! G9 a

+ x! J& w' X% ~/ j                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);
$ r; j: u3 y8 f' j! N" h4 r9 }            }, o; c+ S+ B  L) m3 y+ A5 G: ~
            caTCh (NXException ex)
2 f1 C$ E0 M, J& L            {- F0 }3 A5 m5 i0 P3 u* }: N5 _  u& L
                Echo("   " + ex.Message);7 A0 H' b6 ]0 E4 W7 @$ H9 i" L( S
            }
2 K& {7 y5 B( M8 m- b0 h        }
$ M* R4 G8 z. C4 Y    }6 y8 g5 U" p! [: M4 c& G
) \! p4 N- o6 g" c0 l( V0 s0 ^
; v' y* o% }& C. j
    void GetPartType(Part thePart)
5 A  E9 X3 h; {: d; P) f    {
, G& j6 A4 l2 J- k        int nPartType = 0;, F( g1 w8 D5 O8 R

; `; T( a" z( r) A

1 u8 j4 d' q4 D5 r( s) f) s        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;
' ]& ^6 d* ?3 ~) F        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;( {" s8 Y. l9 T! j. w0 v( A
        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;
' N& @5 k0 T( l4 t/ d+ H' J  y+ S  {; c- T2 D( l

- `+ O( p) b1 b2 L# q        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );
9 M' g5 i) L4 Q  `- P  i9 W    }
* b3 f, x& v' q0 H) j' n
4 z6 P$ F9 l  j6 ?+ ?* 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二次开发专题模块培训报名开始啦

    我知道了