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

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x

" R+ m0 d6 b  W# N3 q# x
7 ^2 L/ s5 |& o! c5 [8 |  ENX二次开发源码分享: 报告所有的PMI显示的视图对象$ Q- F- I8 w4 ]) d
& O$ g5 \0 j+ t9 T
extern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)
' Z+ H, F0 O0 Q& |{
4 U3 Z+ |! t7 {; e. E    Session *theSession = Session::GetSession();
3 J  F+ {1 l! Y7 J# Y# L* {    UI *ui = UI::GetUI();
2 @- r# L/ b, m% ^1 H1 f' o4 _) O' k    Selection *sm = ui->SelectionManager();- Y5 x0 Q$ _# s" r
    std::vector<Selection::MaskTriple> mask(1);
+ Z7 T- r5 I3 `    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);
+ ]! h! G+ A% e/ E4 \2 n    std::vector<NXOpen::NXObject*> objects;+ H* D* P9 w* B8 F: C
    unsigned int ii, jj;
3 b  b/ {+ m+ C/ U* g( Q4 d    Annotations::Annotation *ann;. b4 n, R* y: X  R$ y6 b% e
    std::vector<View *> views;
/ ?% M2 t/ z: _( b* F    NXMessageBox *mb = ui->NXMessageBox();3 e: {) U- b1 i/ i
    std::vector<NXString> messages;
6 a; Z3 \; g5 P+ _/ K
7 W- d2 Q% s, Q* Y% K, t) Z

7 }7 L5 H7 U8 W    Selection::Response resp = sm->SelectObjects("Select PMI notes",
; K+ e6 n0 R; h- M" Q        "Select PMI notes", Selection::SelectionScopeWorkPart,9 _( ]' [: X8 W
        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,' W  t6 q- k6 u' X% d: Y. p5 [5 m
        objects);
8 D: m7 T8 M. q  C/ [- _' Z
+ Q# `+ D$ v' J  d. F8 [0 o

1 r# i) R0 g1 ~, X. m    if (objects.size()): `# L+ u/ I7 V" ]
    {7 h  F: j# P+ l
        for (ii = 0; ii < objects.size(); ii++)
  `/ j, {3 p  n7 K        {6 h* a* L  L  X0 }

/ z/ V" M/ X8 @! m, h! h8 ~' }1 R' l

# d3 c+ Y0 P, c' @9 Z        /*  This may fail - see PR 5872709 */9 O4 {, J; h% ?! v2 F, U

, A8 ~+ [, ^/ l- j6 x. x" l

2 |2 E, x; P" u& P            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);
- n( y* B- H4 V4 D& r; m  ~+ z            if (ann != NULL)
; |8 f  ]2 D7 }! r: s/ e                views = ann->GetViews();
: m2 R# [1 C! }9 L8 h: l            else
: h9 g( |* T! ?2 {; K            {
! F* v. t3 ]7 u5 Y/ N# X                mb->Show("Failure",
- ?) M, ?/ d1 e) O                    NXMessageBox::DialogTypeInformation,
: L  e) o9 N% B; o2 }( I0 f                    "dynamic_cast did not work!");
3 q6 S- `" Q: P) \
6 S; G* Y$ d  z' q
" c( ~6 W" w5 Z. e6 Y# u
            /*  This will work and is safe due to selection masking */
" ^0 C/ h4 Z! B0 W# Q+ Z5 Q4 Y7 W, G) I
5 f& N: A  {/ i+ E7 N+ @
                ann = (Annotations::Annotation *)objects[ii];0 H1 V* ^+ N3 [6 |
                views = ann->GetViews();: n; s% ?8 d7 T0 w% w. F
            }- g3 J8 t7 i# Y0 A/ y8 h+ N
7 q1 t8 P; [, r+ L9 ]
# H* x2 ~* s% q. d2 D; M
            if (views.size())
% D8 x4 n7 a! [/ M            {/ M6 v% J5 l/ ?% F
                for (jj = 0; jj < views.size(); jj++)
9 S. Y0 P: Q9 E& C) K* g                    messages.push_back(views[jj]->Name());+ C$ T" W9 O2 e8 j) ?
! N4 _. ^' |8 q0 h" s, ]

/ N( V  S! x' ^- E9 G, r                mb->Show("GetViews results",2 w; [2 j5 [& R& V# @6 Q
                    NXMessageBox::DialogTypeInformation,  Q  A# ~/ Z9 ^2 E; F# a+ p
                    messages);6 q  x, @) r* P" J

/ ?4 @+ M2 y! [7 O% ]* b
# z. K. p+ ~( ?; H% e, [* _' e8 _
                messages.clear();& m9 W7 M2 e# _. f
            }
2 n7 |/ N) \4 Y        }
8 ^9 a% x, N2 m0 b6 N2 X" w5 E    }
" r  I  w5 a: _$ h- V3 D( n* L}9 `7 |$ |/ n. b# p9 O' H
2 F3 A5 U+ S  d' \, l1 `
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了