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

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x
3 E% O$ N' O! k

8 P2 x( O" K0 l( @3 C; pNX二次开发源码分享: 报告所有的PMI显示的视图对象
. a7 N: C/ l& y& U- R2 Y9 s# @3 P) E! @3 U4 Y% q7 R
extern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)7 S% D3 v, N' [0 B% e' n
{( w; G6 V# F- E, R, x
    Session *theSession = Session::GetSession();
, c) [  [0 x: J5 N3 `  C& D' R    UI *ui = UI::GetUI();- w( K! T- c5 I0 w0 r
    Selection *sm = ui->SelectionManager();5 A, H, `' L) V2 f1 U. C- {/ d4 l- i
    std::vector<Selection::MaskTriple> mask(1);, i9 Y7 Z+ I$ \7 S; V; ^1 w6 ?
    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);+ N& |* `5 h; @6 j) ?
    std::vector<NXOpen::NXObject*> objects;+ q! l9 G" Z. z# n
    unsigned int ii, jj;
" _' _. P1 F1 O  H    Annotations::Annotation *ann;8 f% I- r  W, U6 l! l, k4 s
    std::vector<View *> views;% J" [: x: S; j  L: s8 H4 }
    NXMessageBox *mb = ui->NXMessageBox();' [. |; Y" ^! b; Z* P, D
    std::vector<NXString> messages;
, ]6 X: B! U8 e5 Z- r/ F! M' H( B. K3 y# c2 S+ |
7 |; r' a  }& C% P7 v" R- B6 X
    Selection::Response resp = sm->SelectObjects("Select PMI notes",+ J. Y: K- n8 {6 i
        "Select PMI notes", Selection::SelectionScopeWorkPart,) x6 u5 b; i; \( h' a
        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,
( @2 `4 u- N% J8 t, ^' x" v        objects);# A, R$ G) D: G# s

; f0 n( R3 q( A% Q4 G2 F+ [
% D( W! J4 Q- m; ]. E( m
    if (objects.size())" d; J4 t$ g& b
    {- n% w; B! P; a5 ]2 }
        for (ii = 0; ii < objects.size(); ii++)
8 u3 q3 ]) O5 F0 R& H2 y8 a# q' x1 g        {7 ~2 I& c+ `5 e) {
3 B: u8 m! }  a! S

( c! M) K5 M. u7 d/ W" q; `6 M$ B8 M        /*  This may fail - see PR 5872709 */
' x7 g; V: {8 [( m1 Z; R# Q5 n7 }/ i4 i

8 Y, B1 p/ s% p" ]3 w            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);6 o( h; i( w; w- c9 @- ]2 S
            if (ann != NULL)
/ s6 {$ u4 f' M+ H3 o+ o$ \                views = ann->GetViews();
3 I# m/ {$ Y! O            else
0 \' F, o4 ~9 {            {( H, x. ^* r1 Y- }3 n" {
                mb->Show("Failure",. @$ F, y0 V7 U' I9 J
                    NXMessageBox::DialogTypeInformation,  l. D4 P8 o: Z8 M
                    "dynamic_cast did not work!");
$ y% u% t, L2 V/ [6 d" y; h) R8 G; k/ A- a5 u7 S4 c6 V

/ g; w( u5 q2 A! K$ F            /*  This will work and is safe due to selection masking *// x% _, x, h# f& F& e' M

$ h  H* E6 i" O
. E: [3 D$ j6 t, @+ b$ r! G
                ann = (Annotations::Annotation *)objects[ii];
6 y+ X, L3 R  ?$ J) Q                views = ann->GetViews();2 X3 q8 o$ {: y2 c
            }
9 Z' e( H8 k" ~& ^% f6 k) l& [5 t3 p
  z- J/ |8 _  w- _% ^
            if (views.size()); d  F# u& P6 G8 ~" U3 `
            {
7 K# g0 u1 |2 m! W" w- {: U! C                for (jj = 0; jj < views.size(); jj++)  j4 }9 }1 H' h6 a: F' {/ I3 \
                    messages.push_back(views[jj]->Name());0 J9 M2 h" G8 u- v* j* w

7 c8 U: Z: s+ o& G! f- X& X5 ^$ Y
1 n! p* Y# Z3 _. Q! ?% Q
                mb->Show("GetViews results",1 h) k: Q, ]$ _: N! Q) Q
                    NXMessageBox::DialogTypeInformation,
+ k  L5 \/ p& B2 E2 E) f                    messages);6 [. A8 e4 L" E* X2 Q" G* [& \* e

1 X0 A  u" V5 e# d: R, T
2 Q$ Z* X+ m/ z
                messages.clear();( b7 ?& R3 q/ c: ?
            }
) u/ I& B( _8 `7 f        }; w* S4 D' D3 ]# v" n
    }1 y2 x$ A- F6 F* e# i* Y  [
}
# X, C: O) k1 U& w/ _% c. a( }6 [% x3 [( x0 l, n" R: 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二次开发专题模块培训报名开始啦

    我知道了