查看: 3902|回复: 1

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

[复制链接]

6

主题

8

回帖

120

积分

培训VIP会员

积分
120
发表于 2015-12-18 12:38:28 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 cosn 于 2015-12-18 12:49 编辑 / W( i: z+ I  R( h9 i
( l5 B9 P! i" k# {
我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?! P: Z; P: Y3 q& u4 o4 T6 h

9 r9 P2 F' x1 Z( V& `下面是点击对话框 “应用”按钮的代码,正常的。$ t5 `: [; Y% [. U9 ~
' L2 X0 ]2 Y& a; y5 J
wint gaimianyanshe::apply_cb()* Z, P+ ?9 s3 @6 G: K0 G- y& Q
{
, j" \" q& f: Q1 E& V; nint errorCode = 0;
" F! ]/ O) f& N2 K! Z/ E: f- Wtry7 b& o3 U, ]1 S8 y: p  i) r. C
{/ O2 b; P+ w, \7 }* T

0 @* N6 A% |8 Q. i/ pDisplayModification *displayModification1;
$ |8 a- t6 d1 c) Y2 sdisplayModification1 = theSession->DisplayManager()->NewDisplayModification();! K& G, K' v4 S  n8 I6 I
displayModification1->SetApplyToAllFaces(false);0 |& W; X3 [0 R. Y
displayModification1->SetApplyToOwningParts(false);
$ s6 o/ i! {$ p% N7 SdisplayModification1->SetNewColor(28);
* g( {3 R# x8 Z. @9 q) O
# X& l% r% g- l+ r

9 k4 s* f0 V4 @. s! Pvector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
% h4 ~; n; d# ^vector<DisplayableObject *> objects1;. o/ D5 ]; {- }- _
0 m0 s" f# [! C7 o
+ S* n( o$ @- M6 F8 O* J
for(int i=0;i<faceobjtss.size();i++)
9 ^; @2 f! f4 o8 B" d! ]{
- |. I) j) C: ]# m9 iobjects1.push_back(dynamic_cast<Face *>(faceobjtss));
) v$ A' F/ E2 c};6 l4 R. G- |9 b( M( H! \
displayModification1->Apply(objects1);
" T6 k, g0 L& xobjects1.clear();1 n; r1 c# A4 Y7 C4 p
delete displayModification1;
5 J0 Y- I( p# WdisplayModification1 = NULL;" s9 F/ @5 _2 G. r3 E4 {" R

6 g0 G3 `) N% k3 l! C4 @}/ C3 r, Q' ?- J  e5 J
caTCh(exception& ex)
5 Z' O( l2 F3 w/ }# n{
% a1 j& \: }7 x# L. j1 T//---- Enter your exception handling code here -----  J5 ^# l: x8 L& B7 t
errorCode = 1;8 y/ _8 I1 E2 H5 y* ~
gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
# K4 u3 D' j2 R! d9 }}
( U" {* C; Z0 x7 ?return errorCode;6 C! l1 s0 g1 B( d0 ?8 U. d
}
8 s, a5 G2 G; @' s3 H0 A) P6 _! A0 z
, T. u1 {7 L$ k! {- M$ c! v  \7 s
  V5 d7 h3 _( h- Y! f5 g( K
下面是  button 下面的代码,点击却没有用,为什么呢?; p# C) D; [" A7 [
int gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)
5 H, a8 `1 f. C- w; S5 f) {8 |{
: q0 C1 a8 G8 ]4 Y( @    try$ J9 Y% D! m" Q" r8 }0 g+ j
    {( W$ ^5 B7 p1 K5 a$ L, s
        if(block == face_select0)
+ s+ W" g4 q' n5 k1 j% T% h        {# x9 [$ u9 b, ?5 \! |- }) X

$ B/ @' o2 r" _) V( u        }
8 N$ T% @4 m- {5 Q3 I8 r) U: F: I" o        else if(block == button01)) o3 d' y1 P1 Q. A. u
        {7 ^1 N8 ^3 v+ v5 }1 u2 S
       ) x1 ^0 G+ G7 o
                DisplayModification *displayModification1;
  ~  r) q1 u* O! i$ {7 J( J                displayModification1 = theSession->DisplayManager()->NewDisplayModification();
, B4 n9 W# V4 _& O; O/ U                displayModification1->SetApplyToAllFaces(false);
) J0 a- H( }; U                displayModification1->SetApplyToOwningParts(false);2 q3 T5 E$ e+ B4 O9 w0 b
                displayModification1->SetNewColor(28);) [+ }( U  I- H( t( D. i! Z

% }- Y2 f, @. o; Q$ H
( O# N' F1 t' W! N3 i5 t
                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;( Y1 Q0 y- V# Z
                vector<DisplayableObject *> objects1;: W* p  R( h. n7 V: \! R" c

, \7 I: `: ?" E' G- R( E

0 p# W  F1 ^: w$ k* J                for(int i=0;i<faceobjtss.size();i++)
* E+ o7 z' p* y* q( N6 ]                {# E2 q) X* }& J! d$ q3 ~4 x9 f
                objects1.push_back(dynamic_cast<Face *>(faceobjtss));
) Y& N7 U: w0 u3 t                };. S$ j  M" z% G& J% }6 ]- H
                displayModification1->Apply(objects1);, a* n5 t- g2 h
                objects1.clear();; e. W# _$ w8 |. y2 i* A
                delete displayModification1;$ B# ?; Y& b0 r; s( \7 H$ }, p
                displayModification1 = NULL;
5 \) H7 k# l& F9 `  t7 I$ m; Z3 b7 A+ X; i' w  ~$ n

- I# ^! ?& w# k' X" w1 C, @        }& W/ v3 M" i: H6 p& [' Q

+ {/ D( \$ j3 P    }
6 e! Y" p  I) \    catch(exception& ex)' Z9 F2 z% L! O0 O; a6 a
    {0 I3 S2 k& I( S, s. q; C" u
        //---- Enter your exception handling code here -----. j$ v( M8 o  h. Z
        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());" F  ?6 ]- l' r. T- t1 d
    }% r8 H0 `5 e/ x! X6 W% P" K
    return 0;% Y9 ^$ I$ K- ~: T/ ~6 ]0 _: ]
}! O; Y- w/ X; G/ z

' H' R' y0 y6 W) t& N% H/ t
- T/ q3 r5 ]. F
7 R9 q. B4 q+ ?. j( @
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

0

主题

10

回帖

73

积分

注册会员

积分
73
发表于 2017-3-30 15:19:32 | 显示全部楼层
楼主这个问题解决了吗?- L' I0 ?! T# u: ]& D6 I$ C/ P
- A- u0 _7 u' ~# g% Q. }. c
解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

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

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部