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

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x

+ s. k' }/ j# C1 u& @
3 B5 U3 a! N# [. XNX二次开发源码分享: 报告所有的PMI显示的视图对象# s# x+ u- t( b$ \' C$ C# m
7 G- p8 C$ n8 |/ |% q# w: M
extern "C" DllExport void ufusr(char *param, int *reTCod, int param_len): X' M* s# M9 h, _: J
{
7 g, Y/ `6 i5 E; ^1 Z: L# ]    Session *theSession = Session::GetSession();0 _( R% }8 |+ F/ T
    UI *ui = UI::GetUI();
& z, J9 h/ P: l9 I+ h+ W. V1 D6 ?    Selection *sm = ui->SelectionManager();
3 H7 p/ h3 L0 p# N) N7 I    std::vector<Selection::MaskTriple> mask(1);  v' E* Q2 R, C& {
    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);  c8 f" l2 {8 Y* O
    std::vector<NXOpen::NXObject*> objects;8 w/ a3 Z7 P/ u3 q
    unsigned int ii, jj;; p8 U$ {3 Q7 R
    Annotations::Annotation *ann;4 L. j- a  r0 M; h
    std::vector<View *> views;9 i3 d/ q5 i; L7 G
    NXMessageBox *mb = ui->NXMessageBox();
( H9 o: u( y; f& @, h" q1 M    std::vector<NXString> messages;+ ^6 A' A1 K4 C2 ], U  Q7 D7 f
( t1 C1 b, F! h2 z

: d6 n0 A9 W, ]5 \. e    Selection::Response resp = sm->SelectObjects("Select PMI notes",0 g% X' ~* c- s+ n+ R7 \
        "Select PMI notes", Selection::SelectionScopeWorkPart,
# c$ G# q6 p# }3 J9 r        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,8 O+ F! b8 b2 s
        objects);# g3 h0 y, }/ ]! h3 @4 X/ J. U  C

5 h  \8 x  ?! P) o! ~* t/ A% \8 ~. ]
) ]5 t% B8 H) w0 c
    if (objects.size())
1 E$ r2 o; C# L& J# R7 S: |    {4 |/ J* u. |" Z$ {$ W
        for (ii = 0; ii < objects.size(); ii++)
4 v+ L1 J* z. D2 C/ D        {
% ~- Q) b& u0 o; O
1 o. p: l4 [6 T/ o0 O; m4 S
' S9 W7 @' ^9 s3 _
        /*  This may fail - see PR 5872709 */2 _) _$ m4 }' o; H& o8 k, G
- K+ ~8 {  g' L+ U( }* T1 \' n* n

# \3 F; ~& f0 n            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);
- ^; K' f2 j5 S/ B            if (ann != NULL)
2 E$ |# T: y& x, s% K2 n! q                views = ann->GetViews();
9 ~+ T% d6 c' A7 I3 \            else$ a1 j/ F. Z& q3 V& Q" g( y( w  _& k# n
            {
, U" j# U$ ~5 X: Z                mb->Show("Failure",. q; N, ~" U# ~9 z4 R
                    NXMessageBox::DialogTypeInformation,
7 I* C5 V- h+ B  s8 {* \+ `3 Q% q/ G                    "dynamic_cast did not work!");
8 v3 v- u0 p& S: e) i( ~& r6 q6 p% n; g

( b5 O: ~+ @: }# X6 W+ O            /*  This will work and is safe due to selection masking */! u  x8 v9 b* \* a  g
& ~; f9 G3 l4 @! n) v; w

1 Z4 {8 h+ g) k  }' u                ann = (Annotations::Annotation *)objects[ii];
" \: U4 u' K/ `* j2 S" Z' T. g2 `, U                views = ann->GetViews();! B6 g4 s9 x* a. C
            }
6 G- B/ j  @7 {5 {3 @0 m+ c  x' U, k: ]. u8 U- W, A& m
4 w5 h& P; o$ g! u% X, L/ ?+ {
            if (views.size())
$ z, ?$ k1 P  Z3 X2 d4 S, V+ k            {
- V8 p6 W2 J3 ~# H5 `) T: N1 y, j                for (jj = 0; jj < views.size(); jj++)
2 c: y7 }2 l! J6 C+ p5 Z3 U                    messages.push_back(views[jj]->Name());+ |! Y+ K7 r; b/ K: n* X

# [- V# M+ L. \* b$ w

6 I" ^& T# L9 G: r                mb->Show("GetViews results",7 ?9 d: a6 K7 K; E0 \# f
                    NXMessageBox::DialogTypeInformation,
# ]8 J! H* x+ C. }: b7 p' G  s                    messages);- h' F) K( b! Z
6 \& Z$ h8 k4 H  r3 S5 A- U1 P4 E
, q4 m/ H$ B1 u# C. l* H
                messages.clear();
2 x' A/ b! k$ |5 O5 D5 [* ^            }
2 j8 \8 h% p4 r5 M0 W        }* D5 n  I- l/ x& K( t
    }( O" E/ `7 X' }! M# e# y* z
}
" J8 x5 N9 X5 S3 B2 G; a; |, \$ i, p/ R
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了