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

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

[复制链接]

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

6

主题

8

回帖

120

积分

培训VIP会员

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

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑
" b' @# u* T/ ?' @) B. X; C
8 L$ R( I+ R' _( q" m& i4 r我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?
; ~5 r  e7 f# k  M' i8 s
2 f3 o% |" V, Y0 |: X. t下面是点击对话框 “应用”按钮的代码,正常的。
  }5 ^0 ]. e/ F3 i- x/ Q9 v
' @4 h  L$ D0 x3 Swint gaimianyanshe::apply_cb()* f4 W! E  D; J$ e2 k" D- l$ B7 {
{
6 T; X% x+ v, \3 ?  D( jint errorCode = 0;" G3 Q* x0 F4 d9 P- v9 S
try" `0 r3 s& A! ~: w7 x! w1 C' R
{
5 K: x1 T( a( \( Z
% b: o7 e$ g2 d* t8 N7 q( L2 L: ADisplayModification *displayModification1;
2 o: N: N, M! X4 W6 \5 ^+ H$ RdisplayModification1 = theSession->DisplayManager()->NewDisplayModification();
" N1 m1 r" y6 I+ N) SdisplayModification1->SetApplyToAllFaces(false);
% |0 j7 `$ _; y  v0 ndisplayModification1->SetApplyToOwningParts(false);
0 F) V* y' X' Z: edisplayModification1->SetNewColor(28);3 X* t3 w0 i+ m6 _$ \+ O
" v) N6 G# T& d  g3 T3 b1 H$ c7 H

4 s/ {5 B4 |$ ~  bvector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
  `% o8 e/ D) h2 s7 I% P% Rvector<DisplayableObject *> objects1;5 v& ?- j1 S4 @, `8 t. u0 P
/ D5 o" x) \7 T+ o7 b7 ]

% U: {# H$ c0 _for(int i=0;i<faceobjtss.size();i++)9 ^1 |, u- o1 b1 x5 e2 Z
{7 I: e$ n+ [# k# q" K
objects1.push_back(dynamic_cast<Face *>(faceobjtss));
( h! W3 c% `/ I$ s4 u};
, h% ]. S, J% O1 W* z6 s8 J; udisplayModification1->Apply(objects1);
; W! U- I9 o8 u. l0 q- Wobjects1.clear();0 b: Q5 ?3 Q$ G8 b
delete displayModification1;
* q7 W  `* E2 Q$ |; R/ U" SdisplayModification1 = NULL;. g7 S- O- }: ~, h
* w2 V3 H2 A4 L) c* J
}
; q3 b7 `& o% C1 U1 }( Y+ AcaTCh(exception& ex)
: J3 A8 _! z* N, N, ]3 F{" f/ u- ^, v% {+ `
//---- Enter your exception handling code here -----
' C1 H( m+ K0 y5 ]errorCode = 1;
, n3 a' c& y  w& C3 Y5 S* }gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
* N- N3 o2 e! N+ T8 s}
9 d$ H' _( _3 V1 P& J( Qreturn errorCode;, H9 b# E( D+ i, b6 Q
}6 A- {! }: G; p% r1 P% J" b0 k
/ s$ j5 x' P6 v
* ~3 k( H8 ^9 g. @
% y( j# i( p1 c+ y: H" Y& E- N
下面是  button 下面的代码,点击却没有用,为什么呢?
0 f; H; i: u/ B& ?% V# Y. Nint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)
' H, W* n6 W1 j% R8 T{/ w: u$ t5 u+ S0 H+ B$ A
    try
+ ?3 r' z8 L8 i! ~: E- A5 O    {
! v' c8 `$ U' ]        if(block == face_select0)
) C; J. B+ c5 ^        {2 t* S' z+ Z$ N2 E  g
1 Q9 Q( }) v5 x" l; t
        }
7 Y' I& b8 c  a4 f( J5 U5 u) b( R        else if(block == button01)
$ u2 B3 x' n" x* |) p        {
+ ?$ {0 ?' e4 s# j3 R/ A       + `2 X& R& T# E1 l& K0 o
                DisplayModification *displayModification1;( T. k% p( Q7 I9 F8 [; K
                displayModification1 = theSession->DisplayManager()->NewDisplayModification();
& q0 ?$ y, D( b* ~! {                displayModification1->SetApplyToAllFaces(false);% v* B! V0 ~2 @! m$ t
                displayModification1->SetApplyToOwningParts(false);
) I) _' x) S3 I* n3 e                displayModification1->SetNewColor(28);
, b+ o1 `# l% r2 ?: _5 p3 x
! J" I# q; g( A* y" `& q
: o8 W- j/ M2 K! k5 `& D
                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;) B5 `# [2 H* u/ Z1 D( z# e
                vector<DisplayableObject *> objects1;
  D- i$ v( U* i( F: e) `/ P$ D
' H0 |1 F, Y; A$ b+ B& i. S
" ^' }7 P! W' {  M. |; q
                for(int i=0;i<faceobjtss.size();i++)
1 a2 U/ w" Y2 {% s6 _                {
+ I: B! p/ y6 v  {& M                objects1.push_back(dynamic_cast<Face *>(faceobjtss));
* _) b+ E4 o& B$ A6 n                };) G/ A5 p. g  G8 A$ `" V- ]
                displayModification1->Apply(objects1);% P$ r* [8 ?( h/ ]7 h  j
                objects1.clear();
8 s3 K% X$ V, z; h/ {9 y3 ?( k                delete displayModification1;
+ G) o+ ~, R. }& Z% H/ q' e                displayModification1 = NULL;
. k! L; |$ t) y  z/ ]8 ]4 F% B7 K$ n7 T

% F! g, p0 ]1 E5 a% u1 P; `) P, s        }, A2 R3 P2 k- N* _1 n9 K
$ C8 y, G5 N. g8 y2 B+ @
    }8 |6 G2 @4 t7 F6 A6 w
    catch(exception& ex)
+ o6 E1 ~: N- G, u/ F7 b* f    {
# ]2 r& B* y; o        //---- Enter your exception handling code here -----6 z) _4 D' n6 q( G9 m
        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
( m( q6 a: _) Y3 g* c    }
6 V/ p) q% |' ~& c% G: @6 s    return 0;# x' s( G# p# N; f' v; X! h5 M
}
2 h; S( ?; m( D- s3 p' k* J8 [
6 p# Q9 b9 D5 s  _5 }3 l( U$ r# H, q9 _- y! J: h$ P* i& Q1 {1 U
% E' E) @% f3 q4 B6 _% o' l) 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 | 显示全部楼层
楼主这个问题解决了吗?
( G- p# b8 O3 t- N, l+ F1 T3 {9 C1 C4 }* G" S
解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了