PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

[求助] update_cb 下面选择面 点击 button 按钮修改颜色为什么无效?

[复制链接]

2017-3-30 15:19:32 3527 1

cosn 发表于 2015-12-18 12:38:28 |阅读模式

cosn 楼主

2015-12-18 12:38:28

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑 , o: M5 B  k+ W( c

. w% I2 d: P/ G, q* ]我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?8 P7 b% L( L! p) j6 v
" j3 z0 e3 j  N- W0 o
下面是点击对话框 “应用”按钮的代码,正常的。/ C% }# \( m: I3 y1 L; p
4 I  H$ F: X7 o$ S& \
wint gaimianyanshe::apply_cb()
5 h# _3 @) m5 W) U6 y* }{
" @( m' J& _( j- zint errorCode = 0;
' w7 A0 B: j0 @$ I5 xtry7 C9 f5 E' s2 t7 j* j: M1 t7 V
{4 Q" q" E6 R- U) B

; N2 _; J8 N( \9 j4 v4 b% G2 d0 GDisplayModification *displayModification1;3 y2 L0 N; z: i1 M
displayModification1 = theSession->DisplayManager()->NewDisplayModification();. Z' L7 ]! g7 \! h4 T* E
displayModification1->SetApplyToAllFaces(false);
; o- O6 C$ L3 F% j: odisplayModification1->SetApplyToOwningParts(false);
9 D4 h7 C' \# }( ^" udisplayModification1->SetNewColor(28);$ c4 A$ V! I3 q- t
# X* b( v9 L& t# L. n! J& W; L

) A- \7 V* c" b* x3 Jvector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
$ P5 _" a) w, @0 r3 lvector<DisplayableObject *> objects1;  V- t* U4 X' D1 m; D, B
6 @8 f$ b8 Y! J/ r& N; q& ^
5 Y% y* c1 V, y& \! @
for(int i=0;i<faceobjtss.size();i++)
* n) i- [2 P" X1 U6 ?+ ~{1 |& Q2 f& b$ r* r2 E- }
objects1.push_back(dynamic_cast<Face *>(faceobjtss));
$ w8 g9 K3 ], N$ _3 r& M};
6 z7 |9 @. x  w5 Z4 w" idisplayModification1->Apply(objects1);0 M# T1 Y# y8 M. K% C8 d
objects1.clear();
; C, V0 I: B% O9 s( U  ?  Zdelete displayModification1;
7 j+ u- Z$ e! n4 o0 SdisplayModification1 = NULL;
1 q) M. c; ]6 X3 J+ }2 M  N" n' C1 p* w0 W
}7 d9 e& [* e: @0 x0 P7 Q9 C. P
caTCh(exception& ex)6 ^0 p5 l6 Y" f! k  k9 K: b5 a
{# _9 w% C/ L4 U: V6 s
//---- Enter your exception handling code here -----
* ~* q$ I" O+ @9 |  X8 g" yerrorCode = 1;0 ~% s* t# h* z: O
gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
- U+ j6 p- \9 p% T. r8 K6 z5 ^4 {}
2 l. [' \7 O9 p1 _% qreturn errorCode;1 z. ]0 ]# X& J8 k& V+ W; F
}
( O0 K  i$ S0 x! U0 O* l8 V
7 \/ J9 e+ w0 L: ]: o: r9 o4 v/ ?

# ~) @# U# b- r$ W9 o下面是  button 下面的代码,点击却没有用,为什么呢?
" ?0 m- S% W5 ?0 }- J1 e' J7 ~int gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)
; I3 h- N; e  O" n{+ X. ~& e, J; D* w2 l5 m2 H
    try
, _9 Y/ Q5 B; n3 i    {* c& n$ X& h& y3 W3 x
        if(block == face_select0)) N- n( Y  ]4 W5 V9 p
        {
. T* R; h  M0 s& T! I6 d, k$ Y/ p2 s5 |$ l
        }$ L( b7 m' E3 l; p% ~
        else if(block == button01)
2 w6 d6 j# ]4 X9 Y        {
: A$ y' O6 O+ K) i      
' `. m: P- T# K4 U5 F                DisplayModification *displayModification1;
* Q* }/ A" y+ m                displayModification1 = theSession->DisplayManager()->NewDisplayModification();
- k" z2 x1 K  ]. R                displayModification1->SetApplyToAllFaces(false);
- u- @( O! I0 J3 z: x                displayModification1->SetApplyToOwningParts(false);! e4 h4 L. Y( U/ {4 y0 i9 F/ e
                displayModification1->SetNewColor(28);
1 v' B7 y4 O- g: U7 G: b. S0 e  |/ ~5 C; ^+ h* s
  m1 p  V  M  h. h: @
                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
+ |1 ]. R* _7 `8 n; g) X                vector<DisplayableObject *> objects1;
! W) Z/ F# x, z' O" {* ?$ `1 }& O8 _8 O0 [/ r# y8 H
, S" Q9 x1 O' r" D
                for(int i=0;i<faceobjtss.size();i++)
+ R+ k( M  y# M) `/ m                {
  b* I% |; M- A, I: @+ s                objects1.push_back(dynamic_cast<Face *>(faceobjtss));5 W/ V1 n+ s! R% I4 {
                };" v( V0 Z# R$ g1 Q. G
                displayModification1->Apply(objects1);3 Z8 J( [, r8 ~0 R6 K
                objects1.clear();; x3 i1 ]* y# e7 @
                delete displayModification1;
5 B+ t5 o( h4 g# W* J3 C, T; ]* A/ e                displayModification1 = NULL;
5 Y5 a5 T, f1 o/ [; b4 X$ }: T/ a" O5 o& @, u; O

4 u% }8 b# n( e& Y        }
, t, V8 m) `' S" o3 I7 ?7 _' |6 E3 A
    }# f% O, X0 I  c  `% n
    catch(exception& ex)
; V' S, a* ]. f: L" R$ E& `    {6 M; S; V# v& g. Q; q
        //---- Enter your exception handling code here -----
. `* w$ n6 V# L0 g        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());" A4 L' E( M+ @0 n) D
    }/ Q3 ~4 D2 o  q& o0 U# m! g+ N- P1 o
    return 0;1 u' b% O" v$ u
}
& U" F  T- J% c' t" N# v- N9 |5 }8 U! G% M% ?4 e

* K; }2 j8 h% v' V* y: O! B3 L% B" ^9 u. Q& @) n
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复1

c1_wangyf 发表于 2017-3-30 15:19:32

c1_wangyf 沙发

2017-3-30 15:19:32

楼主这个问题解决了吗?2 q# A2 L( X3 O9 k# M
- U) ]  u! @3 i7 Z3 p
解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了