PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
发表于 2018-7-27 11:00:30 | 显示全部楼层 |阅读模式

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

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

x

4 ~4 y/ B4 Z5 z* u! U1 [0 X1 }+ t. [/ Q
NX二次开发源码分享: 如何判断当前零件的类型,很聪明...
: d( ~' d2 }3 L0 u1 ~! u! I; i0 _% i" f6 {+ T" r) U

6 W* D2 p* |- t" `0 A大体思路如下!!7 a& T/ f4 H1 \  Z

+ J# U% s1 {! Z0 J5 }- S  w1 N! R  `2 V/ n
   enum PartTypes {Empty=0, Model=1, Drawing=2, MasterDrawing=3, Assembly=4, Undefined=5, MasterModelDrawing=6, Invalid=7};9 o( Q- O- a3 h! Q" c
  ! @; I( b* u$ P/ V/ Y! b
  void DoIt(string[] args)
: @$ c4 t6 F1 ?- P) @7 y    {) x/ [; j# p( x; ?( _, q1 R
        Part displayPart = theSession.Parts.Display;
3 W+ ]  E0 D) x, M        if (displayPart != null)
- O0 d5 J$ d; k        {
0 ^! p) k; \- k: M  c2 e            GetPartType(displayPart);
  C& D% ~. j. t            return;; O# R( a' ?) w9 R/ W6 w, {
        }
& \0 }; R7 w. }8 U( L$ {, C1 o% |8 f) N# C5 E# C
) i5 G: q* Q: X$ ^5 L
        for (int ii = 0; ii < args.Length; ii++)
* e' C! J3 @2 |        {9 o5 z2 s3 \2 k" Z/ q+ I  {; e& Q+ e
            Echo("Processing: " + args[ii]);3 L$ F( M8 X4 E7 H' a  L+ r- B
            try ; M8 n  W# T' f7 W0 o& V) Q5 m
            {' z/ P/ i9 h% F# L. {
                PartLoadStatus loadStatus;4 R6 E) D5 M6 @5 y
                displayPart = (Part) theSession.Parts.OpenBaseDisplay(args[ii], out loadStatus);% y3 y0 D% D. y# m# {0 \
                reportPartLoadStatus(loadStatus);
, X2 B$ J1 u2 g  E/ l/ D
( ~% g3 h, j$ d' U; f+ s8 Y* E

7 p- a2 o0 u/ r" g: s5 {5 B                GetPartType(displayPart);# q% Q: s7 n4 |. p# v
8 r* t; I' O/ g3 ~8 ]
$ S1 s$ i# _' @. }
                displayPart.Close(BasePart.CloseWholeTree.True, BasePart.CloseModified.CloseModified, null);
# s5 }' |3 \* a. K/ B            }
, R+ b; s* j/ T) U            caTCh (NXException ex)& F9 q0 _9 }3 d$ B
            {
- k. w9 }1 b+ _                Echo("   " + ex.Message);9 h, H. L  m. D, ^, m+ c( w' V& a7 {
            }
, ^% i3 f/ J$ p7 j& Y0 Q        }
( X( @; S0 |  X) A    }
9 A$ p, ^& E  y$ T& u
- m- K/ U# f  S; K; H) A. }4 Q2 ^

! R( Y, G, L- {9 N/ L    void GetPartType(Part thePart)
$ E" s" U, i6 c* ?' t    {3 s% @  Z% M7 k  Z; H; w. s
        int nPartType = 0;
8 l/ e4 S# R9 a8 _+ u3 h- k$ a4 P; V, S  L! N

4 ?2 p- Q' _( @" M; i& b# [7 t$ ]- Q        if (thePart.Bodies.ToArray().Length > 0) nPartType += 1;5 r9 t2 m$ I. H4 y
        if (thePart.DrawingSheets.ToArray().Length > 0) nPartType += 2;
& Y/ W( H+ i! F4 N$ V! a& J        if (thePart.ComponentAssembly.RootComponent != null) nPartType += 4;! Y. M# E  l+ Z2 w* Q  _& x
- @' w. R8 C# h7 _5 M

  U  H6 D9 g! [' I8 V+ b' O        Echo( String.Format("Part Type = {0}", (PartTypes)nPartType) );
( E7 Y& e) _# H7 T& f' ]9 r    }, V) w0 D" ~7 j3 ?. n2 v. [" |: L
9 H: L3 @/ _& [+ W
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了