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

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x

* H  f# j& w9 z" o, G2 P2 z- v
- R. _8 N+ i8 x0 V! {8 W, hNX二次开发源码分享: 报告所有的PMI显示的视图对象
( n% p3 j" r6 e( g8 R+ n6 {9 T" m. Q+ C; L1 d' j% F; U: F
extern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)
* j+ x* Y. a' h) M3 W' K+ [" P- w{2 ?# _  u9 e2 B6 B3 Z, \
    Session *theSession = Session::GetSession();
) |* x0 V" K+ f% c: L; S    UI *ui = UI::GetUI();. A: _1 W7 n% O
    Selection *sm = ui->SelectionManager();3 f. j. c# Y* R
    std::vector<Selection::MaskTriple> mask(1);
5 P. t# L# o0 c5 U# M    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);/ a$ U' u7 ^8 Y1 j; D/ f! m
    std::vector<NXOpen::NXObject*> objects;
% M$ o: d0 K) B    unsigned int ii, jj;
* H2 n5 V, }" X; K8 O5 D    Annotations::Annotation *ann;
8 ]0 j' t; D2 [$ T    std::vector<View *> views;& B7 }- R8 N" D5 v
    NXMessageBox *mb = ui->NXMessageBox();% c, @2 b6 g" @6 M4 c- r0 V& p
    std::vector<NXString> messages;7 L) W- x, S0 o" J
- U! `) b% r2 B, q
0 f( ?' F6 }- r1 E+ F* b
    Selection::Response resp = sm->SelectObjects("Select PMI notes",
7 i! k% z7 w7 |/ M5 v        "Select PMI notes", Selection::SelectionScopeWorkPart,/ ^4 s, Z" {, [/ U$ W) o9 x- q# H
        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,
& Z+ L/ _( f) \4 ]# }        objects);
: H4 k3 n, ?. A
' e9 d! e) b/ ^) i! K
2 f5 J' z5 ]4 I& b8 m) ~3 L
    if (objects.size())) x. U8 {) C7 S% M4 e
    {
" V/ n, C, f; _        for (ii = 0; ii < objects.size(); ii++)1 b. d& u# ^. ]# ?5 a0 \1 @
        {
: {3 Y, y$ h4 q+ K. ]+ x
& P3 q! B9 g; h3 M
  I, X% J6 u0 e) ~
        /*  This may fail - see PR 5872709 */
1 I: \$ q" B4 v% `4 A+ s" ~4 t. r- J+ D- W+ z  j

9 K4 t: d( U" f: v            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);! |3 _! |" M8 L8 x3 }
            if (ann != NULL)$ G7 P/ [" N. ~# k, C5 L8 O: [
                views = ann->GetViews();
3 Y% v- k7 s6 |, N& e            else
( c1 |7 s$ ^; L3 Y8 R" `+ B- }- i            {
+ S; K; ?0 Y2 P+ X; x                mb->Show("Failure",( d8 d$ `/ E4 j+ }
                    NXMessageBox::DialogTypeInformation,
$ z$ W2 H& s: ~. j# s                    "dynamic_cast did not work!");5 C) z, [, o% _" S3 c

" r, v( e' V* E9 r6 t0 s
, |2 i  x3 L% e0 L' e4 Z
            /*  This will work and is safe due to selection masking */
4 G2 v7 X) {1 K4 |
4 H7 t5 q9 E" ?1 H+ U6 W9 Z+ a

# _! X0 a# X0 T2 C# P                ann = (Annotations::Annotation *)objects[ii];
- C# B: t4 J' _" B, Y2 a                views = ann->GetViews();
# r7 w1 W* Q/ K* V2 d* G            }
, [. k6 }$ a* G8 B
( ]! R2 I( q. B4 W! E; v! m
/ v0 N3 T6 }2 o: p; h
            if (views.size()). f1 `- u& i& |8 V3 m
            {5 u: x& o( ?/ p* ?6 I
                for (jj = 0; jj < views.size(); jj++)
) _0 N6 L2 S+ m; I                    messages.push_back(views[jj]->Name());9 Z' n" Y0 g1 a( t! _9 r8 L

. f2 s# i) T: G- U+ A, r
5 d  c1 o1 ^( |/ m& w4 a5 L
                mb->Show("GetViews results",
; c4 K7 z" K8 }3 L1 B                    NXMessageBox::DialogTypeInformation,* F( p+ C! u% L) q0 g
                    messages);, \9 u  P# W# i( Q8 \' i4 |' @: y
6 ]9 r% {$ F: p1 b$ U- j. j3 J
8 S  ~% G6 J7 _4 l5 ^6 [3 B
                messages.clear();
0 ^4 K" T& C) V5 z, M9 C            }* Z  w" U9 l$ M# i
        }
4 E4 u8 `+ e% M4 L- v% \% T    }2 A4 q+ L& Q& s$ d8 R7 H
}" y4 x$ ]6 f0 H. i, `* @/ Q

  [% m* s' p( u
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了