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

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

[复制链接]

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

6

主题

8

回帖

120

积分

培训VIP会员

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

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑
1 k- q5 A- C1 n, ^. B; Y; z+ l, I4 U
7 N  b8 s! `- O: R我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?
, N$ v% h7 @! b8 X1 B, O" k# C
# _9 y# D: z8 \$ N' c; i0 e下面是点击对话框 “应用”按钮的代码,正常的。6 ^; T' e5 o2 J' R: T2 X  ]( M/ U! z
/ {/ I) z: `. W$ N2 T, t; T' d! ~
wint gaimianyanshe::apply_cb()
! N$ @) u; E' A6 S3 ?# a+ f; r{6 `$ y  W# R. N. k; }2 K, i6 `
int errorCode = 0;4 X# |: b) }# z8 Q* J( S, i
try
( L3 F" ]! e# n8 O{8 d$ \8 k2 J" G9 O2 a4 D
8 S& S# a% ^: Y) G6 u3 z& V0 B6 ~
DisplayModification *displayModification1;4 D' E" f* P2 E. [
displayModification1 = theSession->DisplayManager()->NewDisplayModification();4 k( P9 {% S8 B  G/ R3 r
displayModification1->SetApplyToAllFaces(false);
3 Q1 _* x# H' o" g) \& ^displayModification1->SetApplyToOwningParts(false);* a! g' d6 Y' \$ d0 c
displayModification1->SetNewColor(28);( v' C! z' I3 N2 m# f1 z) }% r

$ N- w6 ^: P/ o
3 f6 r4 A6 F; y  i$ J
vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
; g  K& E4 S& O0 n# S& X9 }vector<DisplayableObject *> objects1;0 S6 h4 `# P1 K- f  r4 Y
) X0 y, B! b# ^6 h/ F

4 c, n9 [2 D$ a! ^) t5 l$ [6 L1 X. xfor(int i=0;i<faceobjtss.size();i++)
' J' ?( _' r; g6 s{
$ }! U: ~+ M' ]- f. pobjects1.push_back(dynamic_cast<Face *>(faceobjtss));! V. d. _% B% _2 V$ g3 t; X: A9 ]
};
$ a9 l% g% W2 f: P; udisplayModification1->Apply(objects1);
% G2 z. d. H( aobjects1.clear();; m* M, O/ B: V7 M$ S) V/ \
delete displayModification1;! a* J- F0 j8 m) l
displayModification1 = NULL;0 o) s, t- ^6 Z$ v0 u0 r; e' {6 m

6 U1 z3 g! _2 t2 j% {}
: E( L: c8 Y( U$ D& q) acaTCh(exception& ex)
1 v: D. {) j& C4 V; |" f6 t. N/ O{1 ^- R- b6 E1 G5 V2 \
//---- Enter your exception handling code here -----
- Y0 Z! t2 p* R, \errorCode = 1;
$ I3 a% b/ U) o( sgaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
8 N4 }6 k" L+ v+ ]: G5 ]) v}. ]1 b4 o; ~" M3 q( E
return errorCode;$ V9 o1 \( ]8 Y, P* Q, W
}
' s% C8 f# R% b, X7 D3 i: ~2 ^" t# w! J" [& c4 W& b( ]

- D' g0 Y- `5 x) s( i
  {+ A" b7 \1 a/ r! L下面是  button 下面的代码,点击却没有用,为什么呢?$ ~  F5 S( B9 f. z, |& g4 W
int gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)
) T; w' r( N$ I0 m% H2 T3 A{& P% o. }! |! X. |- I
    try
! u; O2 b9 J4 U: `  r    {
6 S, B2 n/ B2 _# f        if(block == face_select0)/ E5 c6 f* d9 q2 _9 q
        {
( }8 D6 z# D1 V  B3 t& F1 h/ c+ F3 x6 h/ u, G
        }9 g, y5 E  u1 T* B- M0 u+ O0 D% T
        else if(block == button01)9 a- |  d7 Y3 \) q0 p& X, q
        {: Q" c6 D5 Q2 d8 M8 d) F2 u! U: Z3 Q
       2 ~. c+ V7 {  _8 j
                DisplayModification *displayModification1;
7 c+ k( g8 s8 i8 c1 B                displayModification1 = theSession->DisplayManager()->NewDisplayModification();. u2 w: W+ K& j% O1 \$ v4 y
                displayModification1->SetApplyToAllFaces(false);
+ w: ^/ t. U( Q- p! @2 n8 i                displayModification1->SetApplyToOwningParts(false);
1 A4 v" x( T% N: Z& B- w                displayModification1->SetNewColor(28);$ G: s) m7 X) P1 v( ?, i
# G: J  B" V: @% L( }+ h& [
; x& A% N2 M  b
                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
$ h% L/ c, U2 M7 `0 t. c2 I                vector<DisplayableObject *> objects1;
5 }  m) n# ^! }' r* Y& w0 P( F9 @5 ]: c
& \$ {7 F9 g0 @+ k) f- d2 Q9 [4 x4 Z
                for(int i=0;i<faceobjtss.size();i++)
; ^+ B: W/ e) h0 K% ~) H                {6 x/ v. ?9 H% W
                objects1.push_back(dynamic_cast<Face *>(faceobjtss));1 g5 [/ f7 z# O# k
                };& n4 N. h5 M: C% b. m% u4 g7 u
                displayModification1->Apply(objects1);7 j2 y9 C, Z- `3 [9 O$ i, T. @
                objects1.clear();% g1 N; A" ], ]  G, [0 I
                delete displayModification1;6 a/ x9 _" o0 I6 Y1 ?7 I& K- h
                displayModification1 = NULL;
0 L" u: Z, S0 K7 ~. ]) Q# l! b8 Y* j) S! E' M1 r
' l; r% x; ?/ F
        }
8 k" I; ]# U5 a* x0 N5 c
, B6 [$ I+ p: t7 R% p8 {) a1 N    }2 G# ]7 x  \# k( t* g
    catch(exception& ex): M/ _9 L7 B- c8 W
    {
3 T9 J! e  c9 b        //---- Enter your exception handling code here -----" _1 L0 c% Z0 A. j( n( @2 s
        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
! L1 Q1 M+ [% r+ f    }
; L& e9 e5 I0 K1 V5 T    return 0;( C  c/ A) ]. d) ]" A: n
}2 w  ?" v( m3 z6 N8 X1 V

1 B6 o- i7 f9 B( |  i& b  m9 v1 N# N

/ Z8 H& u+ [1 V
上海点团信息科技有限公司,承接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 | 显示全部楼层
楼主这个问题解决了吗?0 H. h2 W4 s4 _3 L# v6 ]

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

    我知道了