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

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

[复制链接]

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

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

cosn 楼主

2015-12-18 12:38:28

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑
  y% {: ^; j0 O4 v: P; G! i9 q; q" u
我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?: C% {1 `& k! T- r% C7 t+ D
: J) H2 b4 ~0 X- B# i
下面是点击对话框 “应用”按钮的代码,正常的。% u4 H: B4 P/ p- T; f. [5 X( E
1 I: A1 g/ K+ e% _- L- l. d
wint gaimianyanshe::apply_cb()
8 I0 Y3 _5 ?# a+ ^{
) @3 c. j5 J. A8 v. fint errorCode = 0;
1 f" ?, R6 Q! T2 o! Y) ftry
# @+ ^; m* K2 d: }{
$ x" f( T) F% p0 f# ~. h! A/ s; g8 B# H; F: Q8 R
DisplayModification *displayModification1;
2 _" Y" P+ O; V+ u! \3 BdisplayModification1 = theSession->DisplayManager()->NewDisplayModification();+ {% X" l- v) H; g8 e( L; H. R6 H& Y
displayModification1->SetApplyToAllFaces(false);+ j  }& v$ q" z6 m; O9 [
displayModification1->SetApplyToOwningParts(false);
$ _& K3 L) r. p: T9 m$ rdisplayModification1->SetNewColor(28);2 v& ^6 a3 ]6 q% t
" D- W/ L1 l/ w5 v

6 S- |  m" F" W, {  I1 V* gvector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
# U% q) ~5 ?4 i, S4 dvector<DisplayableObject *> objects1;+ R" O: U/ c  j. q% p2 s0 e  x! e" b+ H
9 k1 u' V& I5 J* Q& Z$ p6 _" r" t
+ I) H) M3 S& _
for(int i=0;i<faceobjtss.size();i++)! V  v5 y; H4 e" B
{
& ^% p! E8 D0 J7 @, |% Q3 A. p% ]objects1.push_back(dynamic_cast<Face *>(faceobjtss));8 J) R9 r4 B5 \. L' U- _7 a" y
};) P. D! r# l6 s: P6 u2 E3 u
displayModification1->Apply(objects1);0 z  i  K/ G8 E' O) Z
objects1.clear();/ x6 y& n1 ]( v' s% _, x" v
delete displayModification1;" p/ z5 C  v0 i( a0 R( p9 R7 K  c
displayModification1 = NULL;
) m# T% }! J: k& F& \+ B$ b& W; ^3 j/ V  i/ q
}
, ~0 K6 s6 y* ?3 h2 n" A% X3 McaTCh(exception& ex)
( i' e7 J3 p: |" c0 w* M) @{4 ]0 N8 o9 s2 u7 s& r8 I
//---- Enter your exception handling code here -----& Z2 N& w; u& x9 J7 O  c
errorCode = 1;' W4 b" \: o/ r* ?+ A4 S4 W' q
gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
" r1 _& f/ s# C; j; b* a}
8 {! f9 @- z  \4 d- M& Sreturn errorCode;
& b( Y- Q( K4 F: G! m, y8 @}
* @# f8 i0 s# L4 m, J7 n0 B, x7 z
" Y3 d/ `  J. y' H! U  ~4 W+ I. V, N, s
+ V* K, ]. ?# ^3 R* R: K/ |/ Z
下面是  button 下面的代码,点击却没有用,为什么呢?
1 s1 ~' b/ [5 X  h7 q  ^# ]8 Zint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block), Q* m! c% ?: D
{4 M9 Z* }. `( d; Y! M& l
    try
8 ]) C4 g% g4 ~' q# P1 a0 s9 W    {
/ X. M# Z/ P8 F7 n6 S, H        if(block == face_select0)
; {! M, ~1 y8 x% D5 k* ~0 s        {" Z# s5 A) I) e" P5 U

. c: B, K% `( }        }4 {( ]" l: G4 ?) m
        else if(block == button01)! J% \1 }$ }  o7 V: ~& Q
        {; _/ N, F1 M1 M  `3 U5 [, J4 J
      
6 t. T4 Y! Q4 t! K0 i' p& @7 v3 r                DisplayModification *displayModification1;7 \9 ]1 Q5 r( M. U6 Z$ f. n: S! U/ p! h
                displayModification1 = theSession->DisplayManager()->NewDisplayModification();0 g. X# Y+ |5 ?) A
                displayModification1->SetApplyToAllFaces(false);
2 W2 X. M5 `6 \9 |                displayModification1->SetApplyToOwningParts(false);
6 P4 k. I( W( y1 {4 s8 c                displayModification1->SetNewColor(28);
/ u* @# O; s# z
$ Z* e+ f2 |* e3 Q8 ^) h

8 ]$ K4 U/ b6 ?: _+ T- Y+ X3 L                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;9 [  I  R  i" {& X! p" a
                vector<DisplayableObject *> objects1;
5 C, P. l3 L1 T' ^" n
$ P3 |1 q% g3 }; Q, z& B# C9 G8 y

2 g7 w; u; }3 y9 J7 p                for(int i=0;i<faceobjtss.size();i++)8 x% h/ _  n$ ?
                {
6 Y- {! B8 \4 B- m( ?                objects1.push_back(dynamic_cast<Face *>(faceobjtss));
+ U/ }+ N+ L0 o; ~; r  R                };
% m5 k8 v  Z, g$ y9 n1 b                displayModification1->Apply(objects1);. _0 `7 P$ S# g. G% X
                objects1.clear();
. ^( Z- }- [0 j/ u4 l4 u                delete displayModification1;& x0 |, f4 u( \$ o
                displayModification1 = NULL;: x) v7 Q2 e. B
) w: l6 t0 r+ r2 {- }8 {
. {* q" U% E+ W; a+ K
        }
# e0 p' D, `3 U3 ~4 C6 Q/ X. U9 N+ D& s1 O( }7 N6 m
    }
, T5 T: q$ x/ r& B3 o* c4 y    catch(exception& ex)6 P. B+ c$ v$ v5 t! B
    {3 b2 J" f  G4 z) R" Z
        //---- Enter your exception handling code here -----% H' H' ^  |& Y2 c$ @
        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());9 p+ j8 e" v, j: i
    }
  n8 {  U  ]! O8 J3 q/ P5 r    return 0;
( n4 h: H$ n! Q}6 @9 Q! f4 I( Z* b
7 a  j3 ^- |1 _

6 `& G3 k! `7 c9 O5 A, v
7 H) f. w0 c* `
上海点团信息科技有限公司,承接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

楼主这个问题解决了吗?% E2 u' U1 ]. y" z7 @" G$ m

  v) w) y4 D: ^7 W2 x解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了