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

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

[复制链接]

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

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

admin 楼主

2018-7-27 11:00:30

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

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

x
" O* w4 k9 c1 i: z& z: ^5 `
8 ]6 q2 u7 T$ U1 A
NX二次开发源码分享: 如何判断当前零件的类型,很聪明...
4 ?0 z; i( j4 @. d5 A) z
' O/ d8 P, Y) z( r& a( x' M

$ s" W: m: J: F8 @. Y大体思路如下!!
( L# Z3 K: L7 Y  t7 k: K  a* N' a
2 _, [& g7 d9 O# X% |( A2 F. R4 U! [; y) F! W6 \
   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};# l7 r; p. E- c, |" r
  9 ^# n! N" W, C
  void DoIt(string[] args)
$ h2 P  }9 k8 U9 V; c# k    {' q0 R- s1 _! j8 q5 Y& @
        Part displayPart = theSession.Parts.Display;
* l$ \& n, c2 f, X* n9 h        if (displayPart != null) * S- ^9 J9 [" r- Q+ W6 N3 ]
        {
7 V: ?7 t; b: \            GetPartType(displayPart);
/ y+ E( ^( c$ q) |9 K: [9 V5 ]6 X            return;
% _% m$ F  L! h, R( j# \6 k        }1 }' q% C3 V" F! W! h! z/ i
" P2 }. x7 `1 V2 B

$ ?, I+ T9 y: U, ?. j        for (int ii = 0; ii < args.Length; ii++)
2 G/ l5 w6 \% y        {3 I. \+ V2 k: b: B1 u: Y
            Echo("Processing: " + args[ii]);
1 f5 M! a8 `  y9 @0 U5 E, ]* z            try - }4 a7 w* ~$ \6 l4 H9 L4 L
            {
5 m5 q2 U. F, b/ C; }                PartLoadStatus loadStatus;: z- S" A; }9 P- b# ]2 C7 W; ]% r
                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);
1 E' O9 q8 A8 @7 n: h                reportPartLoadStatus(loadStatus);
- q8 d# d* H1 Y8 E* `4 ~; U5 J6 R, U5 N6 Z# u7 }  R
3 h/ f4 I! ~. m
                GetPartType(displayPart);* d2 a! s! |! k2 A1 j* t2 j1 E
% u' g. e0 {  W, E# z- V; R% D

) J8 R, l6 B. x+ ?                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);$ V, s7 v$ `% U' z$ w: ^
            }
% I1 B4 {( g, S8 z, T* W# g            caTCh (NXException ex)
" [3 Z" G: F) F3 l            {: p1 T6 j. S/ ~5 R0 I7 ?
                Echo("   " + ex.Message);
  E* @4 |1 K( p& F! J& Y            }
& d- N: G8 ~: s        }7 o4 i6 |: S$ q, u) @* a
    }
4 _4 g0 \, ^3 M$ E' X. p6 {( ?: W! A7 u# P8 N  p6 m* G
7 I& t! l9 m: c; O7 l0 G7 [- R
    void GetPartType(Part thePart)% H, N0 N( ?" X+ T1 ?
    {$ M% w7 m* [' u! C- m8 |
        int nPartType = 0;
5 L, T5 H2 ]% M" C( w& d  t* B) e& p) i# u; R/ x" w: H7 v
+ D. _7 m; v1 ^3 j- s
        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;* j, J; w5 L% A5 P
        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;
; l( n' C' _. m: F2 X& o        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;
# D: i, C; i& q+ }4 x4 g
/ W" P" n. B- P$ h; l' m4 t

. p/ P9 x6 B0 G9 U        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );/ L8 Y! C! l% S6 B
    }3 D2 H4 {0 ~7 q1 P& i! T' w* f

" \5 Y) Y; @9 v1 w
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了