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

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

[复制链接]

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

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

admin 楼主

2018-7-27 11:00:30

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

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

x

8 V4 G* L6 V0 F8 y2 v# y' t
7 M2 h" z& Z' Z2 b6 m! q- VNX二次开发源码分享: 如何判断当前零件的类型,很聪明...4 J4 w* |1 X# o- z

& d, g4 D0 `5 y( _& v

8 T1 y* P6 [' [. m, H5 E4 y3 ^7 a大体思路如下!!
3 e2 N$ d( A3 b+ o! Z/ y/ Y- B
7 o: r* @2 J; W" L% e6 T
. M% N, S' t( M: F9 n   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};
/ t, ?( ?  p0 x4 i  7 _8 ?% T, t+ @) n+ M) h+ u
  void DoIt(string[] args)
! a3 z1 X/ l: i1 }% F( ^% E* G    {% [: R! r7 }1 [9 O! {
        Part displayPart = theSession.Parts.Display;
- g7 z  ?* a8 h- A. U% Z        if (displayPart != null) . r9 z$ y3 _2 y& S. ?7 G
        {0 w0 }! o% H, r
            GetPartType(displayPart);
( ^7 \# B. p* W# {7 f, O            return;
/ ?! I" B: Z8 c' E3 u' q$ v7 Z        }  ?& \. Z/ h/ r
# b9 r! X! t3 v7 _/ L0 I/ U

5 J! \' j- T# z2 O" l0 z6 b- N% i5 ]        for (int ii = 0; ii < args.Length; ii++) % ?( X# \6 s% k* ^$ |
        {( j1 a( G5 t/ K/ A$ q8 H
            Echo("Processing: " + args[ii]);6 M9 c5 K4 O4 q+ Q7 O1 `5 N
            try
' Y. `; v! m) ^* H. w  D) @            {+ D, [" ^" ]! T1 u$ X' Q
                PartLoadStatus loadStatus;
* F6 \5 T8 Y! {/ a( K2 W                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);/ D. `0 Y# d* P0 X# z* u9 H5 y
                reportPartLoadStatus(loadStatus);! i! |' ^, @" ^* h( l* H, ~
- I# ~' Y  s2 K5 X# k

6 y7 P: T; m5 f* ~" m                GetPartType(displayPart);
; ~, n  Y4 [/ a  Y: w& Z  W
% c( e: N2 _9 k1 v

$ G" D( p( _2 P, X                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);
' e6 ?6 f0 S  C) V# x- K            }
( {! `7 `( f% p& ]            caTCh (NXException ex)+ [: V9 U$ v1 u5 Y
            {
2 z5 i0 o+ s! r8 L; I/ \; P) i4 i$ @                Echo("   " + ex.Message);
1 U' _: @8 N  V8 v5 L            }
, o. J* g: f& `$ f8 ~& f" R        }
6 |8 h" o, k9 E( j5 o1 a5 Q    }; m+ O! V2 O: W. B4 x) q. l" R

  u/ ?/ G7 W1 G6 {  q! s, `& z- p

# j$ E& C3 {" x9 g" U9 H    void GetPartType(Part thePart)
- m# k( X( ~7 g+ P) @# C4 g; h    {
: |% W! E0 B+ g3 S3 C; D: |        int nPartType = 0;  ]5 Q+ I) w' \8 b( }& B

3 ~; t  M6 C- N4 u$ ]

0 ^0 M4 s" T& ^+ K( t  X        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;2 K) R! `4 G1 _* ^9 q
        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;$ `. t$ v; h1 J) [9 w& h$ x
        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;: p3 y& k8 [% J0 c( z7 V& \

0 g& k+ N6 k# u) z1 t

% V( I6 T( p- V* z% x, G4 s        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );! b' o! X" m: C/ ~
    }/ `7 ^- I" O; a/ G$ W& o4 ~" i  O
4 y8 _7 h+ Q8 B! k
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了