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

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

[复制链接]

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

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

cosn 楼主

2015-12-18 12:38:28

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑
' c& ?  S' B1 D0 F
6 N. c5 L! F/ g9 O我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?) B6 ~% O* {0 ^$ Q) W0 i, L

+ K* V* H% [. |* n9 y; L" x2 G! E下面是点击对话框 “应用”按钮的代码,正常的。/ {. P- E* n( Q  j

: e! {3 o1 Q( s. C' Wwint gaimianyanshe::apply_cb()
- d. t% }( u6 q; \! @4 Q{
9 w7 O$ \% |. N5 D: H5 E/ Bint errorCode = 0;
+ o6 C9 w0 k0 p0 B1 Ytry6 }; J' y' C) D
{
: }4 ?) l1 t, O2 [# E9 n: h/ G; z8 }& Q% U# Z+ G" A) p! Y
DisplayModification *displayModification1;" |( ]" v6 N9 [1 ]' U' m) s9 r
displayModification1 = theSession->DisplayManager()->NewDisplayModification();2 \& K& d$ M6 S% N3 F2 z% k9 p; J
displayModification1->SetApplyToAllFaces(false);
$ z2 y1 c: O1 k' m+ h: J) RdisplayModification1->SetApplyToOwningParts(false);" N& D" K5 K- }- O' b9 M3 Z
displayModification1->SetNewColor(28);, g# ?7 Y' T; r  L- \* U
2 ?) Y6 y& J1 T; w/ V
4 e& N2 U' @2 ]( v5 d! I! `$ H
vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;( z7 z- A+ k7 s( C  `  o' q5 T, N
vector<DisplayableObject *> objects1;
; g4 t5 f' N# i3 P# p, Z$ A4 V" ]" N

" H. K) _% q  U7 D  ifor(int i=0;i<faceobjtss.size();i++)/ x9 e5 v% ^' X! o% F4 j  V3 G7 }
{
% R6 l( U0 T6 B& G1 mobjects1.push_back(dynamic_cast<Face *>(faceobjtss));  ?/ n- q: ^& j( h
};* ]. I* C: M6 r2 h& o
displayModification1->Apply(objects1);
0 R; b7 M4 K" @- l" D0 F3 H) vobjects1.clear();, }+ Q& [0 p/ Y& y; R# Q
delete displayModification1;
$ r8 A1 ^1 }; a) q; `7 K, cdisplayModification1 = NULL;/ Y" g0 s# `" S, n) ^
  C7 r* R+ [/ x9 l; Q1 }
}0 Z4 W$ x9 ?% J+ X( u* J, u0 e
caTCh(exception& ex)* g6 n6 _, i0 g! H
{
- q4 B3 ~1 ]: c2 L//---- Enter your exception handling code here -----, |: r$ C4 V' f+ v
errorCode = 1;7 {- |# c( g" D; G- ~
gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());* w  b: f6 _% A* z
}6 F1 G& V/ ^5 e+ A+ ^. b
return errorCode;
$ b  k1 y0 t4 s7 a: u1 @}
) F! X6 ?* }) t" Y5 e- w9 L$ m0 w* H% J' M8 I2 T( h' H0 r6 ]  d

9 B# J' L- i+ n" F  i* ?# C6 B. m% u  h! f/ V
下面是  button 下面的代码,点击却没有用,为什么呢?
) @: I4 U3 p) c/ Z  Q7 zint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)
7 ?- E$ p! p7 n$ ~- X5 u{
+ }+ @. D  v1 e4 M7 T    try' |5 @9 f2 a) R
    {
+ b  z/ \8 u% f3 Q) p& s2 i6 }' p+ U3 T        if(block == face_select0)" [* M- \/ X2 X
        {
* f  t5 m5 w, P. v( r# V6 |/ H9 v$ M4 h" O8 \
        }5 n* B. M% z7 F6 l0 N
        else if(block == button01)2 {4 c4 y4 w! K" @2 e* r; p
        {# ^6 i3 z( P! L  K
       + ]- y  W/ p$ O0 b! }" H0 u
                DisplayModification *displayModification1;
; M- X; D8 V( Z9 N9 P, [                displayModification1 = theSession->DisplayManager()->NewDisplayModification();+ `8 f# s, t. g( x. k. {* `/ G. N9 M
                displayModification1->SetApplyToAllFaces(false);
. n4 b8 c! D" E( v                displayModification1->SetApplyToOwningParts(false);
* d/ O7 d- Y9 n$ l  o9 c2 g1 {                displayModification1->SetNewColor(28);
4 J) d! g4 v+ H7 M
+ S$ [. \& B7 \! A; C" _1 Z/ p0 ]
% ^1 l- q& J7 h2 _5 k( }
                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;- V2 P+ [6 F7 {  H3 d
                vector<DisplayableObject *> objects1;
, I' s% R$ |6 H) n- g+ {. b7 w' o! r# j5 L4 \* Y! X
2 _# [: y; Y/ e/ Y' P# J
                for(int i=0;i<faceobjtss.size();i++)$ ^3 L( M) l5 F6 N4 p6 G4 o; M8 }
                {
/ P- A3 p) g& n3 Q; r8 o$ {                objects1.push_back(dynamic_cast<Face *>(faceobjtss));! P0 E4 W7 S. b9 u
                };8 e5 }! v1 A  |+ W1 W
                displayModification1->Apply(objects1);
$ @2 ?6 A2 m( d) Q  n                objects1.clear();
! D+ Z5 G+ {) A0 {7 a                delete displayModification1;# ]* F# ?4 q6 o( F, v
                displayModification1 = NULL;5 _* i! c) B" D6 p9 Q3 L
* ]2 `; {0 A4 f4 y" E( f, S$ D

9 Y/ |& V2 o7 E5 \4 g' Q+ [! \        }. ]2 g3 J1 ~! w. [5 }' y% D: N
( d+ h- c% U/ K) q' k
    }
) u# |* W: l: a6 U    catch(exception& ex)
: [. U: B; r; y    {; l6 F- `6 Q* n' h9 y
        //---- Enter your exception handling code here -----
0 D, \, ~  A1 ?        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
- P+ N0 b& Q: S( l    }" ^+ Q) R+ n* |3 h/ U
    return 0;
% Z0 h$ P/ f( M( W% J}. Y" E( r  ^6 v$ A7 {

0 f: a5 |; _! o- N6 G) Z& @! I2 E3 ~1 [  w* A/ _

0 U3 B+ V* c( W
上海点团信息科技有限公司,承接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

楼主这个问题解决了吗?0 U% s4 T5 U! y* ^+ i
/ U  ]6 s2 }( {& N% D
解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了