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

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x
. i8 W3 Z. i5 e: C8 ~
; c6 N( P( l5 J: U( z# m* ]
NX二次开发源码分享: 报告所有的PMI显示的视图对象6 K( @* B* S& b8 b1 v' ^0 b

' ?& t& k+ V2 K$ u# u6 J/ H& mextern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)1 R1 Q- H+ i# c) P! {
{
0 d4 l0 D  b0 [7 y5 ^/ a    Session *theSession = Session::GetSession();# N7 K' _/ c; j& U/ T& [
    UI *ui = UI::GetUI();
' V6 i4 {7 v! c% q# a/ o; t    Selection *sm = ui->SelectionManager();. e5 I1 e3 G% Y3 y3 D% M
    std::vector<Selection::MaskTriple> mask(1);( Q+ o$ T1 r- j+ v1 E
    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);
1 f. j3 t6 e9 H    std::vector<NXOpen::NXObject*> objects;
2 S* G. X) M( {' ~- S    unsigned int ii, jj;) W9 B- u+ @  M9 r' l; u
    Annotations::Annotation *ann;
- m' ?' v: [! A' X4 D5 p5 b- n    std::vector<View *> views;7 `% }' y- ~& l) @" \8 J
    NXMessageBox *mb = ui->NXMessageBox();! [: I, t/ y' a6 V8 X) m9 r: W$ i
    std::vector<NXString> messages;" \  O9 K$ t! v7 J6 \4 z+ W9 V
1 _  V: f0 n& Z7 _
0 ^+ ~/ L9 X% O# t6 i  k
    Selection::Response resp = sm->SelectObjects("Select PMI notes",
( Z/ K7 T) G6 c3 ?0 H3 r$ k- g        "Select PMI notes", Selection::SelectionScopeWorkPart,; v6 Z2 ?5 {1 U" s
        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,
. |$ ^" t7 @" X) Z$ u        objects);# Y$ @# h3 A7 Z& ]9 C& T
1 U0 n- c) W7 I! h" \
  C$ U- k; a: s; ]+ d7 ~- m: F
    if (objects.size())
1 n4 {0 D: @3 z9 U    {
3 X$ l7 k- J5 F) H6 N8 Z        for (ii = 0; ii < objects.size(); ii++)- B0 g% a* R# w, N3 e
        {# E1 h; j+ k' F4 h8 j1 h
7 W; m) W0 ?$ |2 Z$ f
2 r- Z1 A. C8 M" P
        /*  This may fail - see PR 5872709 */9 V) x9 F1 a% ?7 b
  B+ s2 |" ?; D  V6 }
/ b& T6 n  ^8 r6 k3 e, q
            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);$ o9 t" U2 I6 P: J% N& C- Y
            if (ann != NULL)0 E0 b, |9 f7 Q1 g: s( Q
                views = ann->GetViews();( q/ O; N: J1 e
            else
- U/ y! p+ T, q4 P7 L            {  {' e! B/ q) N6 y2 _  h
                mb->Show("Failure"," |6 Y0 k9 P9 M! e: |
                    NXMessageBox::DialogTypeInformation,
9 O8 c+ `  U6 a$ L% w- R                    "dynamic_cast did not work!");
; A. d& W7 M  m' V% [4 j7 }( P8 h  h9 Q+ h3 G
: {! ]$ r+ U, J% o
            /*  This will work and is safe due to selection masking */1 D. e# c3 P7 s) \! d, A" p5 C0 d
8 z4 |: c8 U9 B8 ^
& e3 E% X: |" r7 v
                ann = (Annotations::Annotation *)objects[ii];8 f7 l, ^/ h- W5 }2 q& s% |
                views = ann->GetViews();
9 S) S. L  f& Q+ ^, c& L            }
, D5 b4 [1 }9 X. p( S( B4 c( C) v1 l6 l) D0 B

% {, o; O' u/ l# l* M5 y! a9 Y            if (views.size())7 k8 s1 K7 c2 R
            {
- R2 e+ b; G" p                for (jj = 0; jj < views.size(); jj++)
4 Z3 s- h  o- \3 d* P4 Q% ~                    messages.push_back(views[jj]->Name());6 f* J! C; g4 J; m% V
% i5 z4 S5 i% o0 A. Q
; @+ r# y) |; [% a( ?( M! a
                mb->Show("GetViews results",$ d  |5 g$ G9 ^7 n, w
                    NXMessageBox::DialogTypeInformation,
) O* \; G" u) ?  A+ f                    messages);
7 [2 d5 q1 a# R  N; A: F
) r4 K- V! t, O6 E
, \! c) ~8 G7 T. n7 y
                messages.clear();% b7 W7 E2 O+ }6 }0 E/ o5 p4 T0 h
            }
9 o. r# P0 P4 ?  X& E" e        }; S; y. d) a( a9 ^& Y
    }; [& Q" T: L; Y
}* _. K* K0 c% ?+ k1 y' X  y

1 a0 v7 t% K, @0 G9 ]$ m0 Y( G
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了