PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

cosn 发表于 2015-12-18 12:38:28 |阅读模式

cosn 楼主

2015-12-18 12:38:28

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑 , C. r7 Y& p( k  d

6 B/ i, x1 u3 s9 w我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?
! d" U) e0 ]. D+ r+ ^  X, |( Q$ v/ c4 `4 k7 ]: L. B- p: T
下面是点击对话框 “应用”按钮的代码,正常的。9 `6 i2 S& `" q- l$ R7 ?' g3 d8 Y  m
  Z# q. x, e9 x. N9 T* q# K
wint gaimianyanshe::apply_cb()
2 _6 t0 c: L' [& }{
' I2 P+ {! W! Pint errorCode = 0;
% C1 F7 L* B# m1 v$ Vtry
: p9 H9 y7 C( E) D2 M{
+ p+ _. y$ C2 G2 F& e9 |
* i( p& R0 t* o3 K, c4 WDisplayModification *displayModification1;
0 u/ A: Y# P+ S$ i4 udisplayModification1 = theSession->DisplayManager()->NewDisplayModification();( m: R" a5 t2 D) U- x! U6 @
displayModification1->SetApplyToAllFaces(false);) j% y8 l0 L5 }$ t: @3 x) J
displayModification1->SetApplyToOwningParts(false);
! {) l* |( m/ N) R& G0 ]displayModification1->SetNewColor(28);
' P0 \  g: v: J& r) H, ^6 v
- q$ y8 i& p# Q6 H7 K/ z
: z0 q6 [4 t  k; J( [
vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;9 ~) v9 S/ w  ~' g
vector<DisplayableObject *> objects1;; H" d% a/ @1 m

3 \# P4 P9 i, _

9 w1 c# ~7 i7 B" tfor(int i=0;i<faceobjtss.size();i++)
9 t9 d  w" G( [7 l9 A5 u{
+ j0 N0 v) F- j* Lobjects1.push_back(dynamic_cast<Face *>(faceobjtss));. e% z' A5 q: D
};
8 T5 l* A, N" I+ vdisplayModification1->Apply(objects1);4 r3 D2 f2 k! R/ J7 r" _4 i1 j1 X
objects1.clear();* v8 v6 @% H$ _/ t8 x
delete displayModification1;
8 r% N( f4 l1 s2 r/ Q- J0 O2 QdisplayModification1 = NULL;
8 [# @9 h, D4 g3 f1 a/ z7 R
4 p: @8 k+ e4 u! ?* c}- s7 }8 L0 S8 V' Y" ~" l
caTCh(exception& ex)
. ~+ Z6 n* y5 D3 T' U( @8 H{
9 B" i6 J4 D) W//---- Enter your exception handling code here -----. `$ m& V1 N( u& [
errorCode = 1;
1 m- c. X/ z- b+ K9 E9 mgaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
* k% V+ c" E, F$ `) I3 L}
! J( t$ `; e3 G2 S) u5 zreturn errorCode;
: a0 F( D" Z. `- j}
8 F. }: x; n9 X2 Z# N, p: F5 C/ |" p3 ]. S( x

% ^9 B3 c3 |9 l1 _6 k0 L
' V# J8 a# t4 W" S下面是  button 下面的代码,点击却没有用,为什么呢?
! D9 o  S4 |) W& _" Fint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)7 z% w  }: U' ~
{
6 ?$ b7 K* Y  k    try
- I* v! o0 e/ G+ C- h    {
& G0 K1 F+ {. z7 F, z5 d  D6 {        if(block == face_select0)
& {% g6 l8 V9 Z1 R3 v& ^+ O        {
  }/ ?$ H7 X0 o5 d% D4 f$ S& `  U. D
        }7 {* k8 [  I( U, ~( H- T3 [
        else if(block == button01)1 r5 @$ W/ I/ I9 `. K$ q+ Y$ E
        {7 @  I- Y- s' H, l8 V( r
      
# E$ s# {0 I2 Q, h) D8 K                DisplayModification *displayModification1;, l  z& m' o) N6 V) `9 m2 j
                displayModification1 = theSession->DisplayManager()->NewDisplayModification();4 \6 n" B$ C1 b$ X6 p5 }( v
                displayModification1->SetApplyToAllFaces(false);! q3 o0 N4 l/ d
                displayModification1->SetApplyToOwningParts(false);; Z& M9 j; d- B+ b  p- {! u7 Z
                displayModification1->SetNewColor(28);7 N6 ]* [/ w% n
% K  A. b6 R$ n5 t; v& P

  R  Q0 C& m! q- p, D8 \                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
, l1 _/ I: @! F                vector<DisplayableObject *> objects1;
# F0 ^  X6 b2 s& G' `
4 q: _: L! m  J/ c. _0 e3 J

$ V, ?: {. B( E/ z                for(int i=0;i<faceobjtss.size();i++)
+ I/ O' N: q. T, e                {
* ?: I; Y* y6 k                objects1.push_back(dynamic_cast<Face *>(faceobjtss));  t1 V! Z' L/ b8 P& b* c
                };! J) o* T: ~  R4 j
                displayModification1->Apply(objects1);
( m9 y& _" |, `' Z7 Y  T1 q. @7 G                objects1.clear();7 J% G4 H1 Q/ O" V- B
                delete displayModification1;
/ W5 i0 |2 A' ~& }) ~$ Y                displayModification1 = NULL;" i( U2 s( l/ G# W  {

9 U5 J& v% f( R. P, z

4 m8 K9 C) m5 B3 }: Z7 z        }. Y2 s# w0 g' ~, p  M6 d

- i- U: L9 {; g5 a/ W  U7 p" [    }
+ W' N' I- _/ M& T' d    catch(exception& ex)
4 O: N- w8 I% P) w& [! @7 t    {
2 L0 M9 ~3 ]7 k7 v# _+ j        //---- Enter your exception handling code here -----: _0 _+ m5 w8 l: {; G
        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
) r! {1 C$ I, R9 g    }1 I+ [$ K7 U' m: ~
    return 0;0 w2 {: x, ~! z$ n' J$ b
}' A: s2 X, T6 Y7 J
7 N4 L! Y9 g0 v, F7 H/ ]+ a

! F7 k9 {1 j8 b. Y" @  i2 H, j# u: g6 }" I  s* ~; J8 `
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复1

c1_wangyf 发表于 2017-3-30 15:19:32

c1_wangyf 沙发

2017-3-30 15:19:32

楼主这个问题解决了吗?. j6 _; K7 d; M% w& L8 F7 j. `

. X2 }8 q5 S8 f% J( v6 r解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了