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

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

[复制链接]

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

6

主题

8

回帖

120

积分

培训VIP会员

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

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑
9 i! v# b' [3 `6 c3 t7 w
( i6 x9 B% }& `/ T0 }我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?0 c5 G' f2 q! _  G+ x3 v

' n8 A1 o% f' k5 r+ U" g下面是点击对话框 “应用”按钮的代码,正常的。
9 I. x; Z- D% _( b: J6 T
; t$ C8 e/ L* Z8 K9 `wint gaimianyanshe::apply_cb()
: i( q% E: |) S{
( V1 d! _3 n) d% W* I! fint errorCode = 0;
4 b: G3 b7 \( L$ l+ V: m: B2 Vtry
& ~4 y, M" j/ P5 X- ~8 |* z{
8 a& Q8 I9 Y* z4 |  x& f2 |% @9 C0 V3 m2 s+ f8 ]
DisplayModification *displayModification1;
  ]' `8 e! A" B4 y, [: v: Q% tdisplayModification1 = theSession->DisplayManager()->NewDisplayModification();
/ r; m3 N9 h  \. l0 _" [: K* ?displayModification1->SetApplyToAllFaces(false);
  V: E. W6 G( W) _  E/ X% ldisplayModification1->SetApplyToOwningParts(false);
, O/ x$ S# u* M$ ]displayModification1->SetNewColor(28);) a3 C* X% v( e! w6 W7 v5 ~

* X: s& t. ?1 T# o

3 x+ g( v. q- M8 E0 D. ivector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
8 X  [4 l3 p2 I' N- |vector<DisplayableObject *> objects1;8 \- o! Z; n$ Z

6 D' a. ~' \# A' }" r% M4 b4 X5 k, z

2 K6 B, p( z4 L/ }& ]for(int i=0;i<faceobjtss.size();i++)
2 |# G1 R( S5 }" c{/ Q/ p5 C3 f( p3 g' M
objects1.push_back(dynamic_cast<Face *>(faceobjtss));
, `7 `" n9 H4 w' S6 J( X5 a};3 u3 ]3 m8 `0 V% U, W) j" {2 l
displayModification1->Apply(objects1);
5 B3 @' ?. P0 F6 |/ Z- Y* Q1 U3 tobjects1.clear();
1 {. ~8 I) b. b) G% M3 Bdelete displayModification1;. R3 m- k* ^( H( B& o' p
displayModification1 = NULL;
) Y- Y9 X# w( p' V: V' M% d9 \6 N7 ?9 F% I
}
( u( C  O8 e- z$ A$ ecaTCh(exception& ex)  z: ]0 Z0 V8 q
{) O. y) s. o5 a$ L1 X
//---- Enter your exception handling code here -----
0 b! j# P2 j3 i  m6 DerrorCode = 1;
8 }8 r2 n3 Q& h5 j! X7 ygaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());4 ^3 N" i& f1 Y- p
}
8 B8 H$ S+ E* b! ureturn errorCode;
/ H9 ~" Y4 r% T}2 J* [$ e6 {, i/ L) P
+ r; F  w6 E" U9 _* z6 E* j# ~

5 ?4 y8 p+ R$ {6 _" B2 V8 Q  V4 X3 }; D# r, M
下面是  button 下面的代码,点击却没有用,为什么呢?: R) V2 G0 G# J
int gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block), e- I/ n5 P5 [: v2 a
{% ^+ j9 r+ H' z1 p. z. r
    try
- I  t% I/ B& o( B    {: H1 z0 ]: H# K/ e
        if(block == face_select0)
1 j, x! J" ?1 h! }4 M* l        {
1 e, ~7 y9 B6 v
. B8 {2 D+ C/ s% L) A2 T$ N        }5 k" S  U( |- N% o0 i
        else if(block == button01)- |3 Z$ ~& `3 [
        {
0 M+ U0 e# O! u8 E" c# C8 _  E+ `# _       ( c) F3 Z# a- ]6 e3 n$ ^
                DisplayModification *displayModification1;2 f6 x7 o7 i* f# |9 K8 E8 g8 }; B; D
                displayModification1 = theSession->DisplayManager()->NewDisplayModification();- J# y9 b' B5 q1 v% _! u% U6 t
                displayModification1->SetApplyToAllFaces(false);
2 }1 z* R: ^! Y" p                displayModification1->SetApplyToOwningParts(false);" i( V! A) a+ q1 E) P1 e  N
                displayModification1->SetNewColor(28);
; Z# h5 Z# \" V; Q0 S
* h( M. D8 I1 u8 O- i* E3 j

  t( e- h. u% }8 |5 y                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;$ e9 {4 I3 y; i7 a7 Q) v/ U) U
                vector<DisplayableObject *> objects1;6 F, w8 v( p+ ^1 }7 j
. j6 x+ g5 B+ M  }

' S$ F9 S; W4 [- H: k# C                for(int i=0;i<faceobjtss.size();i++); {/ u+ b3 B8 M3 W+ l
                {
* J' b3 I  G. I3 h0 N& W8 t                objects1.push_back(dynamic_cast<Face *>(faceobjtss));
* b; _/ a( L3 I4 _                };
- u1 J3 P3 L) u( _8 q) [, ^5 E                displayModification1->Apply(objects1);
$ c" k* c. F* c8 k                objects1.clear();
! g, Q) ^* }! w. K1 f2 G0 F                delete displayModification1;. `8 [; G, |- \4 {' b6 {' s7 g
                displayModification1 = NULL;
  E& J5 T- P0 H8 a, r( S
: ~3 N0 V6 g- o/ V
. X; b6 e9 a3 B) Q: v8 I$ V
        }
* g% Q( X/ I2 Y8 t
8 @! s+ p4 S! J$ z4 X1 B    }
' F: ]" v! e1 @: w    catch(exception& ex)% X2 A+ o( `9 G9 N
    {
; K+ C- O( m7 v) [$ ]        //---- Enter your exception handling code here -----6 D1 V% r$ l4 w2 h* H
        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());' n7 m/ c0 a# {
    }
. Q) y) N7 ]$ g* i. t    return 0;
1 \- _  E" q+ O; ~- R}$ N2 I) |; g# v( D- ^/ J

& a0 H) V7 R+ H3 X$ [$ S5 n- l* b1 i. a" U

, E& J# c: I0 e: M
上海点团信息科技有限公司,承接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 | 显示全部楼层
楼主这个问题解决了吗?6 f2 `) |# C6 r9 R' H

' ~2 n, P. y. c8 o6 F; k+ T* M7 G解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了