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

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x
# `" z1 ?0 `; b7 f: ^# A: K. Y

# _; X, z% C" j0 x/ mNX二次开发源码分享: 报告所有的PMI显示的视图对象
. z  H+ _' f6 s  T' o6 q4 d! Q% I: I  i8 @
extern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)
, K! G- M+ d, C, a6 F{
+ K4 o& G' ?1 F$ u    Session *theSession = Session::GetSession();
, Z8 q8 @) S4 X# N" ~    UI *ui = UI::GetUI();2 C) s  C7 T$ h$ V" |- c0 o* h
    Selection *sm = ui->SelectionManager();
4 {5 ~- x4 g3 @& B" h1 {    std::vector<Selection::MaskTriple> mask(1);- X* p. Q5 v' V1 O' b  q
    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);* ?- A7 C1 ?! f9 o9 h
    std::vector<NXOpen::NXObject*> objects;
+ F. G- B3 S: Q! P    unsigned int ii, jj;
9 N  l# x; P# l' F1 W) H    Annotations::Annotation *ann;
0 I* k' C3 c9 v    std::vector<View *> views;
( T  V& M! S& O% |  P' @5 w$ l: |    NXMessageBox *mb = ui->NXMessageBox();
8 K" l: h  w( I! Q    std::vector<NXString> messages;
( N% f1 H: r9 ^
9 \% ^4 ^3 a& X! E2 z8 B7 \& z
; S) J5 I' v$ g# o: s- w
    Selection::Response resp = sm->SelectObjects("Select PMI notes",
( r  B4 K7 X7 \" O        "Select PMI notes", Selection::SelectionScopeWorkPart,
, B$ l3 i6 }: S5 I        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,8 I" `: D7 n) P' V/ |+ R
        objects);
+ {9 N; I  \6 a5 [0 W) f# K; f5 h) o8 q; F$ m: ~! q! o  Q6 _
1 B# `. L# @3 c6 X& s; V% M
    if (objects.size()); N9 l9 E7 ]6 R2 r" b
    {
4 {, Q/ |. z% f$ J1 C# c        for (ii = 0; ii < objects.size(); ii++)
) p# j* v+ F! C7 C        {
0 {) \9 u1 i) Q8 d, T
5 h* T  a* w* b! \' w. L

/ S, X$ Z0 j; d$ [- }# U/ i        /*  This may fail - see PR 5872709 */0 w3 |: ^9 r. w" u. X9 c2 h) ~

. k) z2 |! y; R3 _+ g* o4 I8 r
$ e" V9 t0 s/ ~6 J+ }& d) ~9 @+ I
            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);: z. e% b, R8 f$ \6 N" y$ z6 b
            if (ann != NULL)  [' }8 Q% t; @
                views = ann->GetViews();5 O  G# J4 E& n, x
            else+ L7 P' Z; C( l# G* m0 K# d) D# }
            {7 H! m0 x2 ]3 S# A; V  v8 ?
                mb->Show("Failure",
2 d  M& a8 P: w7 O                    NXMessageBox::DialogTypeInformation,
7 j1 Y* [4 @, J  Q+ \! Z) ^                    "dynamic_cast did not work!");  p. M# ]8 k: `
: E+ ~+ k- p$ H- P
' E3 N) U5 O( a' J' z4 q
            /*  This will work and is safe due to selection masking */0 S. a3 g2 Z6 A: {7 y. v

$ J9 z, P, G' l6 p& {) p& r/ ~
4 W3 Q! w+ R9 A/ R6 J& z
                ann = (Annotations::Annotation *)objects[ii];
. h0 r% _/ T* h+ T- z6 u3 H                views = ann->GetViews();
! H& B+ [# W5 w* r' |, x4 d7 g            }
! w' @. g$ d; U: S8 q$ M/ r8 a* P3 P# e7 K$ `* X2 A1 s' r: n

. J: t& R0 [- C" k% u. S$ U            if (views.size())
7 o& E7 J$ Q/ i2 h7 ~" |+ n0 r% D3 q            {
8 r! l; U  ?' N8 G( g# F                for (jj = 0; jj < views.size(); jj++)
8 e: {/ |% M9 Y                    messages.push_back(views[jj]->Name());+ f" l9 r/ }; n& g; g

3 m8 a4 G. M4 T2 B0 C/ N

7 m% u3 K  C3 i9 f$ u                mb->Show("GetViews results",
8 |0 R9 b' R4 i. T                    NXMessageBox::DialogTypeInformation,; t# b; n7 t# C! U  u- K
                    messages);
$ ^; Y9 {+ ]1 s' s# J) A9 v
+ P2 X  j: Z: Z- w6 d

1 J8 Z2 B' c# m2 O                messages.clear();
3 }% T- H( p5 a, J" {            }
$ m& N5 w0 B2 Y9 w. }# k! y        }' k7 d* ~$ H7 d9 ~4 q
    }
' l+ T" l+ P7 D: H' N  i  }  P: Y# T}% @, a6 e3 r+ A5 D
/ c4 D/ E8 J3 h7 V* O- 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二次开发专题模块培训报名开始啦

    我知道了