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

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

[复制链接]

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

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

admin 楼主

2018-7-27 11:00:30

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

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

x

' S7 p* ]6 l9 g
0 G! Y- L" {* x, x6 VNX二次开发源码分享: 如何判断当前零件的类型,很聪明...
. A( n( q4 K! k/ `  J9 q6 b2 r  d3 J9 R) ]  [
9 M' I6 {3 O% W
大体思路如下!!
2 e. F# M3 F! m! r$ R7 c2 i* ^6 I( N0 s0 I( e0 N/ D+ N: N, Y. |0 L
' w4 Q* h) S3 D/ c/ \8 d
   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};
4 X2 p7 H( B" Q, L& L  ' V& U3 }: g. C/ x/ V5 ^
  void DoIt(string[] args)
; E. T4 q: z! k1 }4 `; R. a    {' B) k2 _5 ^4 G( V4 R
        Part displayPart = theSession.Parts.Display;
* y) b2 ~. Y$ I# p8 Y        if (displayPart != null)
2 m/ H' Q& p' D# R$ }0 b3 Q        {+ }9 h) o) j! s/ F0 h
            GetPartType(displayPart);- n4 x! G" y( x3 J2 i3 q+ T
            return;
5 m! A1 E) N: k# R* _8 C        }8 \7 u0 ]& I! D$ e2 t* p
* x# Y$ v4 ~1 o

1 m/ l: F1 c5 N- ?- p        for (int ii = 0; ii < args.Length; ii++) * g/ q- i4 F2 r5 m
        {% h2 g% V3 U# B, Z8 f
            Echo("Processing: " + args[ii]);
: w' R  e2 T$ C5 _& Z. o            try
" T1 a. Y( X4 h* b. S" x            {
. a4 N5 T, ~2 l! E* h" n) f                PartLoadStatus loadStatus;5 K/ t, R# |  |& u, M" s
                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);6 e& @1 b) q3 b: q
                reportPartLoadStatus(loadStatus);
9 h2 \, g' a; }% s$ O! ?9 V& k# E$ f" e/ K

- Z2 n, n2 E% @) \+ f4 S                GetPartType(displayPart);2 \! J" F3 }1 S9 d  ]5 ?4 O

$ w$ z7 H2 }' z0 c& w- H& y; c
" `# U# y  F1 `  \- |0 ^6 J
                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);% i& V  W$ v$ m
            }0 d1 Q  ]  P- J: r* p$ l6 m, {
            caTCh (NXException ex)) d) X; `+ g8 C
            {
" d" {6 w9 m- j  g6 K                Echo("   " + ex.Message);
" F4 C5 S% h& n9 a4 ~            }
+ Y1 {7 `4 s+ _+ g9 ^  F        }5 G5 i) o1 v# e9 z% d  y( E
    }
4 c4 t% Y2 s; \) n. _- f$ D- r/ R9 T5 r
: i# ~" h5 s7 X5 D
    void GetPartType(Part thePart)* m3 y9 h! n4 [# P
    {6 m6 a+ Y2 U, v
        int nPartType = 0;
$ p* V6 J9 H  P- N( M7 o7 d! n9 P/ H8 ^4 B

  W& M. `# G3 m% r" {; Q" f        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;
% p, g: Q; a% f( d" d! ?        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;
- d& o# Z. u( J& }3 m; w9 a& U        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;, R+ N. [" ?, h* @! |7 B7 o+ G

7 x, S. e& M9 }' ?; }
2 P+ v6 m. e( E& Y/ J
        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );2 E1 T( l" Q5 f' E* ]9 h
    }1 s% h/ Z' W" t8 R9 t' K3 J: g8 I$ R
6 s7 a4 B& N2 d8 z% _' v. P
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了