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

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x
8 U4 `2 \5 Y# V8 c% ~

/ }8 I4 a' U  ~NX二次开发源码分享: 报告所有的PMI显示的视图对象: ?/ h$ Q$ M0 b, r2 U

9 m( S" O+ ]0 Hextern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)1 ]; |8 h9 x+ L& _' t! [( \
{8 r2 d$ e5 q; k. v$ s; u! ^1 d6 L
    Session *theSession = Session::GetSession();
: @; t# t" C2 ^# |0 G    UI *ui = UI::GetUI();
, G8 k1 b% f  ]  S  K7 P: b/ X    Selection *sm = ui->SelectionManager();8 `6 X# J8 c, L0 x7 z6 l
    std::vector<Selection::MaskTriple> mask(1);
% P& d5 S8 d' C9 q" z    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);& B2 l; K( \* t5 _6 Q
    std::vector<NXOpen::NXObject*> objects;
7 q9 |$ N, b/ q* P+ y8 d    unsigned int ii, jj;( U9 n- f0 ?2 K1 R
    Annotations::Annotation *ann;
- Y1 H  n2 s4 B8 S    std::vector<View *> views;
9 o5 @- z8 h. r$ F5 a- O: L$ H    NXMessageBox *mb = ui->NXMessageBox();9 M) L$ U: ?6 t( T
    std::vector<NXString> messages;" L" _0 d2 J8 G1 o6 F

2 r- G, Q, o4 b
* `( l% |, K; {. U% o$ N2 Q
    Selection::Response resp = sm->SelectObjects("Select PMI notes"," Y# k1 l  [( ]1 ^
        "Select PMI notes", Selection::SelectionScopeWorkPart,* s) C; Y$ r! A/ R) o1 `
        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,
$ e* J5 D5 d. I        objects);
6 [3 ]7 X6 M% |" q! Y: M5 X& m+ A1 D/ c7 }

3 c& Q0 h6 `' R% L* m/ H, Z" z/ c$ ~    if (objects.size())8 i6 u9 a; Q' V9 w/ c
    {
! A+ ]% b5 l% @        for (ii = 0; ii < objects.size(); ii++)
( w* d. V4 U6 L4 J' ]        {# x$ k2 A" h& e
+ R' A  R- ^0 W$ j& b% y

$ S; S/ v' D# f. i+ i        /*  This may fail - see PR 5872709 */7 R* q  E" N/ L  C

* V$ Y2 B+ c2 C# U/ e

# f% z( Z/ P, d% h- H2 G            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);
: q. s$ ?) E$ K0 @# r: H' X            if (ann != NULL)0 w$ A: R7 S5 E1 f2 b
                views = ann->GetViews();
+ c8 e9 t; o+ [7 [  l  @/ }            else2 f; P2 a, o3 U/ c" D/ v* i
            {' j* x# p) Z$ w$ \3 {
                mb->Show("Failure",4 w; _8 l0 |, n
                    NXMessageBox::DialogTypeInformation,
* d5 T7 T% D9 {! k- d                    "dynamic_cast did not work!");1 @* y7 ]/ \- P2 j5 W

6 L( d8 Q( [6 |/ q4 G( Y/ h$ f

& I1 W3 k6 u0 g7 b% B% ~            /*  This will work and is safe due to selection masking */
  G1 y* h- I' K& w& `
8 [% K( s  C' A: O+ Y5 O/ q
8 z% s0 y7 J: d0 k$ ~! h* W
                ann = (Annotations::Annotation *)objects[ii];2 v& N$ y* b9 _" u+ P5 I2 \5 n* `* E
                views = ann->GetViews();
8 K4 ?+ f9 G$ }            }
$ w3 _' D* b2 i5 k- _# m. u9 l( Y, r. m$ W* W) T
4 W1 i5 Y$ {# X( a
            if (views.size())  K2 k6 @  ^: \( p5 D6 v" P; }, d
            {
$ T  N$ J3 }" Y+ {; _( X                for (jj = 0; jj < views.size(); jj++)3 e$ O1 I, I( S
                    messages.push_back(views[jj]->Name());
5 C; Z. s6 @' T$ l( `* Y9 t) t$ e; P# Q8 c( {9 X, p& b! h. w

8 V* P0 O2 G& J3 a% i: r                mb->Show("GetViews results",- t! G8 I0 j1 C# ^3 g4 @
                    NXMessageBox::DialogTypeInformation,- `& r) c6 _1 s) ?4 X7 ^* b; Q6 P
                    messages);
8 |+ c: I$ I! @2 ?
' s/ f1 m0 \& ~  g' r6 q
* s' \. `+ [+ P2 M  P: l4 ]
                messages.clear();1 G3 ?2 E- f8 L+ X+ |" U! S4 q  }. T
            }( d( i/ q8 G# U
        }4 x9 {( _% L' z! q
    }# m8 X# ~/ Z' ^3 ~# E) j
}
1 ?6 _, P- @7 ~, {( E0 e% X' d  d% s1 y1 {8 z* K
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了