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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
发表于 2018-6-22 14:04:27 | 显示全部楼层 |阅读模式

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

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

x

) H, R$ ?1 q# S
; w! |" g' e* Q+ V3 y' ZNX二次开发源码分享: 报告所有的PMI显示的视图对象
+ B6 y# W* ?4 J
/ ]3 g+ B8 S+ x9 }: Z/ [extern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)5 S/ j9 E: U  f2 r6 K
{
5 s8 u, b+ M- n7 J: b- Y# w, t6 y7 `0 z. N    Session *theSession = Session::GetSession();7 p, d" ~; v/ a+ e
    UI *ui = UI::GetUI();
; l: n: J  K/ V  k; h" S. }    Selection *sm = ui->SelectionManager();+ M. `/ p% [- q& U: d0 S7 X" z
    std::vector<Selection::MaskTriple> mask(1);
, N- {* S8 a" y1 k    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);, R4 {" z3 W2 O( Z
    std::vector<NXOpen::NXObject*> objects;$ V4 n* T* Z/ S: [
    unsigned int ii, jj;: @0 l5 P  ^, ]! t
    Annotations::Annotation *ann;
1 N+ r2 H/ H' {: L$ ]6 ?    std::vector<View *> views;3 {5 N& K0 A  h6 D; N
    NXMessageBox *mb = ui->NXMessageBox();! K9 f  l6 a! f
    std::vector<NXString> messages;
8 ~/ V9 T) \8 O, D, L4 U) E
+ Z, w4 I, o2 d

* n; [7 q$ u% _8 j) K    Selection::Response resp = sm->SelectObjects("Select PMI notes",
% K' R9 d8 h! a8 {+ r$ N        "Select PMI notes", Selection::SelectionScopeWorkPart,. {) N+ I7 O" O) ]! O
        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,' d  T% ]! u7 P) B, w# ]3 Z! U
        objects);& Q5 l* \- ~, t, ^& ]( G
' z8 H3 W" B( T" s, k; a
3 T- R% ~& ~7 B$ D! @: ~, [
    if (objects.size())
2 k+ I, \- i" m2 u    {
4 C# v$ F2 E; A' H        for (ii = 0; ii < objects.size(); ii++)- F  ^" c/ v% H
        {" F, t7 z  r& m% `

$ V8 Y/ q% u2 ~' P7 D% s* o& ^$ q. e

5 _  F7 i* d; ]+ z4 ?        /*  This may fail - see PR 5872709 */( ]4 {  S0 d! T! \& p/ I3 D( T- G. q0 t

" T) {; v2 v6 u% h

: j1 B6 X3 ^1 |1 L6 R+ W            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);
8 \& c: f6 k8 M$ K4 ?            if (ann != NULL)
, Y  l5 ~9 x8 S: ~, K                views = ann->GetViews();
& C) K; M( L6 O3 j& ^7 l7 S            else$ ~1 A6 H: \$ X$ c. K4 n" x
            {1 `7 y) e4 i7 {7 _+ }; k; Z
                mb->Show("Failure",0 j* O. ?8 [# ^" \. P" c
                    NXMessageBox::DialogTypeInformation,5 L2 [3 }) U1 a, p8 Y! [
                    "dynamic_cast did not work!");3 b$ H* S& J; c0 U# L6 \

4 T2 N' P" L) q+ N" b+ C+ c
+ T9 `- Z. H. m, [3 x# L
            /*  This will work and is safe due to selection masking */
0 |7 N1 ?: o! m4 _( `. n+ t& P1 K, k

1 t3 L1 z1 D+ g0 x- H' N                ann = (Annotations::Annotation *)objects[ii];
" K2 ~8 ^6 H6 U5 B/ p5 x* x* l                views = ann->GetViews();
4 O5 A" O. S. I+ m4 M            }
& n3 _7 `6 u& ?: Z: n3 Q. T0 A5 W( a# a$ B" D" c

' S- a$ _0 B$ _" z; a2 h            if (views.size())1 U* P8 F, }4 V, Q  \4 Z
            {: \6 q7 ^) _, c. X9 }
                for (jj = 0; jj < views.size(); jj++): \1 r* Z' B  m$ R' q" ~
                    messages.push_back(views[jj]->Name());9 }$ |3 }- r# U2 ~1 B, j5 l, u
* u# v1 d2 i$ m$ Q

( l1 D& l7 b8 Z/ l( N                mb->Show("GetViews results",
* F+ {/ }$ m: y/ u6 C4 {                    NXMessageBox::DialogTypeInformation,( O8 R, L( b$ Z
                    messages);
1 M5 Q' o' f* G# Z1 k
1 K) Q! ~$ Q: r# N" o! \( \
9 l4 G9 [) o7 c6 F- U
                messages.clear();
) r1 Q5 u  h; l1 }( ~+ t/ s9 l            }
9 e# b/ }' e# w        }" B+ Z' w0 ?; E! @3 H( K: X7 |
    }5 W: ?& o5 h; d3 S# c" C
}3 i! ~3 b3 w! Q' w% N

! o( Y, ?4 o% X- S3 [# K
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了