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

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

[复制链接]

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

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

admin 楼主

2018-7-27 11:00:30

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

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

x
# v0 ?7 K. p  b4 @

, i. \9 C+ A8 ^& a- d& r, f4 F! }NX二次开发源码分享: 如何判断当前零件的类型,很聪明...* S6 m1 z( C& |/ ?, o2 l5 c

3 Q- }5 r( v! t3 u

& p1 \0 V% m8 b4 K, T大体思路如下!!
5 \7 E* k4 a3 j1 f/ l9 W, s
" v8 p8 o% K* I
$ {9 @# G$ r! S+ |6 ]; J   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};
, i" j% {% V% I, c/ p; `  
; A* t( g) V4 |' b+ T) D9 I  void DoIt(string[] args)
, s# S( @: X/ ]3 {: [$ e    {( q) t' g8 a& S5 j1 l, Z5 t
        Part displayPart = theSession.Parts.Display;
& `- l5 B$ L6 X: |5 W  j        if (displayPart != null) ) g- O& c5 ?  r  J9 }7 {: P2 H
        {  g4 v# ~1 v8 U* J7 u. c
            GetPartType(displayPart);
* j1 k7 R4 E2 Q0 r2 @+ @            return;
# [. ], K" O+ }% d        }
' D& x7 e: i9 w4 x7 v' Y3 @) i' O- d8 C. R& W9 o5 D' |2 ~( F
- k" S  w3 r( Z! `, E# W/ C, n
        for (int ii = 0; ii < args.Length; ii++)
# K3 b. V( z. G5 Q# [3 |        {9 l8 X5 Y6 u1 P* O% t6 e
            Echo("Processing: " + args[ii]);5 \$ ~9 \: A) V5 p1 E  D
            try
5 S4 q) {+ E: o  b5 g            {
5 A* E- B/ e- L2 h8 \! w                PartLoadStatus loadStatus;  O; o) ~) W4 i) Y) h
                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);; C7 m( C8 o. f/ f/ v1 G. N4 O) P
                reportPartLoadStatus(loadStatus);# e' u0 y+ o  K0 I

8 B" K& W+ l  p" K5 d% R) z
  _; i/ k# s8 Y9 p7 \& c& \
                GetPartType(displayPart);. |- q3 ]1 B% K8 O% W

" Y* T7 U" C' {# i, N/ V
$ N) B& U' k% G" S5 j5 W& b3 j
                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);! q7 v+ V' t2 z6 L6 g9 f8 H
            }
# ]. F$ R$ y5 O            caTCh (NXException ex)
# f9 }  b8 V1 k% w8 G            {9 y( i& T8 e9 W
                Echo("   " + ex.Message);
6 V. M( j) }" j& Y- U            }( e) d) k2 V' \# X7 Y8 _
        }2 C$ n2 G) k) W+ ?: i% c
    }+ C* V3 k- \8 T0 k- H9 j4 Z% b- C

6 z- X% m; b8 s0 g8 e$ ?6 T
' l' q7 |# p+ Z8 ]
    void GetPartType(Part thePart)4 Y& m4 J3 D2 t4 z: D, W. N% p4 Q- I
    {
3 i( T* g  z/ U% e        int nPartType = 0;
, h8 [4 H- F% e2 T$ v% x8 V5 L7 I* L# d* T% k1 t6 d0 T

, s3 @" E: s$ f- w% ?" R; U" L        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;7 Q- @1 v6 R* n* [
        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;
+ T3 a+ F; p8 ^: _- T( `2 q5 d        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;( q' P; F! w) R! j% x
" p( \8 r& [, c2 }) v% [1 `+ X

# J. {. \) Q5 {        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );
$ c$ O5 I, Q3 L4 B6 l" V# o6 k    }! G  J' }- W/ `( N

1 L, e- I* _7 d8 I  d0 V* x! w) Q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了