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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x

7 ?/ Z7 P, h2 W# z( D. b
* |2 I& U0 N4 c7 ^: d( p+ zNX二次开发源码分享: 如何判断当前零件的类型,很聪明...
2 \* J  W2 k1 j& E$ `7 c  ^$ A- N! z

8 A/ o& H  s9 U, ?' k/ ]: P大体思路如下!!2 T% P" v# [1 e$ o* c; _

5 H! i% `$ |# g' N4 L, R/ R
3 {) D0 ^" ?8 S& U% f3 H, ?   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};: Z, e3 e: N1 d* e7 y, K7 [5 g
  6 Y' C8 k* c, E) {3 I: a) _
  void DoIt(string[] args)
- W" B+ Z' e. P9 E    {
: o- u) b$ a+ K; G- \/ Y        Part displayPart = theSession.Parts.Display;
' b5 S% [9 F7 }6 ]" b8 f* Q        if (displayPart != null) + ^1 D) W# j" s2 s1 B
        {+ S9 W1 W% z6 N! v
            GetPartType(displayPart);% b6 ?1 P$ O# i/ e: V9 l, w* q  }) @/ F
            return;4 e7 e* t$ B) h$ m( X  f/ m; H
        }* X3 Z; ?$ c, n" D* z' O

& n8 Y* l# _. ^+ U; O+ u- F% t

8 o  L  ~- Z5 }1 {% |        for (int ii = 0; ii < args.Length; ii++)
/ M& h; V% L$ t. T/ I% q        {
$ E/ V0 G' F9 R8 R( k            Echo("Processing: " + args[ii]);
$ e8 \2 E# r: n( f3 ~            try
6 ~& o+ g/ ~! R5 \4 D# h            {1 |+ h  E" V% z+ P
                PartLoadStatus loadStatus;! X& I$ N1 C) H% @" q
                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);+ Q. N# H6 W$ j6 e$ u1 k! I/ @
                reportPartLoadStatus(loadStatus);& [9 U+ a1 [1 \2 B

; I% ^' |5 D! }2 K2 b" L
- C: w( z1 A. w( Z: J
                GetPartType(displayPart);+ M+ n7 N# `1 ^: e/ h* \" {
( O" O6 k6 z6 }& v/ d. N; V

) J: V. g+ \4 w% i" [+ S$ |1 P                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);# l' t+ ~' c3 H5 O+ Y9 @  ^
            }
, P$ m& e# u6 J4 O9 a  d            caTCh (NXException ex)
. \, \  N. w: ?; c; ~) k            {
$ Y: `% z9 B6 o                Echo("   " + ex.Message);/ P6 D( T# m2 H# z& p. |
            }; i+ j6 ?4 d! w( W% ?  B( q9 d
        }
4 V% T  d$ p! b- b  u; y4 V5 B3 B/ q    }! i- f7 Q6 s# l) K
* B# \9 u% i, n9 [8 v
1 G8 h8 H( Y$ Q+ _) G* ~
    void GetPartType(Part thePart)2 V. |7 X3 h( k! f( |
    {" M" S7 z% H9 P. D1 h% u6 X
        int nPartType = 0;% S! Q& Y" M0 Q' R1 t
6 U: p. O# R/ \: E

9 h6 j  [% e( H3 p        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;; J$ S6 ~# u4 c' T4 e& M8 B4 K6 q) r
        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;; A2 E" q% _5 I9 z
        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;" Z/ p( t  ~# B* m
! h5 C& [2 Z1 R0 o# s
+ [1 D# a2 P% i& ]+ ]
        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );% b- M' X! f+ d5 ?
    }
  P: G# Y" V  X% d( F) V* J
  t: J/ V$ w% w& g8 e/ `; i
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了