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

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

[复制链接]

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

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

admin 楼主

2018-7-27 11:00:30

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

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

x
3 d5 l0 l' F3 a8 A% L+ Q. @& j
! E! @  h5 x. L! y
NX二次开发源码分享: 如何判断当前零件的类型,很聪明...% N3 J+ P8 T( h  n& i9 ~) l$ N1 A
3 q1 J1 C4 a' y# s% E' n
1 T* A  Q  h/ G; o4 q+ z  G3 G
大体思路如下!!
& D% [- P& O+ a4 Y$ Y+ v; o  p1 A% c2 H, Y& ~! j

8 ?+ b" _5 w6 p( ?& o! }   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};" R* ~3 T' z' h5 P6 e
  - G, D' l9 z$ i, m+ l9 h
  void DoIt(string[] args)3 M& z( d: E% ^% c2 ~, y
    {0 Y, Q9 Y4 y. w* y( }2 {
        Part displayPart = theSession.Parts.Display;) P% b4 }" n: I" ^! R* ^$ q; e
        if (displayPart != null)
& [# {# g6 u4 L" S" V        {
7 [- a/ T5 k6 C7 M4 {. i            GetPartType(displayPart);! x! m$ z2 E% q# j( g. D) u; o, t( W
            return;
2 m! L3 L: {  P3 g        }2 ~9 R  j5 l! x, d. r* T

- f, r1 |. Y& t. N

5 ]" u: P2 g$ Y/ b2 [( J1 |- Q, O        for (int ii = 0; ii < args.Length; ii++) 9 T+ z1 M5 C( ?6 P$ H1 w
        {
( q3 ^7 L* w: o% q! |1 l            Echo("Processing: " + args[ii]);
& o& F, w7 |7 F; p, \            try
- [/ Q+ K9 b4 Q8 z- P2 ~            {" J- k& a& l& s' y
                PartLoadStatus loadStatus;5 Y) R: x4 l; _
                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);
! W/ ?( H0 ^9 W. S/ n- k                reportPartLoadStatus(loadStatus);. x! ?% N- J& {9 \; c  B) K% J

$ b  r( ?( [# m5 l& U
6 E) M7 g* s3 p2 s) W
                GetPartType(displayPart);
9 R& d( w/ M" g% f  b
" W0 N, ~" `/ s( e9 Q6 {# O( S/ x, K
/ s# Z3 \; m4 _: [3 R5 v/ g( j
                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);9 ?  ]. R7 J8 e0 L7 p" t
            }5 E( d3 g* `+ ^8 D( f+ ]( C% _
            caTCh (NXException ex)
+ V% z% c8 C# o4 {" I& F# |0 [6 I            {
5 P4 F* R2 n7 z- Y' ^                Echo("   " + ex.Message);8 k& p; m5 X1 k) G
            }
' j3 n. J) \1 i, o# J$ `" x$ p        }
8 I: c' Q4 D2 A. t8 z' {! r& `  R    }
- v; Y# e0 Y( c9 T
, K2 p) ?8 h5 Q) y2 b( m

% i. U$ ?; Y, o' V. [    void GetPartType(Part thePart); K0 ?$ k) \# R# g3 F2 g  N; h
    {
- R, A; W$ c. S* ~2 T4 ~% W* E  X) N/ i# F        int nPartType = 0;
! P9 i  l( ^" l8 d: D5 j* ?8 h: I) N4 Z

$ R$ a% z8 d: k* S        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;  m* q2 u; W$ a, u
        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;" X; i9 P3 l7 e  P8 X
        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;
. K/ i! p: Z/ S. ^$ C- v0 C, l8 g4 O! k

! X" E: E& C% |! N* }' Q* t        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );/ G6 e: T( I6 K2 b! s( X  B/ K
    }
) I' m; j; ^/ T' s0 {# L; R
& F9 o& w0 n. w3 H
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了