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

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x

. h$ w* C5 V+ V. A  R* h( P" n- f2 }3 ~" T7 I# N2 T" w7 I6 F
NX二次开发源码分享: 报告所有的PMI显示的视图对象  i, V3 g( D* l0 L* g: D' j/ S* x
7 L, t$ t" n9 N
extern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)
, G7 k/ |* V. `+ J& F- _{
& p  Q5 u0 e) C6 M  e    Session *theSession = Session::GetSession();
/ E! C* c1 B& e8 C; v' n    UI *ui = UI::GetUI();8 K! X7 M- A) i0 @( J
    Selection *sm = ui->SelectionManager();
1 G3 w. z5 ?; M    std::vector<Selection::MaskTriple> mask(1);
% f3 P7 i! w4 t- A3 z    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);
$ N+ H0 T. o3 X* y! M    std::vector<NXOpen::NXObject*> objects;* T6 b4 l( n" x5 u& l" H$ s
    unsigned int ii, jj;
, E# J% O4 Q/ E  }    Annotations::Annotation *ann;/ X7 g2 G) T. @4 i5 z
    std::vector<View *> views;1 P* r0 w9 v4 R: G
    NXMessageBox *mb = ui->NXMessageBox();
* `* M$ F) q) `6 h! N7 @1 C! |    std::vector<NXString> messages;
8 ]- }5 B% Y! z3 E) d- C  h7 K
4 B1 U2 ^& F( `: D5 [

& ?2 X8 h9 V: Q) N    Selection::Response resp = sm->SelectObjects("Select PMI notes",) d2 a/ L/ \7 J( g
        "Select PMI notes", Selection::SelectionScopeWorkPart,
. Z" X7 R7 u  b        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,- T/ X! |: ^1 p4 `9 K! A9 P
        objects);
' h2 b* d6 ^; x) F6 K/ M8 `! D/ U/ O
: \" M  N3 {1 h
    if (objects.size())
( F8 I. x% Y2 n9 i/ N- Z: f    {
  }3 S/ ?; B0 ~# v+ ?! H        for (ii = 0; ii < objects.size(); ii++)& ]; w4 m" q# l) I5 T
        {
; W/ o' `! w0 {+ ]" W0 V. t& f4 w9 k8 N% K- U: z2 s
1 j- j# a' D4 z: U
        /*  This may fail - see PR 5872709 */5 B- y! T3 c) h, ]. I3 K
4 Z( \2 m5 r' T" e# A0 ^

* H7 E: `) ^2 j' z$ Q5 F. _            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);! T5 Y' }6 x& W/ t
            if (ann != NULL)
7 \, O( N3 [- ]1 Z* E0 O% [! M                views = ann->GetViews();
/ j( R+ f* j- z" i2 R' @9 Q            else- ~6 ^+ D. t. f
            {
$ L6 n! C  v. H7 b0 a' E5 a# p# u                mb->Show("Failure",( \, i3 i& U" h. z/ I
                    NXMessageBox::DialogTypeInformation,$ A8 ?' X  e  ^" e3 Z
                    "dynamic_cast did not work!");
5 N* E, r0 t2 R" H  R* r0 L# |
7 B+ [/ Y; D0 `  d

& G* W+ G; T% J0 L9 \            /*  This will work and is safe due to selection masking */
( \1 a) s9 ~- T" V5 s+ r2 G$ t1 P1 D, u# O% I7 w4 E- y* a3 m

: U& S& K# Y. W( G8 A0 }4 R                ann = (Annotations::Annotation *)objects[ii];
4 |- @& a# t8 t; D7 a                views = ann->GetViews();4 p% P; c7 b* {* {2 W% j: [3 H
            }) [4 P( ]! `' k; m6 D
& ?; }' Z6 a" f; L4 {; Q. p

" C, X/ S  s/ ?$ `            if (views.size())
( i/ \, H6 W6 M- P8 Y            {
- _) {$ T" ]4 r                for (jj = 0; jj < views.size(); jj++): G: C7 u$ \, K. ]0 C1 W
                    messages.push_back(views[jj]->Name());/ K* ?) B! b3 @3 T5 o2 @0 H

8 c. F- e0 k2 g. Z' g/ \

5 `. n9 c6 o1 B! W                mb->Show("GetViews results",' [% a1 W6 {7 L
                    NXMessageBox::DialogTypeInformation,
6 k9 ^) H% N( N+ t                    messages);5 Q/ c$ n; x8 e

& K% U' p' J" @+ \7 I" s" F
/ m: u/ w( P3 L+ }" ~
                messages.clear();
1 @) u; E) Y2 S            }
2 i5 }  E, S% M$ y0 W" a        }
: D+ p6 L6 n" t5 i0 a' `  l    }% {  h+ \: N. W5 j* O- [
}4 A( U$ e7 i$ P% b# ?: c

6 X+ G" c& u2 W- w0 w! r
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了