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

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x
" M+ G  T  k8 e5 _- b4 X
& V3 P  Q) d1 j% x4 N! ]
NX二次开发源码分享: 报告所有的PMI显示的视图对象
1 \6 q! t4 @- a* a8 A- W3 S
" |2 ^5 x3 j. x3 J/ f* b% \7 p  cextern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)
9 G: d9 k% H0 r( \& v& ^{1 X3 d) ?: O& z/ q0 h2 z
    Session *theSession = Session::GetSession();2 w! p, q4 I5 m. k) _3 B5 a
    UI *ui = UI::GetUI();
# F7 w& u* z1 w/ Y    Selection *sm = ui->SelectionManager();3 e, F: v. K1 I9 P/ r
    std::vector<Selection::MaskTriple> mask(1);
  z, F' k, q+ h* G" k    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);
8 e5 e5 P& N: ?2 E    std::vector<NXOpen::NXObject*> objects;
* V/ o4 I; r, c' }$ {, u    unsigned int ii, jj;: X5 H" I' \+ ?0 f7 |
    Annotations::Annotation *ann;
; ?  ^- E1 a  h! o  X" E    std::vector<View *> views;
9 t* H: H# P% Y1 e( p    NXMessageBox *mb = ui->NXMessageBox();
! V1 Q& \1 P3 G. n    std::vector<NXString> messages;+ W9 }% b2 z7 p. G. b4 Y
% O8 t6 c; _/ u, S1 T
' J, Y  m; h5 p- Z* @& O! Z' V0 k, Z
    Selection::Response resp = sm->SelectObjects("Select PMI notes",
) p3 N+ V0 u" h/ M        "Select PMI notes", Selection::SelectionScopeWorkPart,
1 g' |4 g7 |' e+ n        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,) H. Q: S/ y; k' L) b: \
        objects);
5 ~# b& q8 _. o0 p) P" S
9 Z8 S! s# L( K6 A: \  V, v1 W
0 C$ i5 y/ T( T; w
    if (objects.size())
; Y( s4 ^. {# O! X/ M    {, A- G' n+ Q. K7 b7 ^2 _
        for (ii = 0; ii < objects.size(); ii++)* R  B! @/ Y. ]  a1 r% o9 m
        {: u8 x4 X: l3 v/ X# L" b8 m6 P- ^

7 a; U9 ^2 l" x( ^2 H
% p* s% u# b( r1 o$ r
        /*  This may fail - see PR 5872709 */
3 d# i4 K5 {* F) f2 I7 O' S5 r6 Q
8 k( W; q$ A; {$ X! j4 L
+ k, _: m) Z' J" T. E+ R4 x+ V9 s
            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);
# d9 w9 Y* v$ W9 N! X1 T$ o+ C, e            if (ann != NULL)
9 \/ g" i" p! U2 D                views = ann->GetViews();
+ _+ ]' U' k3 }  Y1 ^            else" o: L; I0 X6 Z5 p9 K, d
            {
; A+ }9 E& i/ |. S$ y" M                mb->Show("Failure"," W* [9 T7 m9 {1 P6 R
                    NXMessageBox::DialogTypeInformation,- H, u, T$ F& X, m4 H: q
                    "dynamic_cast did not work!");
3 l) S# l& d+ s- Y- f: t
5 S) M, _( \5 S& C

& l# _# d6 R) ^- w            /*  This will work and is safe due to selection masking */
0 H0 Q. R' H5 D8 Q! d; ]7 S& y3 S& u6 N6 h8 _, V# N/ ~! i! @
  y9 W* ~* L0 C) M
                ann = (Annotations::Annotation *)objects[ii];/ h* X) W3 [9 E  G: `$ T2 [' n; r- }2 r
                views = ann->GetViews();
  p9 |9 o- N% Z; f            }8 b6 X5 j1 Q9 R- P( [

2 X) i7 W7 j+ I! E

% @& H  q: X5 }7 ]3 X% O  j$ m            if (views.size()). g) Y8 L; m' `; y; L8 q0 D' U: `
            {
- m0 R8 k9 j+ I  e, L/ X                for (jj = 0; jj < views.size(); jj++)* g$ W8 A( Q. Y: z- X
                    messages.push_back(views[jj]->Name());% l1 R) [  \5 n0 D+ q4 e

7 ]/ W) m% n0 A- B+ l

2 w, W! d% J" c/ n8 C  t                mb->Show("GetViews results",6 c/ U6 h) ?6 }1 Y( ^, z
                    NXMessageBox::DialogTypeInformation,
% m4 H$ d$ ?% l4 z                    messages);# {6 h5 H0 m0 l! x' c

! v; c" s" u* g0 y+ _

' P) q. T* Z* C) Q5 Q& k# n' m                messages.clear();
7 Z+ X8 M- U( v3 u. l) ^            }
1 Z6 j5 r% S9 D% e. m0 }        }
/ }. v% C9 \8 l* v& Z# v* n    }
* w) e' a( C' b; n; c' ^6 C}
: ^& p  G/ M) Y% Q" S( k" j; J" D- m0 g0 C: j% V: X
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了