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

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

[复制链接]

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

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

admin 楼主

2018-7-27 11:00:30

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

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

x
9 r9 \" l1 H" ^2 O

2 I4 |) m5 B$ y$ ~. J: w( G, }NX二次开发源码分享: 如何判断当前零件的类型,很聪明...
: C4 ]7 U8 j$ r' B9 Y$ z$ O
5 l/ W6 c1 }, U
9 N8 W3 Z  Y/ |6 R6 x7 ~- f
大体思路如下!!
8 l1 z5 f' m# _5 w& ]# G: X% m
/ x- l! P& c0 {, v8 w, _  N+ s3 k+ u
3 ?$ c/ _$ t' m% z   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};3 O! V$ r+ z0 n' V
  
, g' x. W% N4 ]' t& ~' U! i  D9 h: \& @  void DoIt(string[] args)
! g3 l' H- s  n4 ^" l) x$ o    {
9 k# V8 W& _4 R4 @  b# A+ C        Part displayPart = theSession.Parts.Display;
9 {% [- Y( |+ S        if (displayPart != null) 9 V5 t# y- d  o4 ^
        {
  m, o) }, n4 a2 ~: R: D            GetPartType(displayPart);
) W3 r# {& j7 s3 ]) d            return;
( @: ?+ Z% s( \+ a& y) h) d2 F1 e        }
& k0 s" Y6 h6 V1 G
1 y, h2 c& ^; q0 c, I; Q

% S) z( ~3 W# q5 e7 V/ {/ V        for (int ii = 0; ii < args.Length; ii++) 3 G' F" F8 f! y) H
        {5 D' \$ j3 a  {2 C/ f
            Echo("Processing: " + args[ii]);- T1 g1 i( U7 H) c$ \/ q
            try
/ t# f  Z1 r0 ~, Y: _, H            {
" e8 v3 {) A  X                PartLoadStatus loadStatus;) t# |" C2 a3 Q+ o! T& ?
                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);
+ g: e( P) ^6 [                reportPartLoadStatus(loadStatus);
+ v+ x: W" T8 t( r- A6 H5 ~  z! T9 V8 t, k: x( b4 J

5 s! a! {( A# s0 Z! A/ p) R  Q                GetPartType(displayPart);
5 \- p: f( Z. C3 n* U
. D- c5 ]- d5 O

0 y8 \1 c2 v' {  z, o* D9 D                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);) J. d+ h8 b9 e, j+ m3 V  `, B
            }
# X; z5 ]% M6 u" A0 K, x6 a            caTCh (NXException ex)$ o' o, D# q& K. O
            {
7 }" \* {0 A6 e8 V( h) ~                Echo("   " + ex.Message);
! M0 H; h8 v# x! `            }
" [& m+ p' S# n' D$ z/ P* G; C1 X" t        }7 W4 V8 V( ~; t6 @5 |+ W
    }2 W; {8 |2 Z  ?( z1 R# S6 o; Q1 v
5 |3 {( X! f7 S. J
# p+ a5 h. b, \( l. {' A
    void GetPartType(Part thePart)
, J  {5 y6 V' \7 U4 Y+ l# ^    {
: R- u0 E3 Q; B/ H+ k        int nPartType = 0;! t4 n, p3 a1 f5 ?: N+ n8 `" b
( l/ |/ t( n* g: L5 t' C

, a+ }2 m  y! V1 _, J* J& t6 B        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;" ~: X' s9 h5 k6 L9 T4 g
        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;
6 g* k$ J; e4 u9 V: Y( {        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;+ r3 ^- J3 o# m' r

; F& S0 x$ w, o
5 m) K4 P' ~5 ?
        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );. O( l) p3 I: I' f0 T
    }
: ^5 K8 K* n$ x) M* j
: |1 R+ s4 p4 R
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了