PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

6

主题

8

回帖

120

积分

培训VIP会员

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

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑 8 G* F# x0 z) m7 u0 e
3 W9 R7 P; V/ ~  N5 u- A* B
我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?
& J% I% v' X/ }3 C0 |4 ~  A
# P& g3 Y* l& Y- q5 X6 i3 z/ r  s; g下面是点击对话框 “应用”按钮的代码,正常的。- Z/ {/ k, {1 a- y

0 ^# O5 y. b' ^/ x3 ~( dwint gaimianyanshe::apply_cb()5 q4 `4 C9 q) d7 U: p8 c$ A# ^
{
$ r6 r# I: n4 y+ o3 S6 c: Dint errorCode = 0;
! W" E; t' m0 [  G, ztry$ ~! y; x# |. b7 r
{" G2 {4 v+ U4 E" d* U  s- |& c
& C; i+ d# F' h, [  z- C$ i
DisplayModification *displayModification1;
. P$ ~5 L9 M; Q. r/ R0 TdisplayModification1 = theSession->DisplayManager()->NewDisplayModification();& g& _$ }2 M1 V- i/ j8 _
displayModification1->SetApplyToAllFaces(false);, E9 K7 \: w& \: h! D) N
displayModification1->SetApplyToOwningParts(false);
( C7 H1 |3 U3 \  [0 S2 @1 t6 _displayModification1->SetNewColor(28);- `1 I& X7 M" E# Y! Q6 d; ~$ K

) Z  l; G) j" |* e9 L

3 N4 ?: |* i8 u. P. Cvector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
' c( @! J+ X7 e1 C( Vvector<DisplayableObject *> objects1;/ L. Q4 \+ s% y% N& L, E; G
3 K! x5 W1 y: A- g, t# }) w

) C. O, E" e' f* d7 L- O! xfor(int i=0;i<faceobjtss.size();i++)
" p' B* |* ]0 B* d{
- w9 S* R% A2 n' e2 i+ Yobjects1.push_back(dynamic_cast<Face *>(faceobjtss));
! d: C( y& z. S; S};
4 h; ?: k) O8 ?; t. f7 c" M: odisplayModification1->Apply(objects1);
; h. K/ r3 A/ t! K1 i8 K$ eobjects1.clear();
# d8 ^! _# \, N; x; u4 Qdelete displayModification1;) A: _- \2 [$ c' S' G
displayModification1 = NULL;& r9 {" B" Y& ?0 W3 B
2 N) K- d; I- z+ X- U  F
}; _- f. F0 I. W
caTCh(exception& ex)* g5 [6 ~% @" r) B. P
{
  t! C* s& l; a" k# M7 v//---- Enter your exception handling code here -----
4 S0 S7 f4 o) z9 Y' AerrorCode = 1;
$ q- n: c8 }! d" \: a+ r# vgaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());. R9 N/ F/ c; N$ F! e
}
0 ?3 \  @" ^( H6 areturn errorCode;
# ?! ~: n+ i, i0 C6 ?9 D}% @6 m; {$ o6 _  L( h& h
+ @; n3 _3 [: d3 U5 l
) A# c% W1 Z! k& M

7 r' G! c' o9 L' Z5 w下面是  button 下面的代码,点击却没有用,为什么呢?
) ]# P- a- p5 Q+ i7 @% U% y. Fint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)
. j" p! _% c  t4 a{
! \7 p* p* u& G# T    try4 Z) Q  U+ J9 a6 C6 f4 ?4 \9 m
    {7 F8 a9 @4 P! h& A' Y  |( Q
        if(block == face_select0)
1 ]2 @* W# t$ }# E8 g3 x' H        {
7 A; d. o2 C1 p: z/ ~' Y$ i; O/ o# A% j! D
        }3 g- }- C" _0 X: d( P* J9 t: r
        else if(block == button01)! d0 f: ^7 {9 j2 ]4 `& }! M* o
        {
5 O$ {5 \4 t% t2 a      
' {. I& U8 |: r2 {% f& |- {                DisplayModification *displayModification1;
* M: u+ f$ k5 p0 V' t5 V                displayModification1 = theSession->DisplayManager()->NewDisplayModification();( o0 N+ P6 W( `0 p. m6 [
                displayModification1->SetApplyToAllFaces(false);
3 C' a8 m3 I2 W, P                displayModification1->SetApplyToOwningParts(false);9 o# s! o6 a  I3 @+ C
                displayModification1->SetNewColor(28);2 z. V5 s  o, D. E" }

$ d* v! n. V" Y* U) J: |6 r( m, G

/ n+ C- m2 R, \: G                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;0 e: U' A! E) m  o% B2 R
                vector<DisplayableObject *> objects1;/ r) k2 @+ u; ]
2 S; g2 w$ |6 a9 @: d( z

! I$ ^, _* l" a9 s7 w                for(int i=0;i<faceobjtss.size();i++)
' S+ @# \5 u6 K7 b5 i0 D6 ]                {
8 B2 L6 I1 m* e: k& I  A                objects1.push_back(dynamic_cast<Face *>(faceobjtss));
7 e$ t/ x+ x  _% R' _% s/ N0 y                };
  P# {( R7 D2 o4 H4 _; s                displayModification1->Apply(objects1);
) T; ]# u) @4 b                objects1.clear();4 U4 m# Y, T. K* n7 t& k! A$ |
                delete displayModification1;! z* \: Y* J' m" [
                displayModification1 = NULL;/ `/ M3 a* s; U3 r1 c8 [2 q% a
1 X" i5 s" N) V- M) K2 S- z3 O

- e. d6 z  n( Q+ ~1 L& d7 [        }
' @3 P" t' W  w/ P) z9 e. l2 y( D5 {
3 R. f( R  ~' s9 M+ f    }* r5 ?; K, e3 b; @: w5 P0 X
    catch(exception& ex)
$ u; y1 h' f; w1 H1 @5 Z" O. ~    {9 n. a4 ~3 ]5 p0 i3 C6 n  Y* m  I
        //---- Enter your exception handling code here -----
. A5 }; q! L% Q1 L9 P! O        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
% l! L, w* E9 H2 A9 @: B" ^    }
& K& b/ a6 L6 q: b- S! `    return 0;8 W# B( T. m# m; H  z
}
% U( I  }* H2 n& E* b" n7 @% O! V5 }! G/ I5 H; R
7 {" ]5 M! c* u# f9 d

% Q: l* B0 a! E% c9 J" ?# ?0 x
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

全部回复1

0

主题

10

回帖

73

积分

注册会员

积分
73
发表于 2017-3-30 15:19:32 | 显示全部楼层
楼主这个问题解决了吗?
1 f8 e8 z# y8 d( W& }
( w0 t7 E" ?. L% D& d解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了