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

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

[复制链接]

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

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

admin 楼主

2018-7-27 11:00:30

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

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

x

+ E  W  Y6 ]% B& j7 F( a. l- v# T# k! \9 M* I
NX二次开发源码分享: 如何判断当前零件的类型,很聪明...& ^) c& o( @! K
( Z0 R3 @3 ^7 m2 h* v0 p+ t8 h

% d. o+ C! R* u5 @' P; J大体思路如下!!
1 Y7 W% {: ^* e8 A3 C" b5 M3 Y: ~/ \1 g# X& U1 z+ ^/ A8 W0 k' p4 g
) c5 n' b+ @) ^7 a& |: ~! W5 D
   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};1 W. Y% x& r, ]4 c8 s5 Z
  
7 K5 Q6 x6 Q% z! Z- e* E2 g" @  void DoIt(string[] args)
" U% Y) q1 I& Z/ h) d6 e6 m    {! q5 @& ^1 P  `% a
        Part displayPart = theSession.Parts.Display;& [+ x( @$ S1 C. B
        if (displayPart != null) 1 z/ F2 G% b' U, @/ {7 F
        {
7 ]# h0 Q5 ~. Z  Q            GetPartType(displayPart);
+ y7 v# N- B* V  b' J            return;
3 u$ I' i4 ^7 K: ^* Q, W2 {        }
  p: s5 _. J' m" y% q# W- c$ g, a
" L8 M/ f2 Q1 r/ l8 {3 L$ V

5 B- j2 \" K+ G8 L+ d6 p        for (int ii = 0; ii < args.Length; ii++) 6 s! p1 C$ }: ?; v4 a
        {
6 k$ [0 T0 y) o! I" |1 C* H5 ]            Echo("Processing: " + args[ii]);
. ]! |$ s4 L! {7 L" r; w            try
: c! E# h( v( b" Y, p  e; M5 _- Y3 d            {
, r, Z% |0 e& s                PartLoadStatus loadStatus;
8 A6 c6 x9 f, `                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);# L  G7 L2 Z/ |- l: ?
                reportPartLoadStatus(loadStatus);
% g6 q: @. ?8 G2 `8 t. y. W+ x% B, S% D. s3 j! \( Z4 R
8 q/ F( n/ X9 ^# Y
                GetPartType(displayPart);2 J. H' A1 U! f0 h7 D

8 _7 X! q  i( n# d+ E

9 {; ?% h* G4 I# O( @2 p                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);. S3 A' h4 l* }+ }& n5 f1 Y
            }4 Z2 V5 o1 z/ a
            caTCh (NXException ex)* k$ a( l3 u% J) K' q
            {
. a6 l. v, X% B/ U% a5 o5 c3 }* e6 B                Echo("   " + ex.Message);
7 D  m& ]  Y* Y4 V/ J            }
! M0 S6 L6 Y6 F4 w5 _1 ^* D) [) H' N5 B        }3 A4 |/ s9 ?* R2 \9 y6 _
    }
- |5 d- o) v3 a3 ]
0 u& c: J- Z) D3 j) {! t+ s3 z- z. d

& t8 |6 d2 {- v. l1 j7 r  `    void GetPartType(Part thePart)
! ]" c, S& d7 n: a7 ~- \: ?    {' ^4 f2 P9 m2 d; G* o  q' @% H
        int nPartType = 0;
0 V3 n+ @) G) E
+ E& x$ B4 v% W, ~1 u2 E8 v, ]
+ \3 r3 ?# R/ A- Z% k1 s
        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;
) }& |* J* _" G9 g* i& I        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;
/ [+ j. x. t& O/ b9 U        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;
6 J, j1 X9 o% k+ f) t& \$ [% t( ?3 v
$ `9 T* [4 N& L. Q. d8 V
        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );3 E3 `- S7 ~/ }2 R
    }
% R. T3 }/ K: {$ J# {6 |4 e+ p
% ]4 V3 R& K$ f, L* P8 }# o
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了