PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x

8 K$ M& h+ x# h- |+ j$ d! }" U
. X. _! P, }( g/ HNX二次开发源码分享: 报告所有的PMI显示的视图对象/ I+ ~. A, a: @/ q$ a
4 O! I" ~+ `2 f7 z. a+ C
extern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)
6 H( ~- e8 z8 c% N' O) c{! I5 O2 |) T5 @2 X- k+ F
    Session *theSession = Session::GetSession();) z9 K, t% i9 S1 t
    UI *ui = UI::GetUI();$ }/ Q4 Y; o; F4 _
    Selection *sm = ui->SelectionManager();
6 }; _# |9 ]7 e) |4 p/ @    std::vector<Selection::MaskTriple> mask(1);' X, k+ n, t: ?6 d* |: Y
    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);
8 |3 D) \* t. I    std::vector<NXOpen::NXObject*> objects;6 Y9 b0 p  }- g, q/ u2 D
    unsigned int ii, jj;7 C: o) Q  }7 ?1 _" Z
    Annotations::Annotation *ann;
+ }$ F' X( J, z+ D6 D0 Y8 n8 R2 `    std::vector<View *> views;
# n! D3 i4 Y. I4 q    NXMessageBox *mb = ui->NXMessageBox();( M3 s  ~: T& S4 L; x
    std::vector<NXString> messages;4 r) P. b& V! J& P: y( Y9 G3 u1 n
8 J  _' |9 h# I& y8 h, Z* G$ {

4 |4 u- y. V# f& s4 O    Selection::Response resp = sm->SelectObjects("Select PMI notes",) i+ l; l8 N) x
        "Select PMI notes", Selection::SelectionScopeWorkPart,
# U$ o+ n- ?. O! A# b: P        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,9 O# _5 ^7 ?, m/ ]
        objects);
" _7 m! Y8 r9 A+ z4 M- {6 {9 X/ N$ k1 M& M8 E4 Z

7 c4 [0 s; H" R8 [7 f    if (objects.size())
/ Q6 |% _& O0 D( p: q# U2 T" E    {
7 s' ?& T& r: J8 w        for (ii = 0; ii < objects.size(); ii++)
0 B7 R( ^0 h6 t5 N2 F        {7 z0 R, T* M6 r, v; p4 N# y" z

2 B% w/ @0 A" t! B% U7 ?0 i) b

: ?  w5 i: M0 C% w+ [8 Z3 A; |0 K/ n        /*  This may fail - see PR 5872709 */% H' L# R% T. I1 |- b

# f6 h8 M. J+ Y4 e

  \/ M! n6 D1 |) n! F) P9 O* l            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);
0 T$ b  d' H+ q% V7 m4 h. H7 H            if (ann != NULL)
8 ]( [. T' G9 G, @                views = ann->GetViews();# e; M6 s) {; m' @) i
            else
* V0 H) M* R- i/ T2 A6 J/ v            {
* O- H; ^! X$ W. l: q) |) h* Q                mb->Show("Failure",. Q" g- [8 J, k+ M4 o( B) B) d
                    NXMessageBox::DialogTypeInformation,
; O5 y9 v2 I5 T                    "dynamic_cast did not work!");$ `! C& P' L1 @$ X6 A5 X3 I

: g, Z; S% d6 Y6 n9 s* H
* V. C# _4 R3 F" c
            /*  This will work and is safe due to selection masking */
5 h2 c# I( \# s4 X7 U$ p& b+ Z& S% {

0 ?) G; E+ L1 L/ N8 T2 h4 ~                ann = (Annotations::Annotation *)objects[ii];  S* [: G; J: a" E
                views = ann->GetViews();
) c1 Z0 o6 P, D            }
& B6 w2 X; A! j5 \- f! D/ k6 `3 w! P! v
% b, [' O4 z$ S" M6 s) {. |
+ I3 i+ ]' ~1 z& t( h" r
            if (views.size())5 J1 d9 w! v% U2 P; v' e' g4 c0 e
            {
* t; t+ A1 V- d# o. Z, R& ~$ N                for (jj = 0; jj < views.size(); jj++)
( p0 o0 @$ S  N' i) D3 k                    messages.push_back(views[jj]->Name());
' i& C+ J3 \2 S/ s/ e& y* O
5 `  ~0 Z* B$ t! j) U+ p6 z
# `1 Y* a  C2 V% Y3 b1 R1 R% J
                mb->Show("GetViews results",
0 e% ]5 P( w# Z5 g/ Z! o  p                    NXMessageBox::DialogTypeInformation,, ^2 ]5 B- d) B  m/ g
                    messages);/ x+ d2 U# b. x

0 W' Y; e7 P2 {. W( @( E

! y, T4 {4 J+ P: M: `9 |                messages.clear();
  Y2 u3 ^" e# j            }
- B* `  b' x/ D& _2 [% R$ Z3 i        }1 p4 \/ S: D0 i8 g% J, ]( _' L
    }
$ v6 m* m. a0 z  J: Q5 F}
9 j  ~/ @+ u* Q5 ]$ Z6 U
" @. o( `& A- K3 k
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了