PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

cosn 楼主

2015-12-18 12:38:28

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑
# {: |8 A6 I1 Z: f' ]. {
3 m$ h: ?1 g! k; O& N我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?
0 K9 w, G' z* D: f2 Z7 ]4 ?: X# W; D# e: z
下面是点击对话框 “应用”按钮的代码,正常的。8 \& E8 F7 ~' v& d2 f6 r" Z% X
' _1 ]% N/ U+ O5 w/ ~" \" T/ z9 E
wint gaimianyanshe::apply_cb()$ O. Y$ g) S( C) g3 z1 G: w! w
{
% D( b6 f. ^+ a% J5 ~# k" T3 {int errorCode = 0;8 ?4 e* i4 @( _
try) c) {; N) I0 {9 f# I) [
{
' B' N! ~0 [- B0 d+ \  _
# t- x* G. m+ s3 EDisplayModification *displayModification1;6 d% l) z) n: [+ E. I6 ^
displayModification1 = theSession->DisplayManager()->NewDisplayModification();
8 _6 D; a. N% a, J& wdisplayModification1->SetApplyToAllFaces(false);
0 ^1 T: G8 @- C2 L4 r6 r4 rdisplayModification1->SetApplyToOwningParts(false);' @% G) T; t" |
displayModification1->SetNewColor(28);
6 e# L* @! T+ O* U/ U" O
' B8 V* s/ ^1 m" Y5 s9 c

4 v' {4 f, O! W" t" W+ Z4 l" [. ^8 nvector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
/ q) }4 Z( Q4 u; f/ {vector<DisplayableObject *> objects1;# r" j  O' c1 w) l) Y0 D6 p6 {
9 J9 L% \" `: p' W1 z

" s2 @% x( I1 ^- O2 bfor(int i=0;i<faceobjtss.size();i++)
% L$ }4 M- j) Q+ Z- p{% {# ^( H, Q3 u% y: w0 d6 v
objects1.push_back(dynamic_cast<Face *>(faceobjtss));
0 t5 q9 @: q* j- e' t; z};
3 x2 E! [' v' o4 L4 W# WdisplayModification1->Apply(objects1);
- m9 Y# ^2 i- Q; h2 mobjects1.clear();, b7 {( w8 P  N9 H! x
delete displayModification1;
- R. I6 Q. |( x# Y" s; j3 wdisplayModification1 = NULL;
8 F7 K- x/ A9 [. w* ?7 S$ `0 l$ ?
) O# Y( N! N+ o4 x( g# G9 l2 z1 N}
6 u* g/ c: q% q" wcaTCh(exception& ex)! `; w$ s5 s4 a, o8 W
{
& l9 C, O6 q2 x7 e! x: a//---- Enter your exception handling code here -----
0 c, n, ?. Z' D& Y$ oerrorCode = 1;6 M+ P4 F& k, _' }/ d& n
gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
9 p, j/ b+ `; ~* P: Q}# c1 H" J- H4 y. C' y
return errorCode;( Q; G! W. t" K0 k& Y
}% f# [% H  J; Y. ?& }

, b3 @) b3 `# N1 Q# N3 l7 O
0 n  d7 y! T2 `+ x! P( l
- W% I3 g' h- ^/ q4 D: N4 |下面是  button 下面的代码,点击却没有用,为什么呢?
2 q: O$ l- K! W  e1 |* c. zint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)
5 N9 {& y8 s0 J/ T0 j2 |{
0 t: L, b* W( P" s# ~5 S/ g    try. a- _* ]  b, A1 {( Q, P
    {) ?5 M" |) q+ a9 A/ F6 ]( D( ^" `9 Y
        if(block == face_select0)+ d. J3 d; J1 B0 ^
        {) Q6 Q. I7 Y  b8 Q4 S9 _: \: R

$ c3 q/ t/ p& H5 R6 ^$ v        }
7 G' x) |+ O2 q        else if(block == button01)
5 i$ Y- z% s! ]" _. R) x        {
# F" e1 ~! a  p* e+ t6 c  g7 @. \       4 N/ _. U. y$ G6 ?2 X
                DisplayModification *displayModification1;
5 S# U# _! Q2 L  Q: D& `                displayModification1 = theSession->DisplayManager()->NewDisplayModification();8 G, |  z  ~1 ]  v1 [9 c
                displayModification1->SetApplyToAllFaces(false);" N) v8 r$ j9 B; `
                displayModification1->SetApplyToOwningParts(false);
5 j9 p% e2 i+ r, b  a/ [  A                displayModification1->SetNewColor(28);5 I  F. @5 Z3 x$ I- ~9 d
% p3 t5 l4 a, \8 Q* o
- S! O( x+ N9 p8 ]& a, u3 S/ B
                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
. d2 W/ h2 y- S9 Y' ?                vector<DisplayableObject *> objects1;* Q2 d3 q; Y& G( R5 p

) l; ]7 e) t3 Z3 ]; ?4 m8 ]; I
6 P6 J+ V7 m! W1 z+ {$ [
                for(int i=0;i<faceobjtss.size();i++)& n5 d, R; {; V. t
                {
' M) a$ W$ B7 I; T) K0 C) |                objects1.push_back(dynamic_cast<Face *>(faceobjtss));7 p) U/ m( O: K
                };
& D& o5 T$ k( M2 B9 O9 `                displayModification1->Apply(objects1);
/ o  l$ @. _0 x, |/ P: H                objects1.clear();
5 n, R1 d9 h: b% k9 f                delete displayModification1;
3 o2 [4 t2 ^. s! c* Y1 w2 w! G" T                displayModification1 = NULL;
, |7 w+ A& q) {4 t/ c: [
+ o. |5 j, J! m
. \( Q# b" o' V) n+ Q
        }4 a$ x8 @5 Z7 E- B' q) x( X* ~2 j

; Y( r& f3 \! f( }" O7 z    }
8 G2 k3 \0 L- k. s' c5 u0 K! w; V    catch(exception& ex)1 o' c8 W; J3 k  L5 X7 k
    {
" u& W1 H5 [! t: m3 ]8 {% R5 f        //---- Enter your exception handling code here -----
' _( B9 F& q% z6 C3 h8 L* _( ~1 f2 ~7 ?        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());( e- q7 X& o- ]& d! F% n
    }7 t1 ]/ q( l$ ~; O
    return 0;1 \- b7 C" ~5 i
}! j/ u: W' t% }2 i5 ]) G
9 k' Z% I& \( K
  T( k# p9 r+ Y8 u& x
9 x$ b8 x" J) z0 {
上海点团信息科技有限公司,承接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

楼主这个问题解决了吗?2 c' v: t; m) p% C; E$ L

/ q& X1 T* d( _& D& u4 O- O解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了