PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x
  H( ?( c7 G6 v1 M

  \2 A# `8 Y  W8 ^NX二次开发源码分享: 报告所有的PMI显示的视图对象
3 i# m2 j6 C8 \7 J& ?5 I" K' P9 K" k6 m/ C$ u! ]+ j
extern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)
6 r6 y. i6 `/ N7 r1 m3 P) p{
6 c7 ^3 G' C3 r" i    Session *theSession = Session::GetSession();4 B( y9 I. i" r- O
    UI *ui = UI::GetUI();
5 [! Z) R! |2 n% n9 z    Selection *sm = ui->SelectionManager();
2 f, D9 O( Y6 O2 M    std::vector<Selection::MaskTriple> mask(1);2 ]/ t( `/ w: K9 m" p
    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);! f$ a; P- l' b7 j* Y, H" V# v
    std::vector<NXOpen::NXObject*> objects;/ B8 g; F  O# G- y: ~
    unsigned int ii, jj;" X: L9 C1 L( I. X# Q7 W
    Annotations::Annotation *ann;+ V/ o6 b& ]; n
    std::vector<View *> views;' v; _+ x8 O  O
    NXMessageBox *mb = ui->NXMessageBox();$ ^/ ]8 X* B$ ]; t
    std::vector<NXString> messages;3 x' f' S7 ^8 ?; M0 y; j' @" o

+ A2 \% ?2 O, b# L2 P- K
  ^% L0 m% R1 i
    Selection::Response resp = sm->SelectObjects("Select PMI notes",
4 L9 p  R$ i# S- j/ {        "Select PMI notes", Selection::SelectionScopeWorkPart,
8 I1 g- g1 Z' `% ~9 ]3 ^! t9 }2 }! K# [        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,1 O& p* o8 W' [$ k- r
        objects);0 A+ b8 C1 `4 X; n% d% q* m& V
) f6 W$ \, V- P' W2 o* s# G3 j
% j$ b$ G) ]2 V) c
    if (objects.size())
+ d$ A7 w5 J( G2 G9 O' V    {* J  |6 I; v8 S' U4 _# s
        for (ii = 0; ii < objects.size(); ii++)9 q, p! z  ]5 u! v: u0 A
        {
- V+ M6 F, L# l  Q& v! p- G7 M" y& U- ]
1 b+ M+ d$ h, [: @! m2 D6 K
        /*  This may fail - see PR 5872709 */- z' C4 K0 w5 k2 x* I* `
. W3 o2 Z4 h6 i- }+ p9 F; E, k

6 M* g5 {( o1 V& ~            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);7 ~& L/ X' v2 c2 M
            if (ann != NULL)$ f) r0 U3 t. `- h7 _" G* g
                views = ann->GetViews();, c" [" r% D9 P9 d  U' w
            else
8 \3 a" ]3 w. x  Z4 Q& W            {
8 [- ^- k* t  B* ]1 Z) S$ o6 P                mb->Show("Failure",
( b. x. Y$ `% f. x& ^                    NXMessageBox::DialogTypeInformation,
3 d/ L# z/ o  s7 a# O) [8 ?                    "dynamic_cast did not work!");
5 n8 M) ^; e' M: D  A" G7 r
8 W1 n6 ^: C6 r
# y* Z8 x$ o6 {: b# S6 k$ p
            /*  This will work and is safe due to selection masking */
1 r) W7 a1 Z8 y9 Q8 J. r, m! d9 C
$ e9 @" e. c# ^3 L8 X! ^+ L7 b
+ ^" \" c- z1 I0 K
                ann = (Annotations::Annotation *)objects[ii];( q- u* f. Y7 w. Y
                views = ann->GetViews();
2 t5 I/ r3 g. K9 g+ X& U6 R$ ~6 F            }0 n" J( t, W& h- M

! r% N' h+ I: b2 a- S

/ k: E/ U- }  V3 }7 n            if (views.size())
0 ?- v, ^7 p5 K8 c/ C( c& R6 A' W            {* C- ]5 s4 Q+ `/ S" E4 S9 H
                for (jj = 0; jj < views.size(); jj++)' Z* L) C1 J+ i8 Q2 }, O+ ^( K! f% ~
                    messages.push_back(views[jj]->Name());2 o) L, |3 k" H' O# i7 j3 F/ _/ J$ y8 u

' G* i8 E2 e+ _

) ~1 c: ~  S8 Y! H3 ~                mb->Show("GetViews results",: ^" v& |! u/ V* W) `) M
                    NXMessageBox::DialogTypeInformation,
, N- h! d3 H( f                    messages);
; F' e( N5 G8 O
7 T# j& \" l. e+ ^+ a; ?! E
6 U" |! Z5 A- y5 G8 w& r' T7 ^
                messages.clear();: y  T* B. |4 g/ H% k
            }5 n/ u1 E  y* K9 W+ W2 _
        }3 v- M/ i! y3 E) i& [
    }
% M- U! [5 f, i" l}+ g- W! q# p. ]: Y& n( t8 P
0 l; v6 ^4 ^# S  O9 |' j$ 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二次开发专题模块培训报名开始啦

    我知道了