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

[二次开发源码] NX二次开发源码分享: 报告所有的PMI显示的视图对象

[复制链接]

2018-6-22 14:04:27 2456 0

admin 发表于 2018-6-22 14:04:27 |阅读模式

admin 楼主

2018-6-22 14:04:27

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

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

x
* E( b. W2 D" A' G: ~. `3 m$ c
' Z. h' ^: K" U; e' h
NX二次开发源码分享: 报告所有的PMI显示的视图对象2 e: f' T" H3 l1 w) Q% h
) H1 F, W7 }! Y
extern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)
) x% l1 M& A. h  e. o  f{
: ]0 _# I/ w2 y: e5 W* y    Session *theSession = Session::GetSession();
+ N# ~, n  b4 ]    UI *ui = UI::GetUI();
1 y" U- x. u/ q    Selection *sm = ui->SelectionManager();
2 n9 k* ]; j  e( O    std::vector<Selection::MaskTriple> mask(1);, `+ E9 [$ q; Q' n
    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);
) @$ N, h: K6 [  I4 F6 z3 s# C    std::vector<NXOpen::NXObject*> objects;
( o- Y2 K( z& P/ I3 O4 S    unsigned int ii, jj;
7 y8 `1 q; i4 @$ }# p    Annotations::Annotation *ann;* _- d/ O7 n' S) ^1 _
    std::vector<View *> views;
  n/ r& E; E8 j. ?7 m    NXMessageBox *mb = ui->NXMessageBox();0 H9 `5 {- T- N/ |5 E. K# d
    std::vector<NXString> messages;
  X' J& d+ r" F. t" a. g0 ^6 a# M7 L  c+ H$ r( }8 t, {: e
* G6 f# r  p: o0 B
    Selection::Response resp = sm->SelectObjects("Select PMI notes",
2 L5 k( L2 T$ J  a0 @        "Select PMI notes", Selection::SelectionScopeWorkPart,7 R% @" l& ^  R7 }# W# v; B+ R& c5 x" M
        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,9 n  J, i/ B3 E) X, p7 O" I
        objects);
3 ^( z0 J5 l9 j/ G3 j3 f7 m9 ~
7 b2 z4 G2 s% H. q8 {2 N+ c

; p- w' `. a/ }% d; x# u    if (objects.size())! m! ?" h$ O. E0 W; }8 |% f
    {% Y/ b4 I' S- I1 ?- f; ~* H
        for (ii = 0; ii < objects.size(); ii++)+ a2 O" N; k" C" }' H% C8 ]
        {" w/ U+ D4 ^" p* D
+ J: s) g# [# u% V# V6 F; _# o
3 |: k, n7 g0 E' u
        /*  This may fail - see PR 5872709 */6 A4 t' R; }; J6 @% F

9 L" ~( _' v! v$ R& U; J( h3 k

- x" D9 f% T" P. G, R! ^            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);
( ]1 B( t4 D3 v& H7 ^1 F            if (ann != NULL)6 {  V3 S+ F$ |0 Q0 a
                views = ann->GetViews();: t. G7 c; }' ~: m2 Y# P
            else) `# z4 {9 ?5 z% _4 E1 R: e
            {
: G: p0 z$ V2 |" d) }                mb->Show("Failure",( P6 j! A7 e; J3 X& S5 T
                    NXMessageBox::DialogTypeInformation,. l9 C* e0 c; M. N9 b# m7 Q" K
                    "dynamic_cast did not work!");
4 V4 O+ E! ?: i. J9 q7 i, [+ t: _$ T% A; J- i% Q0 d" `2 ^

; }8 J- E2 O( }9 ]0 J! k            /*  This will work and is safe due to selection masking */1 s+ `  d  C7 i; w5 s% n; ?; m9 V" w
# M( y5 i$ e$ ?- @1 B4 T
. E, d* O! a; g. @( N' B0 J& M( f
                ann = (Annotations::Annotation *)objects[ii];
2 n  S4 L* Q( y                views = ann->GetViews();+ ^$ M/ J8 t) w# N! O
            }
. X. W: d3 @. P- C" q2 p) k/ i- n  g% O) C# o" S: U. d2 M
9 ~; J5 r% y% f. s
            if (views.size())3 x% z8 p$ x0 J
            {
0 Q4 [, K( @. s8 x$ m( E( i                for (jj = 0; jj < views.size(); jj++)
% U# E+ k( s$ b                    messages.push_back(views[jj]->Name());
  o2 v( H3 S# Y4 k4 P3 P& _" L
. [. u/ D1 S; Y8 o' x* A
                mb->Show("GetViews results",
6 P$ W* u7 U( V$ ~3 ]+ q                    NXMessageBox::DialogTypeInformation,- R* q" T/ J' a, ^# j. f: Z
                    messages);; x5 T6 o+ O5 P! y+ T7 G

- |( i- L7 _9 M
$ O3 e* ]( t+ I$ {9 u
                messages.clear();, M3 S$ o, v1 X8 n
            }
$ s3 v/ Y2 T* O* w0 v! y        }1 @9 K( {* ]& P4 h9 X/ I/ Y0 `
    }
" ?5 A+ L! t) o  ^( B5 X}
1 \6 v2 [  k9 H" A; [# D6 d6 J& x" h( Q9 ~5 @; c
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了