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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
发表于 2018-6-22 14:04:27 | 显示全部楼层 |阅读模式

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

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

x
- b% j+ D5 f8 Y  c8 V

" o& o2 p8 L% V/ o9 a: yNX二次开发源码分享: 报告所有的PMI显示的视图对象
) V7 t6 w( I5 r; R
$ P* n) W! D. P3 r" p. eextern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)& c( u9 m* K* R4 l7 D2 e- S8 |
{
$ ?1 j' D! a3 m; m    Session *theSession = Session::GetSession();7 Z$ j+ h( M7 s5 u) ~) o" O+ m  A
    UI *ui = UI::GetUI();
; }- R& c9 _9 `9 ~    Selection *sm = ui->SelectionManager();. `- A4 F4 Q9 E2 U! R% F4 ]
    std::vector<Selection::MaskTriple> mask(1);! T5 ~% D$ Q. g9 k  A/ l
    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);
# E& a/ g4 Q2 u& Q5 _! e$ z    std::vector<NXOpen::NXObject*> objects;3 B6 o7 E! ]8 k# ^; n) Y
    unsigned int ii, jj;
% E' f) K+ C1 L    Annotations::Annotation *ann;
$ t& ^; T& S9 N$ M* O: S! {    std::vector<View *> views;
' n8 ?" a- @; _- m/ Y9 N    NXMessageBox *mb = ui->NXMessageBox();( t9 g$ ?% T% b1 V& H
    std::vector<NXString> messages;
$ H; i9 s# Z( r7 ?/ D: w/ Q( q) c) o- B$ `

  d" c0 q5 P7 A    Selection::Response resp = sm->SelectObjects("Select PMI notes"," o! f$ f. Y; l/ {6 P& r
        "Select PMI notes", Selection::SelectionScopeWorkPart,
9 l+ P4 s2 L; W& J# l6 u        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,
, N# `' m0 I2 ~1 r- J        objects);+ x% i  [; m4 B
6 j; g, y# [' v! [0 K
1 M8 O4 R- p9 ^
    if (objects.size())& g( Q& g7 n3 l8 F/ g; F
    {! U  Z& L1 x" o
        for (ii = 0; ii < objects.size(); ii++)& e' `, l3 P3 X/ ^3 e
        {
% F2 `1 y7 E& d, p& N) T3 n* l3 m; c4 S

, n1 r6 g+ u0 s6 v: ]        /*  This may fail - see PR 5872709 */
" ^) ?0 t% S# D6 P- J- r+ A0 V1 c2 e8 {7 L
! y- _( n2 e5 d6 t* C$ v2 q+ x
            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);9 S6 |( j2 n. p  z  T# {; f+ k. F
            if (ann != NULL)+ A& p6 T# e; |8 q/ y) \/ k
                views = ann->GetViews();1 [: t2 V6 u2 _
            else
% c$ U( S" k2 \# c: s, f9 O7 Z1 \            {
4 I* J; S# l. Z) \4 L' E                mb->Show("Failure",
* a1 I( S4 y" i5 M) \9 ?                    NXMessageBox::DialogTypeInformation,5 x$ L& s0 i# I  B# o
                    "dynamic_cast did not work!");' ~( O( L, q* S- z3 C" Y, K
  q) B9 J% M- D( {
2 M! u7 H4 ?  T3 o
            /*  This will work and is safe due to selection masking */
. z' r- h$ C" o6 ]$ O5 Z0 o! D
% ^( o2 i9 C, y0 o7 F1 l, a  Q

. h) v" k4 S3 @5 z                ann = (Annotations::Annotation *)objects[ii];
, J5 U3 F( b, h( S' x$ W                views = ann->GetViews();
; a: ~! @3 M5 c- g1 Y            }, L9 W9 s9 n: T3 |+ J7 c& C  V

7 k0 Z- P8 v* Z! T2 r

# o# `6 d4 l$ K' g  F& o            if (views.size())
- d- ]8 @7 k( p; W& y# Z* P            {
9 S* k% w, P% o* \, c( P                for (jj = 0; jj < views.size(); jj++)+ l$ R5 I4 V- R3 b
                    messages.push_back(views[jj]->Name());4 T7 }+ I/ Q- x- B; m! {

0 d6 G# S# v& F9 T
, |4 c- `7 d6 `, `
                mb->Show("GetViews results",
7 V: |/ _+ J+ Q0 g                    NXMessageBox::DialogTypeInformation,3 u, J- D! c. k$ _. \
                    messages);
/ K# d$ C; m% r4 u4 x, w8 M) r0 D4 M, h! J

* k0 y6 N9 P+ A# N8 f3 b* B                messages.clear();
# c& j9 i  ]3 s' J6 V) x            }' W* @) x/ |6 O. r* u0 x, n+ n0 z* W
        }
" [0 r  y5 t0 |# @$ D: K    }
  Y( v. U/ W# X3 K# T  q' c}& @; T% e( [0 m  E" p

/ v2 u' ^8 @) E; x
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了