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

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

[复制链接]

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

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

cosn 楼主

2015-12-18 12:38:28

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑 9 h" I4 Q7 ?8 B5 o$ {: q0 ~: d

0 p8 t2 Y1 P2 \4 b- L; L我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?
' k7 T' {  B) p
2 c9 E, x' ]: ^, G1 D4 O0 m下面是点击对话框 “应用”按钮的代码,正常的。  t! p4 G3 L6 M" ?: W- q

; N& `: V- }( bwint gaimianyanshe::apply_cb()
% Y5 v& ?4 w- t6 O{. {0 b! e" f' x
int errorCode = 0;
: E! _4 v% p% F$ ptry
; O1 m' w) ~1 `{
3 I* P: ^' ~, k8 ?0 k. ]
9 @+ m! I6 \, |2 yDisplayModification *displayModification1;
+ R9 N% q$ p8 i6 M4 TdisplayModification1 = theSession->DisplayManager()->NewDisplayModification();. G" M6 f" [( U7 ^' U7 o
displayModification1->SetApplyToAllFaces(false);. k- ]$ y8 F4 t  M+ b! y
displayModification1->SetApplyToOwningParts(false);
& p) |$ g: x. ldisplayModification1->SetNewColor(28);
1 p. A$ `: l* F/ b. ~  f8 [+ `2 j; @
: {8 \( n% u! p9 z
4 e9 U! ]1 N( q: s, p# P2 q9 ?
vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;0 f% c$ |/ q, Y4 {% Y! X7 m: G& |
vector<DisplayableObject *> objects1;4 z( j( d- [8 }3 ?2 w. ?/ S

& B2 ^; [$ a& T/ A
$ e' V( }- U+ R5 |
for(int i=0;i<faceobjtss.size();i++)7 v- c! l1 p/ |$ X: U- ]0 `# w
{: P# R, P- Y8 A2 h3 T+ V" \, b
objects1.push_back(dynamic_cast<Face *>(faceobjtss));$ X: u+ E# {. ]# ~
};
0 g3 N( ?. M; ZdisplayModification1->Apply(objects1);) N+ ^7 ?  {7 Q4 Z; d! y
objects1.clear();/ K( v* X& k* x4 }
delete displayModification1;
+ G# F: v* C: S( {9 U+ rdisplayModification1 = NULL;8 G2 f" |- p: R$ `0 I  f! e
/ s4 g! B, E. C6 N
}: L7 A( d2 H' C  i+ L
caTCh(exception& ex)0 l6 }+ J( x* Q; b  `# y
{8 G4 f* m- i3 x- p
//---- Enter your exception handling code here -----9 S4 B% W3 U# Z
errorCode = 1;, l2 H# T2 C, f
gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
, f1 u- F/ H/ m* T8 e* R}
( u8 P' a5 {& b* ?2 Z8 ?7 Breturn errorCode;
, B- N/ ^- Q- v! g" m}# I6 f; _+ ]; z2 g" u

. u/ D9 A$ j- w" }1 }+ w2 b
# s* r8 B9 Q) [5 U  a; x
$ D5 |6 T! s2 G- }# {$ F3 B下面是  button 下面的代码,点击却没有用,为什么呢?
3 f: N+ Y; i8 n. g& Zint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)5 Y, g' Y* C5 C+ x
{  I9 M; X. T3 D8 i( [
    try1 f- ~2 ]! l7 v- U% _
    {
' v/ C! {  F7 v- s, f        if(block == face_select0)
6 c0 a- r0 l, i( o$ [        {
8 n4 Y. h0 w% `7 _( r  r/ H2 Q* c9 U. l
        }
# g9 O% {0 I" g% T        else if(block == button01)
2 b# c% H+ ]1 x9 k" y( o        {# E+ B4 L& @( ?) i1 S
      
# T- q( Z! e4 n( [                DisplayModification *displayModification1;
+ f# n( L2 i/ v! [  _                displayModification1 = theSession->DisplayManager()->NewDisplayModification();% b. ?1 ^5 _$ \& [% a1 k
                displayModification1->SetApplyToAllFaces(false);
% k& N3 n, W, A' R. C                displayModification1->SetApplyToOwningParts(false);7 m% L0 R$ T2 ]* u( V' `
                displayModification1->SetNewColor(28);
: I9 h$ i; r: c* |5 A& d. `$ A' N
- C) [( m. @4 w. d
9 L0 s3 g4 v5 n8 |5 z& o  [
                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
" o' N! ?# g7 W) k4 p                vector<DisplayableObject *> objects1;
" k/ H  \, y. i/ j; b
/ Z  \' ]9 g, f

. z: l  l) p5 q/ b                for(int i=0;i<faceobjtss.size();i++)( ]3 ^7 z% O; Y8 d5 a2 h
                {
* A/ w1 V/ g2 e1 L. I5 l) z' D2 ?                objects1.push_back(dynamic_cast<Face *>(faceobjtss));2 d; C# ?4 j+ ]  F5 e, v
                };
5 u. k; [9 h; Q; {( j2 a7 a6 G                displayModification1->Apply(objects1);6 W/ e0 u6 O* G" v
                objects1.clear();
" E! [0 h+ H$ h& Y                delete displayModification1;7 {* S0 R( i7 v& Y4 A/ A
                displayModification1 = NULL;/ a) A2 `8 \! ^( y5 q

, i: g$ Y  g( d$ u  P

' ]$ i9 Y- K2 l+ I; W0 r" j4 g        }
, w) t! R2 _! {. F! E, ?# j, `% M
    }
9 d$ }, |- O# \/ b0 c: f    catch(exception& ex)
  \* C7 ^" U8 I  j# o' w3 H    {
2 e$ _. u5 O1 o        //---- Enter your exception handling code here -----
0 |. D) ]6 ^4 S# _7 p2 I! s5 c        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
# X5 K: ^! n5 i& W2 [    }, ]$ h9 G& |" B. Q
    return 0;; D6 r- [$ S4 U
}: D9 V# u. E! X$ \/ [

7 l" h$ G/ I5 d% o. s
4 @7 v' V1 O3 z+ x% {; S
3 O5 U9 w; P2 X7 \: `
上海点团信息科技有限公司,承接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

楼主这个问题解决了吗?: f3 w: s/ }5 h, t% q& W
/ V. [& @) E0 Z; `" f8 q
解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了