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

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x

1 J3 k/ T/ }# O# A$ a, j4 e' Q" E7 u6 Q
NX二次开发源码分享: 报告所有的PMI显示的视图对象
7 P4 U4 L, x& f# I! t' _4 \( W+ E  W) D( E5 `. t+ A
extern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)) g+ l* J7 P8 P; R- e7 e! \9 a
{
6 M( m: B! a1 o% P5 u% `; p    Session *theSession = Session::GetSession();3 i1 U/ s$ P8 p# W9 t! k
    UI *ui = UI::GetUI();8 k" O' a. ~% f+ l) C1 C" P1 ~
    Selection *sm = ui->SelectionManager();
. l/ T- A6 W3 q# g    std::vector<Selection::MaskTriple> mask(1);( S" @/ l! J* Q5 y" u7 z7 |8 x
    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);
3 m( W- |& \. [# x' \    std::vector<NXOpen::NXObject*> objects;
' e  c4 D  T7 n" J) v6 K& V/ x    unsigned int ii, jj;
% Q! {: a' U8 _( J. w& l* y    Annotations::Annotation *ann;
) G/ ]" H5 m  m+ S5 |" L8 Z    std::vector<View *> views;
. }6 ?6 [* p! }2 I" P    NXMessageBox *mb = ui->NXMessageBox();
* n( [* H  s' r) s$ f2 B    std::vector<NXString> messages;
8 N; X3 K2 m9 z
& F+ J- O& n/ M( O. r' x

$ N- [0 k# X$ Z; n  @" c; K+ r9 C9 Y    Selection::Response resp = sm->SelectObjects("Select PMI notes",0 k  N0 t6 A5 ]0 J- P
        "Select PMI notes", Selection::SelectionScopeWorkPart,8 b2 [) o% w. k  {* R
        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,
0 E! V( ^3 w1 H( S$ l: c" b' k        objects);' K5 b% \2 h% |$ \/ _

# s7 o2 C3 H# H5 n' e

8 D7 @" i6 ]- V9 F* u7 y2 ?/ t- K    if (objects.size())  c8 \' K# p& Z( n1 Z4 x8 I
    {. Q9 G* ?$ T3 A* s% \9 @/ N- x. s" L
        for (ii = 0; ii < objects.size(); ii++)
, O6 r8 c, l* D! @: J- y: i        {* @4 \) Z$ m5 q* ]

8 R  U/ H4 o" d) E' c/ r
+ o$ Q3 Z4 c# Q  N6 ~, p& E
        /*  This may fail - see PR 5872709 */8 h* H* l0 h7 n( u
0 o/ e+ j! n$ Q
0 M- u5 N1 O9 k8 q
            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);  l& A; x5 m: Y/ C! ^% M
            if (ann != NULL)5 u5 _' S, j2 B/ M. i, t9 b4 b1 \
                views = ann->GetViews();$ f- s; R6 Y- g) w) g( w1 ]- g
            else
/ J: D1 a! \1 K3 F! g/ M            {2 c/ {( A8 u: d  _% s' l* I' G+ i
                mb->Show("Failure",
" J) s- z! g) L! \7 V( ^                    NXMessageBox::DialogTypeInformation,
. O) G; Z9 E8 {; M9 N! T, f. |                    "dynamic_cast did not work!");+ \/ {' M8 B" e7 ~9 s

3 w  O  K+ d3 {, Y2 z( b4 Y
8 g, B2 b( ?) W' X- p
            /*  This will work and is safe due to selection masking */
0 g6 F6 M+ f' J6 @' U' A+ [
5 K# y4 e( t" p! f( _" Z6 ~

) H* X' z: A% ?% H: ~                ann = (Annotations::Annotation *)objects[ii];( p; U5 g2 ]1 h: y9 t, }8 S
                views = ann->GetViews();
& u( U& `) |1 q5 o  y            }
! C! g- x; k1 u0 U, B! {
- A( U, ^( c) x. n5 U% X$ ^, v

8 l% c& a. g& \            if (views.size())- c. A  I# o, F6 @* A( ^$ b
            {
& ^# n* p+ l+ Y( d& i                for (jj = 0; jj < views.size(); jj++)9 b& y7 w& M! Q: Q0 d& E
                    messages.push_back(views[jj]->Name());
1 B: J$ d8 m8 v( L0 f, N8 |6 ~* o6 @
1 J: `& N7 g$ F4 i: ]
5 {8 U; Q. Q- L4 z
                mb->Show("GetViews results",
$ H# D2 S+ P5 G- r/ `& u                    NXMessageBox::DialogTypeInformation,! w+ f7 {; b& J. f8 [- V7 v
                    messages);
( X) \) y3 L$ G; Q/ u" n; G) Y7 [1 q; o: Y
' Y  ?+ [. F9 e+ c, P
                messages.clear();+ D/ C2 ~; T# x. W
            }- S! p9 l3 p: \2 g" F) H
        }
3 ~: V" |% ?: c+ h8 D; f$ m, A    }' B4 l5 g. K, M
}5 f# q& `/ l4 O: J( ~+ ?5 }9 D1 i

. |9 L  ?9 G( s% V4 C' @7 R0 ]
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了