查看: 4020|回复: 1

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

[复制链接]

6

主题

8

回帖

120

积分

培训VIP会员

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

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

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

×
本帖最后由 cosn 于 2015-12-18 12:49 编辑 ' x7 ~! j3 n9 u$ J

' M' T( G9 f3 \我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?
& n- k5 S! p; {0 D* m, S; a* S: E
* x; Y* V/ r1 ]2 r) N下面是点击对话框 “应用”按钮的代码,正常的。% c, D& c0 D9 o2 m' s# t( P0 i# Z
4 ]% c  L0 A6 C
wint gaimianyanshe::apply_cb()* @; R9 K/ Z% C" Q* o, n
{& h4 j+ o8 t: T
int errorCode = 0;. J" v# s4 }0 V- Y4 [6 k# S# U
try
9 Z! N+ q% ~2 G3 D" f, S{5 y6 X8 n* Z  m  m5 N

- G5 e+ E* M- U0 I' k- t; v# GDisplayModification *displayModification1;
. h5 s0 Y3 D9 a9 v$ n) b/ C/ j% MdisplayModification1 = theSession->DisplayManager()->NewDisplayModification();
9 d) n4 b% P/ e/ e8 p# I) OdisplayModification1->SetApplyToAllFaces(false);4 u2 y7 v+ |5 P, c  T
displayModification1->SetApplyToOwningParts(false);, T. a/ |# Z0 g5 z
displayModification1->SetNewColor(28);
& f0 v0 U7 g( R; ?3 _' m2 D
: }# `' b) s9 Y6 u3 {+ o1 @. {! D

6 G9 x, P+ G4 ~& rvector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;9 v4 H, Q3 f6 N# ^* _: N
vector<DisplayableObject *> objects1;( {  S1 Y" K& Y) o* o5 b
8 R9 j# N- @- O4 V* _: M
2 k6 j: K7 N' s+ S! Z
for(int i=0;i<faceobjtss.size();i++)
4 j  a" x2 b( i7 a& u{
6 j2 l$ l" z8 d! i2 Xobjects1.push_back(dynamic_cast<Face *>(faceobjtss));6 T4 }8 X  S  h0 f* N1 ?& g
};4 G. h( k2 o7 r$ y! ^1 M
displayModification1->Apply(objects1);3 @6 O- c: T% n1 ~8 u
objects1.clear();
( f' |) T. k3 m# kdelete displayModification1;* h) {4 n) B4 B
displayModification1 = NULL;6 F4 l) j  Z3 X4 ]7 h
; L* P: x2 [" G6 g( ?: |
}
7 O2 C8 D& v! ^+ V% U+ Z4 j0 \caTCh(exception& ex)( a/ w9 f; F4 _! k1 W8 V0 Q7 S
{4 O$ L8 V3 L  _% k! p* a3 r
//---- Enter your exception handling code here -----
: J2 E) C9 l9 M( C) Z8 `; RerrorCode = 1;
3 [) E7 c6 ^. Z/ ^1 u: o$ Kgaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());2 x) v. A4 ?! \3 P2 V6 w5 U4 u0 n0 f
}
% O  ~' {0 J) U$ Z" M' D( \6 jreturn errorCode;  i$ X, [9 Q* R  ]
}
1 R6 K, F# ^; m9 v4 [5 W% o/ ]3 [% B7 V

) O/ ^' T. M5 i2 F+ p) v
6 k+ [- C% A8 k1 e1 \' m- y+ U. f2 m3 D下面是  button 下面的代码,点击却没有用,为什么呢?
) [8 ?  ~6 {1 Q& F3 uint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)
, e8 K+ t$ \3 ^# {* W7 s/ \- ?$ P{! \7 s- t: W6 Y
    try
; n7 q6 K6 V4 Z, ~$ p1 H) z. S    {1 M+ {1 _2 `" P7 h& G0 @3 b& c
        if(block == face_select0)  k7 Q' `: K% b/ ^# u) B
        {
9 S+ M9 g5 P+ J& H; Q# J, H
( F6 L0 U: v$ o9 ]% X        }9 C# Y) Q1 i' Q1 a/ o
        else if(block == button01)
3 K3 y: w8 C7 r+ e9 T0 H        {
2 y& U  `+ m+ X9 Y+ t/ I, j- `      
8 e& s4 G: T5 f1 B# [/ q5 W                DisplayModification *displayModification1;4 X! i( `/ ^8 r: C' n! _7 Y8 O
                displayModification1 = theSession->DisplayManager()->NewDisplayModification();
  E! ~: d" X2 L0 Z% R                displayModification1->SetApplyToAllFaces(false);- e* v  q- |' d9 k1 U- }
                displayModification1->SetApplyToOwningParts(false);' n# |$ @- X7 L* p
                displayModification1->SetNewColor(28);* t2 y; X/ a9 h4 }/ Q! S
2 f9 M3 Q: A2 }; l: I% l4 }

$ g5 _+ _/ o  c% X% c9 G' ]6 a  B& R                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
& }  T' H3 b- K7 v& c7 L* _6 i                vector<DisplayableObject *> objects1;
+ A) U; ~  ?/ I, o/ v" k" U) g& @3 J* [' D1 i# t

% x7 A- `, Z' k$ H% [5 Q0 y" O3 t, g                for(int i=0;i<faceobjtss.size();i++)
! {* @- z" f- ^9 C& B. }                {
# d  v; k1 W: J/ j  ^$ T                objects1.push_back(dynamic_cast<Face *>(faceobjtss));: b2 J  ~( [0 B
                };- X& x0 g! M, z) T3 l
                displayModification1->Apply(objects1);
. a) |6 s  x8 }  K0 `5 }                objects1.clear();
7 r% L$ {8 a* h1 A5 m                delete displayModification1;( ~) B) I8 x9 [/ J) I/ {+ {
                displayModification1 = NULL;
( t4 S  \) Z. T/ b% l7 n$ k  {, G! Q/ B2 D7 t" c+ V! T
4 h9 ]9 l4 O: w* s7 A, X  l
        }
+ O4 \0 O; e8 K3 f: m* ?8 }/ S7 q7 p# S: [- D% [
    }
& S0 C3 r; ~/ S" r3 v    catch(exception& ex)9 B# W, Q, i1 r
    {
& y7 n4 ?4 C& k6 ]! O' W% h        //---- Enter your exception handling code here -----
) e" w% \1 |' a" n' R        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());! M& T' H- U" v& U
    }
3 ~! `& e. ~' r! c    return 0;# A0 X' g' M: Q- `
}
2 E0 S4 I% u9 z# b1 x& {) l! L( Z" b4 _

7 n$ Z, ?  H# Z" J8 S, f
: F" ?- _$ S9 {/ P
上海点团信息科技有限公司,承接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 | 显示全部楼层
楼主这个问题解决了吗?; r% z9 J. Q- c

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

使用道具 举报

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

本版积分规则

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