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

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

[复制链接]

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

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

admin 楼主

2018-7-27 11:00:30

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

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

x

; U( ~2 G1 p# j2 I4 g3 q$ V1 ?2 Z" w9 m/ q5 e
NX二次开发源码分享: 如何判断当前零件的类型,很聪明...
* D9 l9 q8 W8 W; _
8 W& U. Z% S! |+ h
1 ^- j0 _+ Q% E% U4 Z+ @' i/ J* O
大体思路如下!!% _+ H: N6 `( U) R. b3 d
6 `+ s: r; Y1 ]+ V0 F

' c8 l. B5 y1 m  X* x# e   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};
1 h# Y0 J% w9 `8 U* ~) N2 c2 o  
; X( \# I2 m9 n. G3 j% D* H7 G  void DoIt(string[] args)
2 ]: O% Q5 o5 T3 p    {
2 p2 N+ B  t) N' G1 d  ]& C9 r        Part displayPart = theSession.Parts.Display;' `+ R+ I% q, i/ f1 [
        if (displayPart != null)
1 w8 S( ]* @: g4 |; `        {. I+ @8 d% W* H1 ]
            GetPartType(displayPart);
- X) {" |+ [/ [9 _7 w, Z            return;
4 d4 H/ k% f& R. b) i+ S$ e        }
' i( n' y0 t+ U3 L
. e3 P* |) \, ^+ Z! E( y* S, M

, H5 J- ~5 H- ?0 r% M" q6 v        for (int ii = 0; ii < args.Length; ii++) . q! K& u" \6 R& u# R; l& ~
        {
2 c7 p5 `8 r/ p/ X; A  v* d            Echo("Processing: " + args[ii]);8 L8 {: l$ Z2 D, M2 D7 ~$ e
            try
& C5 U" D( C* r            {
6 a" Q( t2 d/ H* X7 H1 V                PartLoadStatus loadStatus;
" S9 S7 P% v8 h0 ~* w% H                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);
4 ?0 ^- A' `; j/ {/ x                reportPartLoadStatus(loadStatus);" z5 j7 m8 j) T% M

- p1 ^5 i! B$ c* F
/ O7 v$ J4 k) A, c2 f
                GetPartType(displayPart);2 s$ f) Z" w; w% o
" A; Z. }2 K, s0 @0 u$ M

5 A, M1 f% B& Q8 G4 {- p                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);
" x8 ~9 s! A9 ~* a* `- n* S            }
0 h3 i9 k- T. a            caTCh (NXException ex)/ E6 j, C; {1 j+ t1 h; P
            {
5 t  `- [6 w% c3 K# l' L+ c3 y2 E                Echo("   " + ex.Message);
* b# t+ D$ b. U. L0 n8 H            }9 s! |( b: E: Q' ?
        }
& \. f! J* Y  H/ B1 P( s2 ^    }5 ~' y/ X: C- ^5 A( Y

8 O% V! C8 g" `9 I

; q5 I! P: g8 E( O    void GetPartType(Part thePart)0 L1 ?7 K( N# }( e# X
    {, J: L2 Q5 \1 H) t! I2 G( \! ^
        int nPartType = 0;
3 V$ E" g) H5 \, f! Z4 B4 q4 E& `+ j9 E: Y5 X6 ~
: n9 B* c4 b/ o! i0 g
        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;/ L& J0 Y9 n9 @8 v% {& j
        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;
+ }2 @2 U3 _4 r' ^# O! V        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;6 \! C4 K; E$ `$ N. c

; h8 U) p& f0 N/ {7 k+ y
$ R  _5 x) N2 q5 ^' J6 _
        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );
$ _; L9 T  R( A! ^: X* Y    }( W# L7 V6 Q- P# c3 ~% b! y

3 R; T6 b' `  g  R6 w! F- d
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了