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

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

[复制链接]

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

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

admin 楼主

2018-6-22 14:04:27

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

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

x

5 K1 d% H  @9 B7 O# y  x
% |. T1 t9 r# |+ H4 @  M3 CNX二次开发源码分享: 报告所有的PMI显示的视图对象! I  r/ |) i+ [; `! b1 _- Z

$ R5 D6 `( t3 Xextern "C" DllExport void ufusr(char *param, int *reTCod, int param_len)" O% {2 E+ \. l: s- |, n* R# x9 P
{
/ z; N! K. s" R' w% w    Session *theSession = Session::GetSession();
* d/ y7 j0 a" l. D/ c1 J+ ^* B1 p    UI *ui = UI::GetUI();
, ]4 ^1 g( o- J' e    Selection *sm = ui->SelectionManager();
% s/ @# z! w  C$ m3 k7 w    std::vector<Selection::MaskTriple> mask(1);
3 r5 g) f5 Z& O' q$ W" u    mask[0] = Selection::MaskTriple(UF_smart_model_instance_type, 0, 0);
- H- ]% U( Z& [7 W# l    std::vector<NXOpen::NXObject*> objects;
1 @! b' z9 R( C3 _- `. p3 p) F    unsigned int ii, jj;# g$ k# `( s, h2 f
    Annotations::Annotation *ann;3 M& X4 H6 G! `6 Y0 X
    std::vector<View *> views;" U# N$ h( u2 d9 d2 O" H6 i
    NXMessageBox *mb = ui->NXMessageBox();
3 s9 l, Z. m- r/ Q0 K  d    std::vector<NXString> messages;
  ?" Y; ^1 y7 u
6 _8 J5 [3 N; s9 W$ R
( e- B: l3 t$ E9 C' {
    Selection::Response resp = sm->SelectObjects("Select PMI notes",+ Y7 }/ m7 Q" b; O2 `/ c7 Q9 I: a
        "Select PMI notes", Selection::SelectionScopeWorkPart,
( R8 }4 m* S+ M* Z6 U  {0 r        Selection::SelectionActionClearAndEnableSpecific, false, false, mask,( S6 q; p2 }! [
        objects);
  C4 s$ e: h" T, ?
) A7 ?, W) t. k. x0 _3 J
0 g: m# f, O2 {8 q$ ]2 y9 Q
    if (objects.size())# `' Z, y! O4 E6 J- [
    {$ Y8 W/ ]4 E* V7 y0 |
        for (ii = 0; ii < objects.size(); ii++)( P/ W+ A8 |0 n3 _
        {
; B0 V& D' a" i" R  C* G  ^6 O- q- i* F

+ m2 J3 Z$ L) o* a/ {- B' f' P# g        /*  This may fail - see PR 5872709 */
1 R: g/ H8 M, L
; G; ~! A- X" |0 M$ f9 x

0 J( ?3 I% H# L: u6 d, {            ann = dynamic_cast<Annotations::Annotation *>(objects[ii]);$ z6 q! j& ~) H) F2 m
            if (ann != NULL)7 b/ ?4 X4 _- k
                views = ann->GetViews();
8 x- @4 v6 ^/ y5 t8 D            else9 U4 [: n- {( j% s4 \
            {
" ^: D5 Z6 D1 @. X                mb->Show("Failure",
6 b5 Y- S( e( L                    NXMessageBox::DialogTypeInformation," h- n7 b% P& {/ q  R- Y
                    "dynamic_cast did not work!");
" K" ?6 f  Y0 c* a" S3 v% @3 i' L/ U$ S2 y# l9 `: Q
3 W$ X; x: \" B9 `- a
            /*  This will work and is safe due to selection masking */8 x+ o1 }8 H: u6 E

% i+ t: h( w2 Y  s: P# }# U

/ F/ r2 G3 v* i- K: E5 ?                ann = (Annotations::Annotation *)objects[ii];8 [) Q* Z& U, b8 v% ^7 a9 r% _
                views = ann->GetViews();3 e) m6 d' f9 O; j3 D2 V5 O% U
            }7 j- ~) v; S! ~7 a
% C1 F; p$ b- ]8 p, p$ ^) G
9 i8 g3 l& c1 K
            if (views.size())
* J* |+ A' a0 z6 h9 ~; k3 V  M+ y$ r            {
  A0 l+ L0 K# y2 G                for (jj = 0; jj < views.size(); jj++): F: k3 e1 W" g' L1 z
                    messages.push_back(views[jj]->Name());
; l1 Q- e- G9 G& \( }# K5 O% f9 `) [
" Q# d. p$ V# c/ K

3 W; ~+ p* ]4 z" y5 e                mb->Show("GetViews results",
# S! \. z$ y0 y4 o" r& ~! J                    NXMessageBox::DialogTypeInformation,. a2 t6 U( \% F: s  C
                    messages);  \: P& a/ g. ^' R) a
" u5 C# V, e/ @+ a% V

# @; B& L% a: m. b                messages.clear();1 x$ h; x% h0 z  B) h
            }
$ R' N& D) {) L; J6 }        }$ c+ {3 K+ w$ u# k* P$ g, \8 `3 q
    }
1 X! O, }) D3 o+ R+ ^9 A}/ C  m; s- G$ \- D
7 a. S* W$ h, B3 w4 l
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了