查看: 4079|回复: 1

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

[复制链接]

6

主题

8

回帖

120

积分

培训VIP会员

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

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

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

×
本帖最后由 cosn 于 2015-12-18 12:49 编辑 + n, D( \  t4 @# j; e$ v6 E

/ r8 O( s, \- c6 ^: I! x) G8 O. z我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?1 c: r2 B7 W( M1 Q3 @0 \. H, P  ?9 X5 s

. L; y; r4 W4 [& _& i: _下面是点击对话框 “应用”按钮的代码,正常的。+ r9 Q* j( Y- y' m
  C8 |  A# u( i6 N1 ~' i( |4 a. ]( P
wint gaimianyanshe::apply_cb()' _7 I' Y5 Y! s1 [/ w
{, f  `- N* ~  ]8 Z$ }5 e5 `
int errorCode = 0;
( F+ d+ x3 L* v& u! o# f. ]try
9 u% `* D4 H6 e" C$ E{
1 V4 B9 q7 K% O4 f, S' J6 @% Z/ I3 f% b
DisplayModification *displayModification1;
( x5 Z; e% R# F" z- f/ d" ndisplayModification1 = theSession->DisplayManager()->NewDisplayModification();  c( I3 B, b: u, G  P
displayModification1->SetApplyToAllFaces(false);2 {4 d" _' w4 m( o
displayModification1->SetApplyToOwningParts(false);% w+ q* e7 O9 q! ]& m" Y
displayModification1->SetNewColor(28);
# d% p, B. V0 K$ ~! N; n* p
) w4 R' }" X6 F0 v3 F& ?- r! g
! G2 G$ R3 g3 F( Z
vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
: A+ r2 [2 x$ [2 @vector<DisplayableObject *> objects1;, O/ E$ R2 \( |" l
) U0 j. ]4 T  q0 V# s' s' C

' j7 Z6 s- S1 L9 Q9 }. G  efor(int i=0;i<faceobjtss.size();i++)8 D8 }. k( @: @0 p
{/ s# T: h, [( j- F* m  b% `
objects1.push_back(dynamic_cast<Face *>(faceobjtss));6 ~/ Q8 q, ~" ?
};
; e$ b/ O% \# L' j9 ~; `% VdisplayModification1->Apply(objects1);
& ]6 c, E5 b3 p3 b/ m, m. Zobjects1.clear();* d5 a6 P; ?$ P. L9 u' j8 `
delete displayModification1;$ @: V% \6 L# V5 [; L+ F$ [; Y
displayModification1 = NULL;/ O! ^0 o, {4 t4 w* v
  O! H8 G$ N+ T/ U/ ~9 f
}9 ^7 j( M  D3 ^1 s: `, t$ P
caTCh(exception& ex)
6 z# V/ e6 _% Q* @7 |{/ S: {; X4 D" G0 q" Q. S3 F
//---- Enter your exception handling code here -----
8 g8 V' K: _9 K0 A3 JerrorCode = 1;' T9 m( M7 F% i4 i
gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
9 U2 e) ^/ Q+ s, {}
' |' v' V. W6 a$ S0 Qreturn errorCode;1 G% @) \9 K/ {3 `" t
}
% o2 v' b" C, [- {/ x/ x
7 x& B9 Y0 g( i8 L/ t4 j) M3 D* h1 g* t, C

! P8 F4 C* _! [2 J7 b/ x; G/ G下面是  button 下面的代码,点击却没有用,为什么呢?
& g2 F- a& f  z$ M# a8 mint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)  e$ E" _! c- I
{
0 A! D( U1 N3 Q4 D! F# ?9 l- u    try
& A7 D$ H6 S; g3 `& J: }5 f    {
4 t0 a# _2 r. I. Y        if(block == face_select0)
8 M5 t: i/ c9 X' a& F& \        {
) E1 ^7 P7 e, C8 w+ C4 L/ {
$ Q0 y0 m* W# V# ?+ Q        }
3 O+ v% C$ U1 h; r6 y        else if(block == button01)2 b" o( V" ~" o5 c4 i6 C
        {, b4 k1 f& B- W. t; g
      
. z6 @/ D0 B! C; {' |                DisplayModification *displayModification1;# i" e5 N0 r5 ?9 e0 S
                displayModification1 = theSession->DisplayManager()->NewDisplayModification();
: i0 M" Z7 d! s" n8 v0 b                displayModification1->SetApplyToAllFaces(false);6 @7 @$ G% `* ]9 }' h9 m* W
                displayModification1->SetApplyToOwningParts(false);
9 i4 o) j/ Z: r1 g2 _                displayModification1->SetNewColor(28);
" o0 u- q, z  \# H+ U- ]( y0 b& s) T- B; B2 c
! E( x7 R0 n7 b4 V6 B
                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;3 Y; \" p3 \8 `/ j# J5 b! @! Z& f7 F
                vector<DisplayableObject *> objects1;
. ~6 I* t  p3 z1 U+ m/ S  }) z1 A2 R) c% w
% D: Y* X5 x2 _* f% q
                for(int i=0;i<faceobjtss.size();i++)7 p% Q; W: @: f6 A4 f! o- O1 {
                {
1 G. `9 y2 E$ ^3 @1 p3 R) c                objects1.push_back(dynamic_cast<Face *>(faceobjtss));
5 N1 u, o4 p' ~% i" }( S                };
/ E% }; o; K9 D+ g                displayModification1->Apply(objects1);
8 b' P: Q8 d# _: p9 Q) M                objects1.clear();: O: O2 f7 x% _! y! e4 V5 z# v
                delete displayModification1;
, U" V8 ?& H: g, r                displayModification1 = NULL;$ J9 R, r3 a; W& m# F
% o7 T/ z1 A- a$ E2 |1 W7 O

7 B) f  S" `9 ~: @6 Q        }
% X/ Z& \4 z' d' ^& A$ |# r1 G
    }
( S1 G$ ?9 N* R+ h( I# d    catch(exception& ex)
; P# ]" m! Y$ X% d8 y6 H( g$ _    {. _# D. _' Q5 M$ n7 d
        //---- Enter your exception handling code here -----8 o* q$ a/ y4 ]) T5 o+ @: D) [, Z
        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
) w: p' c. h! W) Q% e8 I0 t    }
. W2 i& w% q7 T; ~    return 0;
" z+ G; m- k" I, X+ O1 z7 V}
! H( ?$ @$ A4 _3 b' d, L/ v' o
) V# P1 b# B; @& P$ x: w' X5 V1 @0 {, m0 w2 k$ p6 H" w

3 {/ m" X5 b$ `2 Z
上海点团信息科技有限公司,承接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 | 显示全部楼层
楼主这个问题解决了吗?- F1 v8 `8 {+ k7 z3 Y

  J3 e% T8 ?9 ?0 i" O解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

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

本版积分规则

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