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

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x
4 Y8 s8 T; }. ]/ O% `# i( \
5 W- A% _  i8 ^$ F
NX二次开发源码分享: 报告所有的PMI显示的视图对象2 n& b7 m( D$ @- ]6 ?

: n) b/ r4 {- e$ C5 Sextern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)$ R/ {7 c$ K% y9 j, V6 p
{
5 o+ b& q* \& H/ D    Session *theSession = Session::GetSession();$ l+ n# D; }; R
    UI *ui = UI::GetUI();
/ J( i/ p0 u' A. w$ y5 L7 B    Selection *sm = ui->SelectionManager();
+ a4 A, _  I" D    std::vector<Selection::MaskTriple> mask(1);0 ^% T/ N2 R+ \8 t3 L3 Y5 }3 \+ f
    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);
  T8 o$ Y# H6 e- \8 c( P# W" X    std::vector<NXOpen::NXObject*> objects;, m5 a, j1 t* T+ f4 @# ?
    unsigned int ii, jj;
9 }% C3 S( p- s! z    Annotations::Annotation *ann;
4 A+ @& R0 s3 H" t- @! B5 b. W    std::vector<View *> views;' L/ X/ w/ ~! w. S  ~! D
    NXMessageBox *mb = ui->NXMessageBox();4 e8 d7 }' Q2 P' B0 h* s
    std::vector<NXString> messages;8 {3 d* e& ^+ \' c
. y# }5 m$ l( L. d9 \3 _! j4 m

8 _" l6 d* z# _  N. w1 K3 i    Selection::Response resp = sm->SelectObjects("Select PMI notes",
/ b* Z, Q/ k* n7 A        "Select PMI notes", Selection::SelectionScopeWorkPart,
( H  m4 h) b& V' l1 P4 l, m        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,/ X6 K" O$ l7 D& B2 l: o
        objects);
' Z) E% ^$ L& B  s, t
) p* U( @6 {& \$ G3 S. |
: E5 ?) ]) w- j
    if (objects.size())$ H  u: G* q, _0 G. w
    {
( l( K5 t$ j2 a. X# c9 s        for (ii = 0; ii < objects.size(); ii++)+ V* b1 E) i. h5 q! e. m2 \- o
        {8 R6 q8 o3 j0 e. C+ N& ^

" I4 H; @3 O2 R

9 F$ b; I7 T6 i2 Y/ G! o        /*  This may fail - see PR 5872709 */
" C' c( Q1 L- V! |4 w
& h1 ]# ?/ x& n8 H) Y

$ k7 D$ {" y, N6 Z. E$ h1 b            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);3 y' [  X7 w5 h5 C" N
            if (ann != NULL)2 c' T1 F/ x2 u
                views = ann->GetViews();  j" T9 k2 |# D( g, t1 k
            else# T9 m5 K% w8 I- t" m
            {
. Q& a. S/ Q; W                mb->Show("Failure",, ^# |1 O& m5 V( Q
                    NXMessageBox::DialogTypeInformation,
9 z% I0 i' S" _& ?' X                    "dynamic_cast did not work!");
2 ]3 j3 Z1 A8 M) o9 ~5 k5 X  l, i+ v/ V$ ?& {$ }

& `4 A) L5 I1 D" ?7 E            /*  This will work and is safe due to selection masking */. Z% N) m/ Y. ]4 |3 [

6 K" ~- p6 Y" ]8 |7 [
" G3 M/ @- M1 l
                ann = (Annotations::Annotation *)objects[ii];
6 k$ W6 l2 _  C2 O. H                views = ann->GetViews();
' y, v. [+ X: Z7 J* Y) p( E0 |: v            }* |" I+ J3 h6 }
! @1 g6 u; a4 _+ ]7 c  J1 H& [
0 _7 j" M' g+ W' v- n
            if (views.size())
5 I, S4 O: ^' `$ D: T$ G1 S            {
) f* h' ~# |+ \                for (jj = 0; jj < views.size(); jj++)) M" D4 [, O8 k+ D6 T" G
                    messages.push_back(views[jj]->Name());  u  i* I. T/ ~" U5 W4 J" C1 u: |

3 w# P4 |, e0 T4 E
) Q% m6 K' d$ t
                mb->Show("GetViews results",9 r6 O. Q+ q" u- A% U
                    NXMessageBox::DialogTypeInformation,) D9 b- ]* e3 d7 l: @& m4 f
                    messages);
/ W6 ?9 b( q% N6 }3 X+ P8 l. z" G
/ a) D* ~+ L2 l- D, o4 f% B0 M( F

0 n! t; K1 X# }                messages.clear();
4 N; h" o& }/ B            }# Q1 j9 T! J6 [1 n
        }
4 e4 b% P* a, s- b6 a/ I3 _- u# c. x    }8 r5 G  u& f3 G% K* b+ @" X" w
}
# Q7 u# y0 F( |, s; d5 l7 u9 U3 N2 y$ v* C
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了