查看: 4078|回复: 1

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

[复制链接]

6

主题

8

回帖

120

积分

培训VIP会员

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

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

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

×
本帖最后由 cosn 于 2015-12-18 12:49 编辑
; [( I6 D; b7 [* I. ^" ?
8 v, p# C5 O% ]7 _- c6 E- H我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?! k% U' ~. |7 k4 W* j; h
0 q# ~2 Y5 l% v3 l+ s
下面是点击对话框 “应用”按钮的代码,正常的。% g/ Z6 X5 `& V" Y; o$ o$ Z
% o$ s5 c' Z. v* B! P% c' m
wint gaimianyanshe::apply_cb()4 M+ A8 `; i$ D3 }' G
{, N8 f. I- E. H
int errorCode = 0;
" W+ w* M% U- N6 c$ ]+ ptry
" e; w7 x6 |5 y* U- H& u{
: D# M* f; q8 S" z# n' v" D+ a. V2 j& k" J! X
DisplayModification *displayModification1;' z5 A/ s  R. P! R' a8 I
displayModification1 = theSession->DisplayManager()->NewDisplayModification();2 H, l$ o& ^0 g- A; g- w6 Q
displayModification1->SetApplyToAllFaces(false);8 m9 y0 y& L- j% ^
displayModification1->SetApplyToOwningParts(false);
! H% L6 @! u/ ^& i+ }displayModification1->SetNewColor(28);
0 d1 l0 U3 ?# P/ O2 }" K$ C
/ o- t- U. g7 s5 S% P9 d
6 h% d3 s% w4 U! y& [! R- w
vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
5 b$ x: S0 _1 R' Z$ fvector<DisplayableObject *> objects1;6 ~6 t% C, D& v& z$ B; q

7 {) f. U; D% M3 [) N+ O# k
( F6 a" e% C1 {' h( h8 ^$ v
for(int i=0;i<faceobjtss.size();i++)
4 b  b) |7 m6 a# Y9 g+ h+ g{
5 P- m! w& [1 a3 `* G/ ?objects1.push_back(dynamic_cast<Face *>(faceobjtss));
% W- I1 Z* a& `; C};4 H8 p/ ]% Q% j- F
displayModification1->Apply(objects1);( y. W3 k0 P# a3 t) i! Z
objects1.clear();
' D. x$ P9 U. j/ c) cdelete displayModification1;, I( h6 D( D) |1 n4 s8 _! |7 O4 O
displayModification1 = NULL;
7 m( a: m+ z/ Z! X9 D4 }
! m! Y  a* ?* Y! e9 b}
0 u, _6 I. g: H2 H% N  G# u1 McaTCh(exception& ex)
/ s# V7 U/ Z- s. c7 Y8 Z+ _# G{8 x, `, r" {: K
//---- Enter your exception handling code here -----) V1 R5 Y; S. `7 e7 B" J
errorCode = 1;
, L7 q! \/ A" l4 }gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
2 M( A- H; f; y8 q3 V; g' c4 [* b8 h}  u# D! j" _. C( ]9 j
return errorCode;1 U6 H  k) r% J& y) b2 y. `7 t
}) h0 E, j! x$ A  [) k7 x

$ L6 m/ d8 |4 T8 z' f0 ~9 _8 I% |! L" x0 G5 \* D

0 `" j! c3 C4 U7 i0 {0 {( E下面是  button 下面的代码,点击却没有用,为什么呢?
# H" F1 N* j/ Vint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)/ [- b) W5 f! x' x2 `# t% |- [( I
{8 h- f4 f  _" r8 ]
    try4 r' a1 y6 _4 {9 s
    {4 j! d( y& @5 \# V# {
        if(block == face_select0)# W; O6 \. w) g' w' y9 H, E
        {
# v# O' x2 M  \! M7 k/ k5 u$ `. c( }0 }: I
        }+ O6 x% V3 C/ ^) @# |/ V
        else if(block == button01)$ v$ C  Q3 H$ k( H# V
        {
! T" j6 I+ j( F7 R. g      
# V5 B1 L5 _0 d. T; p                DisplayModification *displayModification1;  w5 ]" o& ~& s  S+ p& T9 ^
                displayModification1 = theSession->DisplayManager()->NewDisplayModification();4 L: ?2 ^! a: T9 o
                displayModification1->SetApplyToAllFaces(false);
0 I0 ]! o; ?; B; n2 `6 f6 Q. ~1 ]                displayModification1->SetApplyToOwningParts(false);
  \7 W% k) B, [9 o0 H; J5 M' E* o                displayModification1->SetNewColor(28);. q0 K, v( o- M! H
+ i% h2 w/ M' s& n4 ~! b- v
7 B, P5 n+ i0 {$ n) ?1 S% u# C
                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;7 x9 W: L, S( d+ P+ ?$ Q
                vector<DisplayableObject *> objects1;$ P8 }. h! d) _+ q
( |, W' Z2 e- I3 W6 ]

6 I8 n' u  Z. K; {. h4 I                for(int i=0;i<faceobjtss.size();i++)
, }9 c* _5 x" q! T# Z. L                {4 l- D  H) V8 H% M0 D
                objects1.push_back(dynamic_cast<Face *>(faceobjtss));
0 P+ [, q$ C& ?2 `# T: h- K                };7 h0 @& Y) _  ?3 ^  t- N
                displayModification1->Apply(objects1);
$ G3 _* j; |0 r$ _1 l8 G1 K                objects1.clear();! x: f8 h9 A& C( c1 a+ R. n
                delete displayModification1;
! Z" ~. I, c6 |8 m9 M% }& u                displayModification1 = NULL;
# |9 w# Q8 Q% A! d+ ~, N7 a% Z8 T

- [9 B0 s4 ^1 z' w        }( A1 c6 o. Z+ y2 a
0 f7 y# C' z6 I5 B+ `
    }9 V# f6 ~* P' S& I
    catch(exception& ex)
: j4 ?* y! Y: p9 P2 m) }; f! D    {
: F! T3 t+ n3 q/ s        //---- Enter your exception handling code here -----
+ Z  Y/ l; V6 j* r        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());9 @6 s& x# q$ r4 ?6 @  M( b
    }
! P0 {+ ~7 R* w0 J, G, Z3 V    return 0;
- m0 N  g4 i7 T" {& ^}6 m, F# Q; @  T1 ^9 V- }; m9 u4 Q
# ^8 r  Y; M+ `3 N2 G

3 ?9 d* J! h2 L! R
- y1 E; z7 c2 |  o* ~/ u
上海点团信息科技有限公司,承接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 | 显示全部楼层
楼主这个问题解决了吗?
) a. y; ], c7 ^3 J) N
) S: F- R/ }9 Z( w  K5 g解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

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

本版积分规则

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