PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x
# p& P* V* g# l

+ {0 Y1 J, j* `* r$ tNX二次开发源码分享: 报告所有的PMI显示的视图对象
! o1 |; i0 f' T. e$ R; V: S( N7 X/ b, Y7 R1 @# `
extern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)7 j% U$ u7 o& W1 {* t
{
8 B; \8 t+ h. N    Session *theSession = Session::GetSession();5 w( V$ A' s; ~; s; e
    UI *ui = UI::GetUI();
7 B- l/ Y4 E+ z$ s    Selection *sm = ui->SelectionManager();
+ ^, L' k) v  I, @    std::vector<Selection::MaskTriple> mask(1);- o" _' T7 S. C# N
    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);
* I* o/ G! l5 H# L    std::vector<NXOpen::NXObject*> objects;" z' V+ z% C1 |. y% [
    unsigned int ii, jj;
" W$ K. ?" ?, l3 ?4 t. |    Annotations::Annotation *ann;
  S+ q) d; T# `8 M' Q    std::vector<View *> views;
* Q8 Z- w& k& m9 ?0 }    NXMessageBox *mb = ui->NXMessageBox();  A, O1 `9 }, V. G
    std::vector<NXString> messages;
3 f- K! i: N2 Z! A
8 p) H: @" G( V2 D; t( Z; \

1 T7 Q3 F' W0 Q# {7 O    Selection::Response resp = sm->SelectObjects("Select PMI notes",
% T% ^1 \3 G% F3 R6 G1 v. M        "Select PMI notes", Selection::SelectionScopeWorkPart,
; X' A, T! S3 [! d7 A3 I  ?5 T        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,! g4 G2 r: A& v& G. a& D
        objects);! k7 U$ S" Y$ M9 [. [" E6 h% V& T
2 T9 N. ?- j* R. o2 I: F- M" z
+ H+ f  L1 b2 o6 S. k" {/ G4 @1 Z: w( e
    if (objects.size())
; r5 D! ?6 A" J" N2 s, @$ J    {4 w  s& Z! Q% U! o5 |
        for (ii = 0; ii < objects.size(); ii++)* Z- a) D) d0 \  C* u7 i
        {
/ i1 L: e6 Q+ q. _8 Z+ x
$ R7 x1 p3 `" g4 P) S

+ t  E$ V5 r/ J& M3 l, D        /*  This may fail - see PR 5872709 */
* n2 T! t6 D% U* o6 M' @
4 G& C* D# l; {& M

4 F% a/ _( p# b( }0 j4 E            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);; Q! ^3 w2 H* ]. }
            if (ann != NULL)- P6 o5 D7 R' k& N# Y
                views = ann->GetViews();
- C* h9 B9 n$ X5 x* |2 w            else
4 F# R7 h. \& G0 s$ M. U$ u            {' Z8 d$ |8 T5 l9 ~7 Z( B) ~
                mb->Show("Failure"," e& h" m1 R  n2 w( C
                    NXMessageBox::DialogTypeInformation,
- I. @$ W: _; F$ W! s                    "dynamic_cast did not work!");  h* |8 V- y# Y& ]" v# `

0 P- @+ R1 R- c0 u% g' `! t
. P: L6 d4 ~: C: D8 b  I
            /*  This will work and is safe due to selection masking */
6 G. Y9 H( v/ B- T# X
( L" V* E4 o) ^. d" v
. W4 @: A" p  B( S" }
                ann = (Annotations::Annotation *)objects[ii];) _$ I* q3 e" A! C: v) m
                views = ann->GetViews();
5 r! O' q; `+ Q7 L& H3 c            }, D* q0 {% ]% {' U2 f' f4 U

: Z0 J+ t; p  J  r# e+ r
  n+ j# W5 M$ e" u+ A. t+ ]+ p( z
            if (views.size())8 P3 Q$ C  \: d$ o" I
            {/ M+ [4 f$ S- l6 N
                for (jj = 0; jj < views.size(); jj++)
( C8 E2 \# [' Q7 G% E, i7 R% s9 {                    messages.push_back(views[jj]->Name());* `" q  J" }: \) K3 S! L& c

) E" E! t( F3 y. }6 d

* L( e# w7 u& {                mb->Show("GetViews results",/ o1 N. T+ h4 d+ Z
                    NXMessageBox::DialogTypeInformation,+ g# r; ~4 v9 G4 T8 S
                    messages);" i) ?5 q) p, r; |( R5 ~6 ?3 X6 m

& N) j1 u% t  P& L5 v
6 c& H# [9 u" @
                messages.clear();
# ~4 V# J8 D: h9 B6 V5 i            }6 E( f  H4 x: C* q, q! T4 g
        }+ D9 \5 ^9 s! U3 N7 j. f- y7 v
    }' K' P4 h* ^( E* U/ p! d
}
5 h8 q- [$ u: F$ m- \
1 `! [& [$ F1 M
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了