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

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x

) D8 b4 t2 p. K8 a0 R1 H, j8 x( @. K5 t5 P1 x5 A
NX二次开发源码分享: 报告所有的PMI显示的视图对象* Z# X/ P  u8 P2 a  c' p" Q. i6 O
9 f1 b8 f. t& u% U
extern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)+ h) w  f9 i8 T$ L4 d% f
{
& K2 [( _8 j1 S: ^: @8 U    Session *theSession = Session::GetSession();( c4 Q4 |) I/ I" Z8 P
    UI *ui = UI::GetUI();# h( Z! H4 }5 a/ C( Z- e& a0 i
    Selection *sm = ui->SelectionManager();
& V. J6 Y$ n1 s% {! e    std::vector<Selection::MaskTriple> mask(1);
# |) f# V/ w( _5 ?! c9 i    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);/ C! [" m- H* F0 ]
    std::vector<NXOpen::NXObject*> objects;
" g( ~& [$ e8 I0 |1 j; _- `    unsigned int ii, jj;7 F* j- R9 c8 \  l
    Annotations::Annotation *ann;% K) \1 r5 ~% Y7 `6 o
    std::vector<View *> views;- b# `7 I, s9 y  q
    NXMessageBox *mb = ui->NXMessageBox();  {) @0 X" m& L
    std::vector<NXString> messages;
2 d) d7 `0 y9 c/ C" d: e5 a) w6 c
5 Z8 L6 ?8 x  b& s6 u8 [
8 @% Y' g: d! K: R+ D
    Selection::Response resp = sm->SelectObjects("Select PMI notes",
! f4 W; e' T% {8 m7 z        "Select PMI notes", Selection::SelectionScopeWorkPart,
4 p1 k9 a& ~" \! }! ^        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,8 P" h, ^% M2 m( {
        objects);
8 }: f  t  x$ g5 G' ^6 m8 |7 l- Z
: k5 Z8 r) y) Z6 d# {$ R# O
1 \) u' J: G4 x
    if (objects.size())
  o7 f; x$ D  y& x9 H    {$ R0 @0 o$ }6 U: p, K/ ?
        for (ii = 0; ii < objects.size(); ii++)
6 n' f$ A3 {, D. Z  f  C1 N        {4 F& F8 D4 z8 G, [' l0 t

5 c; b7 X8 r0 C  j' j7 |) d. C
% G$ ]# c: D) p: I
        /*  This may fail - see PR 5872709 */
* w5 p/ v1 j, @% [# H2 Y8 n! B9 W  z$ I: u

5 \, x! C  ?( a) r            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);0 r" X6 k" ]: X, T, ]
            if (ann != NULL): y$ w% I3 o. u4 h/ x
                views = ann->GetViews();! h- H/ d7 X% k: c9 o; ^- u0 [5 v
            else- \1 g7 `' S; T: ~/ L6 M
            {* S4 t6 s& w7 e
                mb->Show("Failure",
5 J* q  p- Z  k2 p5 q1 N                    NXMessageBox::DialogTypeInformation,6 U3 L0 I  y- t$ P" p) T9 @# z+ t
                    "dynamic_cast did not work!");
2 g& V+ u) M% R6 \
8 @  i* w# q1 p/ B1 P) c
$ u2 w: E; d' A) B# M. P$ H8 y* K
            /*  This will work and is safe due to selection masking */
5 Q9 t  x- q! u) W2 K
" P& c( b) l( S, Q

: A: l) q; W* h9 p/ Q6 e( K4 Q                ann = (Annotations::Annotation *)objects[ii];' D2 j& M: h! v, s1 a$ P
                views = ann->GetViews();" e) Z1 V9 |+ Y+ s
            }
$ ~+ {4 F' p* T( f% V' \4 \  X: N9 U- [7 h7 r7 C+ d* C9 h3 r

  b5 x! B5 a# E* Y# L6 A            if (views.size())0 h1 I: B- V% c" ?
            {
5 O# p- ]5 a7 p/ q                for (jj = 0; jj < views.size(); jj++)
4 e. ^. N$ J. ~9 A                    messages.push_back(views[jj]->Name());' D' L9 ?- _. Q

1 Z/ _. }3 o$ y7 E+ J( s" u

3 p  a, [% Z, B; P1 h' J; ]- M                mb->Show("GetViews results",
! N: B/ H( m, W8 r4 ?                    NXMessageBox::DialogTypeInformation,
. G/ @0 Q' L6 o9 [3 E0 ^4 v: K                    messages);
" ?5 f& z4 [: Y( d6 i% f5 S
+ _" f& p" @0 o" U' E- w

& u1 R- S+ A. w) Z" m. P$ m                messages.clear();8 `( H" v# A, `/ _: T8 K
            }
& D- S4 B- f: ]: O        }9 ]. {" Q) |: D2 Q1 _7 a" o
    }" ^1 l4 b9 u$ n9 V( A; [( A
}
* [" U9 J6 Q! R6 u9 D5 e4 p
5 I; Y: i$ ?& K/ u9 c6 X+ u
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了