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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x
. l; N7 `& ?9 Z" @/ }

; t- K+ P7 j: t% |# O  \( UNX二次开发源码分享: 报告所有的PMI显示的视图对象
: p7 M- V; |+ t
/ E# `6 f' v% F* k: Xextern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)
3 [" s5 h4 l: l. A' X{
: }2 u: `* y! F' C( Y) L    Session *theSession = Session::GetSession();9 Z$ W- h/ `6 C  I! E3 G: h$ D' J
    UI *ui = UI::GetUI();" l+ e" q, w1 y5 @+ `2 F0 y
    Selection *sm = ui->SelectionManager();/ j8 T, c& b4 u0 y- [9 R9 f! C! ^0 r
    std::vector<Selection::MaskTriple> mask(1);
6 n$ m" J+ x$ y; l+ j    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);, R  Z1 O5 \1 F, z! p0 l
    std::vector<NXOpen::NXObject*> objects;
: N/ a  s: q  A. R  O    unsigned int ii, jj;: f: o. X! ?6 \6 X! i
    Annotations::Annotation *ann;
4 d/ [2 d; x  n    std::vector<View *> views;! z: G) e; i0 l! x. T" a" N6 ~
    NXMessageBox *mb = ui->NXMessageBox();
1 R" A! T  @3 g) F9 K8 s0 a6 V    std::vector<NXString> messages;
) q, A: i; _3 u: [/ o( m
' e, R9 E- l% F5 F; Y$ S
% H. @( R7 u" w3 D
    Selection::Response resp = sm->SelectObjects("Select PMI notes",9 h! m8 A3 F1 }0 A; x. U9 G0 U
        "Select PMI notes", Selection::SelectionScopeWorkPart,
5 r" E1 H, o% l        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,
) E4 v( {# }; F' D; l" Y        objects);& n" [, B6 ^- N9 b; \
! \" }* O7 h# J* t' G0 u

( c% j: C9 X' e    if (objects.size())
/ [  W1 _) a1 H% j% N    {
" p& v% m. ?# v/ j" H        for (ii = 0; ii < objects.size(); ii++)( z  x4 C, y! w7 v! W5 [( Z6 j
        {
; G. j2 W) G! H
" _3 ?4 A8 y1 |& s3 R
! b) C8 [7 O5 o3 _' p! v& u) x
        /*  This may fail - see PR 5872709 */) {- X# M( t7 M' K) I

8 V: ~1 a/ l0 Y/ H. p
7 ^0 W6 X; R# x8 q5 h; k
            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);
" r+ N. D$ D8 g3 Y: o( e+ o  l$ P            if (ann != NULL)* t: G5 ?9 |6 X" r. w% X4 p
                views = ann->GetViews();
6 M+ P: _& u, ~" I" @            else0 J# R- c. G2 m' X& k+ p$ y% l5 Q5 P- Z4 D
            {
% g8 d5 l( b5 i" j                mb->Show("Failure",
; X, A, o9 x; K: T                    NXMessageBox::DialogTypeInformation,$ V4 T' }& T) g
                    "dynamic_cast did not work!");/ [$ _- d- X1 e0 x; N2 g) H
" s" p9 I- _1 c, |: Y
" m: a5 R/ t- S3 I1 G  Y* T& a- L
            /*  This will work and is safe due to selection masking */
& T) r6 j% ~! {, D6 S! A) x' N; p

( V; E7 |0 A, s1 i9 D2 |+ ]                ann = (Annotations::Annotation *)objects[ii];: s8 V3 e; [& M: d7 c
                views = ann->GetViews();
4 B+ P% n3 s1 @0 W/ k            }
# |* t4 n7 ^+ H" K! n- N' v) O' e  I% c( [0 N: v

! g5 C  u: W2 F, r' v' [: M            if (views.size())
5 B/ B. Y3 b! e" R            {
; d/ I2 N1 ^' U' X5 F9 ~; Y% U                for (jj = 0; jj < views.size(); jj++)
% D* ~1 o( |: e+ c' R- o                    messages.push_back(views[jj]->Name());
$ k0 ~6 K% X3 ~8 W
% X: M! z" D+ }* P) W+ N
& U- X) N5 q. M8 }
                mb->Show("GetViews results",
( y! \; r/ x$ n5 t, H' O$ n/ J                    NXMessageBox::DialogTypeInformation,) N( }( B8 c& P2 p3 Z) ]
                    messages);2 G3 l. A' Z" M& w

" N! Z! H$ N, A9 B
# ?* j) m5 Z$ x8 @* A3 K/ z0 ?- ?
                messages.clear();
# f( s/ U* R! j" D+ V, V) K            }
4 H8 F$ \' d* g+ u9 F$ b        }  X" L. j4 \) b& M
    }* v- O1 l7 d- B! {
}' {3 a9 w* s, F/ p( x- ?4 x; _3 _

8 l0 N. W) V) S% o: {
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了