PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x

) ^, a7 b" R+ S$ e0 ?. a6 {# a, h/ [  I- S
NX二次开发源码分享: 报告所有的PMI显示的视图对象
0 a/ O0 j5 d# v5 a* U& Y9 ^4 M2 S) T' L: I6 R
extern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)
2 m) k1 H& ]3 R6 u& f2 ?* W{
  ~; U9 c  {- r" b/ L) t7 k    Session *theSession = Session::GetSession();" v; a0 Z# M. w5 ?" P
    UI *ui = UI::GetUI();* Y4 g! f- J% i2 c! n5 ^: l5 a
    Selection *sm = ui->SelectionManager();$ t9 ?; @& g, I0 i; z$ b
    std::vector<Selection::MaskTriple> mask(1);
& @) H: J. |: o9 c* P2 n    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);! p) ~$ v! ^7 k$ t- |
    std::vector<NXOpen::NXObject*> objects;
2 O  G% b. S8 E5 k% E/ a$ u; R- Y9 |    unsigned int ii, jj;: E5 t& v+ d! R( _
    Annotations::Annotation *ann;7 G. l4 H2 B5 |
    std::vector<View *> views;2 W1 F' b6 ^; n0 {/ C
    NXMessageBox *mb = ui->NXMessageBox();
% |0 G  D/ V& _/ @    std::vector<NXString> messages;
# Q$ C+ g6 j; X' U) j) K/ ^$ O% Z

  I- h/ E$ _9 ~* I    Selection::Response resp = sm->SelectObjects("Select PMI notes",
) b9 d& ?3 i2 ]9 y2 T- }        "Select PMI notes", Selection::SelectionScopeWorkPart,: m! {6 p" h% G' j0 B
        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,2 B/ ?9 Q8 E4 W) U! F$ h
        objects);% H3 O* {, `  b: Y
7 f4 U$ v' E  z* Y. ^+ A2 q
# S3 L) w! c8 l9 H4 X5 A& @
    if (objects.size())
0 U. Y% g9 |& D: q    {
, s0 J) l$ A6 t2 A2 @8 f9 }        for (ii = 0; ii < objects.size(); ii++)& _& N9 k% E# Z' G' O
        {' W. {4 [! g0 ^* O6 b

1 ^8 k* b9 f. G0 `; G

9 o, i) ]8 Q/ r) a) j        /*  This may fail - see PR 5872709 */
" }4 K0 k7 Z% H$ \- v0 ?- {% ~5 j" Z
8 _9 F) r% B- ]! w/ H1 A
7 R! A3 q6 D: j' f/ }$ W" ^9 u
            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);: J$ V9 E6 y; T0 m
            if (ann != NULL)3 a$ |' \2 Q/ V8 B5 C8 r3 _% n
                views = ann->GetViews();
6 s8 d7 i7 d& O5 \9 `2 Y; Q            else
1 e9 _8 U3 U/ _; [/ A4 E4 e7 a  v            {
9 t! T" I7 i( k( u& r, e                mb->Show("Failure",+ b8 T+ r) y2 w" ~- w! f
                    NXMessageBox::DialogTypeInformation,1 j9 M3 R" K/ {! b$ G; e
                    "dynamic_cast did not work!");
- q5 C3 D  o; }- P: C
, e/ W/ ?$ z9 l% f, H7 d

) F9 v: k9 w! D            /*  This will work and is safe due to selection masking */4 q+ |7 @& g+ K, G7 ~

( D# c; z* z/ D" j

4 C) K/ ^5 G- t                ann = (Annotations::Annotation *)objects[ii];
5 z* K! F/ P+ j# e- N! z* W2 r                views = ann->GetViews();
0 z3 {" G( S1 K4 Q$ [, c$ `            }, U/ d/ b/ N7 m7 W, p1 f$ ]# r
" X& B2 l) k$ ^  K/ b# M8 ~
' J6 G0 ^0 H; ^5 e' V, D
            if (views.size())
8 U# x# l) [( U3 K4 S8 k            {
  _% p( P8 }! U5 k2 D5 ~+ T                for (jj = 0; jj < views.size(); jj++)
3 H. J) r4 {: {) ], _8 R2 P                    messages.push_back(views[jj]->Name());
! A4 M4 e5 \# h5 q; R1 p6 p* B4 L# }, v+ J5 D

7 O8 Z) [; j7 l: `/ ~7 G6 A1 @                mb->Show("GetViews results",
# j( q" o9 R) D7 [( f- T& ?                    NXMessageBox::DialogTypeInformation,+ `' x% B3 t. j9 ?4 S
                    messages);
: ?5 W! j5 v1 M7 Z
- ~/ t4 q* u  i$ p/ b
; l8 R/ R$ ~& r& e0 ~9 Z
                messages.clear();" a: v) e5 u5 I4 H, O* n
            }
- U" ~" A' |2 X! V        }2 w7 O  v. X7 A( `) K
    }, ?, `& v/ G  w( _
}0 }* D5 G9 B2 O+ ]: \! s  |

: p( ?; s& I. D9 S6 s0 I
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了