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

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x

; S) x1 r, p9 O: H- k! _. `
" X; U0 W2 q7 U' A$ g" TNX二次开发源码分享: 报告所有的PMI显示的视图对象" y- p; \, q* r4 r
, L' l! F; R1 A( `' h
extern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)( S7 P# g- r4 r
{
2 G0 z' ^4 V& b# X8 A" T( J/ z* F    Session *theSession = Session::GetSession();
* g  I4 {2 Z0 \/ L3 i/ }    UI *ui = UI::GetUI();& F1 e0 l& ^" u) \& {. {( C
    Selection *sm = ui->SelectionManager();
" k' E4 u  B) a- P5 n% D    std::vector<Selection::MaskTriple> mask(1);
: H' l8 N& `9 R8 u    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);
" V0 C" ^! X1 Z    std::vector<NXOpen::NXObject*> objects;1 u. B, C+ `0 B2 z
    unsigned int ii, jj;; f' ]2 u5 H+ W: B/ @& a* l9 z
    Annotations::Annotation *ann;( E5 u2 \: S% n" @  L/ C
    std::vector<View *> views;, p2 V4 G9 f0 R9 X
    NXMessageBox *mb = ui->NXMessageBox();; k1 W9 Z) _& w" D# ^- c
    std::vector<NXString> messages;
0 k  T4 P, G$ u! T
) ^: _4 c' K9 T( @8 `4 S& r+ j

4 `; ^, w7 Z; a, r2 j; ^: r& }    Selection::Response resp = sm->SelectObjects("Select PMI notes",
1 s4 ^/ N- V! Z) S        "Select PMI notes", Selection::SelectionScopeWorkPart,
  ]0 p! n! Z4 D& \* n        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,
  `3 {% t( A) X: N: }        objects);! ^# P0 \* d0 |! Y: h: N# I8 L
" I# V' K$ S. F

. t0 G8 a; R  `  v    if (objects.size())+ l( c/ G  T8 y+ U
    {2 ~. z! v# R0 X2 L' z+ k& q& D
        for (ii = 0; ii < objects.size(); ii++)
1 ?6 {% i- F' |/ G7 b/ o- ^) s# Z        {
* I2 X5 e( K; [5 |0 G& z6 y- c
5 {7 r& P/ D" i' l
1 R4 L7 u1 [; y+ s: s7 I
        /*  This may fail - see PR 5872709 */
; x+ F' r6 v( S, R7 L8 @$ t9 q! f  N( {8 O! g& r; w6 J

6 c! ~, ~: p# I            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);! E$ v+ L* a0 X8 }6 A
            if (ann != NULL)
! A8 N* ^0 t+ x; J1 ^" P                views = ann->GetViews();
0 ~/ S* L5 Q; ?; M$ T# w            else, o2 p# C! m! v( e3 h; Q! z! D+ V
            {
5 p! O, J/ p; ?' V  e8 g                mb->Show("Failure",
5 \! J, I* s7 {$ X8 }                    NXMessageBox::DialogTypeInformation,7 H# M/ ^3 h( o0 t" h' U' ]. J* X& A
                    "dynamic_cast did not work!");* O+ A6 ]3 Y% h& Q9 f2 I
* m) F& {9 Z/ y" z
7 x; q; e# N* ^' C
            /*  This will work and is safe due to selection masking */
: N  f: I9 y7 Q) b/ R! h& r& G/ Y% H- z6 D* O4 |

* c& {# z2 w! h/ P8 X. F4 y. [4 W% f                ann = (Annotations::Annotation *)objects[ii];6 J1 z( |+ q6 E/ X: _8 i- m
                views = ann->GetViews();  D+ k, \& s( j1 \, R  I
            }
; X/ W9 Z/ L9 O
# C& f% X8 d% r  z* `1 r! N' @

' k* O. V* |8 K( {! S            if (views.size()); X% Y- I: r4 r" b7 X
            {" z* o* r3 S; i% `# i, ~
                for (jj = 0; jj < views.size(); jj++)
4 f3 q9 p# F8 x! u! M6 `6 t                    messages.push_back(views[jj]->Name());# d/ b- [) t& J2 ]$ v

" i  y/ b) k+ `0 g5 Y5 m
3 m. a# v! G* \( l' F# R
                mb->Show("GetViews results",9 |; X% }1 J$ T, w0 f
                    NXMessageBox::DialogTypeInformation,
4 E; ~' V+ Z0 _                    messages);
% J6 c" l) O4 S2 T5 W/ M
5 a9 [& C2 c5 {" G) S. l5 N

, }9 H9 I* N3 R5 L9 ^6 U/ A                messages.clear();
6 ?* h1 e2 T  O            }3 S; M# Z1 ^8 ^8 O
        }0 J0 P& |' \4 u7 E0 E" r) \
    }
9 Z  U1 h9 K% f9 h8 a8 o}- s% ?2 w8 g. ~9 T7 _1 ?
8 A' \. Z' k- y9 v
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了