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

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x
2 Y! x2 R9 x" H
( X" X7 h4 v4 F' j, ?8 s
NX二次开发源码分享: 报告所有的PMI显示的视图对象8 N6 k- B5 j+ H: b1 _# x/ {* c; Y

6 D" d% o. r! z+ a3 I) Textern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)
3 I6 I2 f" ?- R5 j/ g* `# A{
  ^0 P  u( k' S- J/ `/ O" W    Session *theSession = Session::GetSession();
& n0 z, X7 x5 ]) V# V$ g/ l    UI *ui = UI::GetUI();
# N& T0 {0 o) S& n    Selection *sm = ui->SelectionManager();6 [0 u# a9 Y; |
    std::vector<Selection::MaskTriple> mask(1);7 _+ b/ B' A1 m- F- T
    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);, {, w6 |% \" }8 e7 d
    std::vector<NXOpen::NXObject*> objects;  d4 l; u: k9 \+ G, l4 w
    unsigned int ii, jj;5 Z5 n  ]- y2 {# m- `1 j3 u
    Annotations::Annotation *ann;( d: X6 q3 n, U  V4 B" o' o
    std::vector<View *> views;$ s. R) G- @' J6 a$ @
    NXMessageBox *mb = ui->NXMessageBox();; G  a! `. V* y; r- j* w
    std::vector<NXString> messages;( W! c, ~# U9 u2 |5 `' `
5 X7 V% p& C# g' t8 U' e
8 a& p4 h4 V1 a$ `2 q8 r" E
    Selection::Response resp = sm->SelectObjects("Select PMI notes",- J; n( ~$ U+ ^6 Z
        "Select PMI notes", Selection::SelectionScopeWorkPart,
1 [/ b1 U/ X6 \+ h: M  Y        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,
; O* I: d; h+ Y( l9 f        objects);9 l- j, t- k, y0 T6 `- I! u
% m: H$ C! k+ ?. s
0 h4 M6 Q7 Z0 H1 F
    if (objects.size())
3 k( M" U4 M, O# Y    {8 \9 s8 t. E* b/ n0 Y# x
        for (ii = 0; ii < objects.size(); ii++)
3 |9 w. v* V0 |5 `6 }6 t% z        {% j2 ?5 }! v) ?8 r2 X6 Y" @
3 D2 k7 a' S4 l8 [3 [: f
2 A, G; R' Z6 \" v; B
        /*  This may fail - see PR 5872709 */
+ W1 [5 E, H) L2 X, l, b% M0 U7 s* s
& [" l- c' W! a! P/ f9 g. T6 _) a
            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);0 y' e9 c, ^6 r
            if (ann != NULL)  A0 U9 G1 b+ g
                views = ann->GetViews();
3 e- D2 ?4 D# W            else
/ a# ^) t" X/ a% C& I# N2 L  H            {6 S  [( J4 F+ r- M8 u5 {1 n4 {
                mb->Show("Failure",
  V0 ^! V- |7 o, c! [7 j2 A) k                    NXMessageBox::DialogTypeInformation,
$ C% L9 q# o' j( u& [                    "dynamic_cast did not work!");: m* u/ c0 w4 e* g

* F( `! C0 M. ~* O- h4 M& {/ T

5 M0 S; y7 {5 o1 Y            /*  This will work and is safe due to selection masking */0 T1 k- Y: k4 x. C- O. m. l5 S
. l# s* P" W2 o+ v" R
! |! d2 h/ R$ i4 J
                ann = (Annotations::Annotation *)objects[ii];
& D1 ?1 Y1 I  Y+ f( h                views = ann->GetViews();
% t+ F5 N& h2 J            }
3 {% M& d! X+ h! |$ }$ H9 ?" h9 Y
' `. |$ a) @) u$ v& ]
            if (views.size())
! u: @- E) A+ H$ o; A* D% U5 H/ D            {
8 [6 b& C# d# ~                for (jj = 0; jj < views.size(); jj++)
( ^$ p. M9 Q% I! I                    messages.push_back(views[jj]->Name());
# t+ N7 ?* m* P% ~0 g# j7 e5 f  @8 x' v
1 [$ p- h' N2 k2 R. F
                mb->Show("GetViews results",: |; k) y' j. I/ u! }8 T6 D
                    NXMessageBox::DialogTypeInformation,
: \& b5 l: ~4 ^; P                    messages);0 S3 x/ |: n* }# \( t$ x

4 u  ]9 C2 N* {  Z: F, F
, W! u) W# G, g
                messages.clear();# g* O+ l# b1 N- d& r
            }6 b  i& s# a3 E1 i5 J
        }4 T+ W2 f& m3 O4 i# m
    }
9 v, K; k. B) P, D- n}
, J3 S" \6 z" s) h& U- |4 N- j/ ^  s/ e( h# J
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了