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

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

[复制链接]

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

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

cosn 楼主

2015-12-18 12:38:28

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑
7 I9 ^4 {! p3 Q) y  @
. t) j* y$ n' p  M我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?
0 j* J: H3 y% }4 u# i5 A0 {- j- q# m5 \/ }) p
下面是点击对话框 “应用”按钮的代码,正常的。
6 X  B" F' R# p( Z* e: `) Q
: t4 P! Q( `! ywint gaimianyanshe::apply_cb()
8 a" B" U. v7 m' u* e0 D* }  m{' O- p' p$ m( f7 I1 g3 _
int errorCode = 0;; h6 O1 v0 K0 d
try( c+ Z# z0 @$ C) ~/ m+ M* K5 e
{  o+ s1 p6 i6 Q4 f* k( Z. p! W0 H
" p8 x# m( D' |2 t0 d, [
DisplayModification *displayModification1;
1 ^- [9 q* ^* C% IdisplayModification1 = theSession->DisplayManager()->NewDisplayModification();; p* c2 ^' }* h3 k1 r
displayModification1->SetApplyToAllFaces(false);# Z% q) H- ~) O8 D5 J+ `  ^9 V$ F
displayModification1->SetApplyToOwningParts(false);
' F) H3 D- E/ j9 F4 k9 t$ l. CdisplayModification1->SetNewColor(28);' B/ H7 g+ y1 W

$ q! u4 w* ~- v- h- w& X

( b5 h$ X9 R! c) mvector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;6 T8 ~, \$ f+ x
vector<DisplayableObject *> objects1;' A: c- `" t! T0 k2 K

7 w: p! M5 _# e" O  j$ w3 Q
3 x* [# `  L  Z! _
for(int i=0;i<faceobjtss.size();i++)
: F0 x- a" q0 d) [: @! Q{
+ x% r7 H9 u" t  v- X; J" x* ~objects1.push_back(dynamic_cast<Face *>(faceobjtss));$ ?" L- [% {  L% z1 G) Y% L, J
};2 B7 t# P, k' k1 D% I# L- b
displayModification1->Apply(objects1);
# b: A% I$ X7 p$ K3 a. {; nobjects1.clear();  C' E5 U% A- w+ B0 X5 O
delete displayModification1;
% a# i! U5 ~" s/ _' SdisplayModification1 = NULL;4 Y1 d! ^: a5 j( e" C: m0 O  [" G/ y

8 r4 i8 i' F4 ^: c}
$ J% |5 o8 n1 P+ @# z* }* a' U& \caTCh(exception& ex)
; ~1 y1 |' d$ t. W' h9 x' U{' s  D8 L- D% H! W: }8 @, U
//---- Enter your exception handling code here -----! T5 t& c# h: d. }
errorCode = 1;8 b8 C8 [+ w" v8 g% I
gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
1 H0 h# m# V7 a8 s8 ^/ G}6 r# b1 _5 n1 X1 V( J* u: G
return errorCode;
) C& Q) [( c  \0 y9 }( q' ?}
8 c" v' ?  V) s! q( O4 H( ~* a) v/ V' o' v2 c
$ N. c2 [# f3 S; _" ~( u

" P  p1 x& k$ J& H下面是  button 下面的代码,点击却没有用,为什么呢?
8 Y6 W# M+ r# I* M3 D7 X2 c4 }. Cint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)
% t3 a6 f6 ~+ `3 e{5 M3 l4 O: m. s0 ]: G7 A
    try; K9 |! J4 d  ~. G! X% ]
    {
' y, ]! D- p+ T        if(block == face_select0)9 O9 p( l, V1 h+ L. V  I
        {
3 ~4 ~! c0 v, q
* O' R) f2 o" H3 l0 v2 u9 }        }; F4 m* Y# p0 i/ e6 Q4 k0 q
        else if(block == button01)
9 {; s2 A% {" o        {0 l0 D6 f3 i3 n0 X0 F, S
      
$ t: o) A, O% z6 |. H                DisplayModification *displayModification1;
  O# B7 W2 m4 H6 g: O7 ^2 Y' A: Q8 U                displayModification1 = theSession->DisplayManager()->NewDisplayModification();
" W. _, j" g# Y9 D3 M5 K                displayModification1->SetApplyToAllFaces(false);
5 d: c( Y6 i7 D7 a/ D* C                displayModification1->SetApplyToOwningParts(false);
! L9 g1 B! f! y" D                displayModification1->SetNewColor(28);
2 Y9 r& F" p1 Y) S- Z& I5 e1 b* T
+ r! J2 Y; B- O" x; A
5 b8 e2 T1 E8 D4 V2 v
                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
# n" \* M1 ?/ C                vector<DisplayableObject *> objects1;( `9 I3 W. b- \
4 f2 A/ l3 Q/ O/ z7 [
( d3 @0 X! n+ z4 p
                for(int i=0;i<faceobjtss.size();i++)% g3 l; T5 k& G; K- q
                {
, D5 ~0 ~  e, w* u, c                objects1.push_back(dynamic_cast<Face *>(faceobjtss));) y6 U; J! v$ l8 e* Z/ ~
                };
/ r( o# W! _& z                displayModification1->Apply(objects1);
9 V0 J: ^% O$ J! M5 m                objects1.clear();
& [) v/ b5 Z4 I' I( K) R5 I8 q9 d1 l                delete displayModification1;# N% ^1 t& D7 p1 y1 V
                displayModification1 = NULL;$ b9 b/ o: r, R
+ ^! T& t5 s# _3 Y

0 E) l* o5 ~( g0 x        }
; q* W* |3 W9 N8 V% S1 J+ V1 W/ e% v, F+ K
    }0 v# r' Y0 ~9 u: R% h2 ?" Y/ K
    catch(exception& ex)
' d3 W+ }3 W. P/ ?    {
1 Q) u& K, K0 }5 D) C$ P        //---- Enter your exception handling code here -----
0 |; S+ l& W! s. T; ?9 ~# E0 N        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
) h$ ]8 u' G- D% r    }
6 U* S+ R; }- ~, n    return 0;
" k6 B' I/ F/ g3 P9 r}7 |" {: B8 s/ v
1 D4 i- n; u( F! X8 m/ y

; }+ ]+ b8 Z- e0 i
- D5 ]4 N* g2 C7 Z% U" _
上海点团信息科技有限公司,承接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

楼主这个问题解决了吗?: a# Z" v; z1 l7 {) r& I
$ [5 P* o: a" q1 i
解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了