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 3469 1

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

cosn 楼主

2015-12-18 12:38:28

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑 1 t) p0 [/ \- r
2 m9 _6 t7 v3 T4 J
我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?
2 ~2 K2 V4 F% t6 y% S( j( T1 z
2 w1 p! B, t& t下面是点击对话框 “应用”按钮的代码,正常的。
: i& W+ _6 M* z3 I% x4 B# @+ o3 `  h. Q
wint gaimianyanshe::apply_cb()
6 z3 I+ Y, x5 G6 P1 |{
( B( s- @# n2 d! ]+ L7 Rint errorCode = 0;
' v" L2 Z5 T" ?& X9 A1 Ptry
1 R5 S* a3 p9 @6 f7 L{
5 J, f$ y3 w/ \1 D. s& j( i) R0 I# J6 N4 t) I' b' [) ~) K
DisplayModification *displayModification1;
; _/ e7 G; }% F3 b/ WdisplayModification1 = theSession->DisplayManager()->NewDisplayModification();
, H# [  x& Q- I: X$ jdisplayModification1->SetApplyToAllFaces(false);
# I+ D7 P6 }2 ~: `( B% vdisplayModification1->SetApplyToOwningParts(false);
6 J; g7 Y" ]5 Q( P9 r& JdisplayModification1->SetNewColor(28);8 f& C& f& g; V3 ?+ M, F

; O" A* G: B' f0 G$ X, Z
3 A/ {, q5 L7 q
vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
- I4 j# r) @' y4 Yvector<DisplayableObject *> objects1;1 t3 a# D7 h" o  U

4 L$ ?7 ~$ d1 ~7 }

# U- X) k8 |) h! t  hfor(int i=0;i<faceobjtss.size();i++)
3 k9 T# ]7 e3 i* p( x{
; b6 ~% q  U( x: Lobjects1.push_back(dynamic_cast<Face *>(faceobjtss));
. ^+ S2 m& i+ N6 p4 q" R};
9 T% B) b1 H; ]2 ?6 ~- FdisplayModification1->Apply(objects1);
" m; Z7 l( x9 S, Tobjects1.clear();
4 ?9 ~9 A% H# f9 {, d3 Tdelete displayModification1;: R2 ^0 u# |+ O; f
displayModification1 = NULL;; m5 `, m! [. ?
3 p$ P1 \" E) W
}/ l1 T. r! T! E
caTCh(exception& ex)( X  ^5 W$ E- P1 w1 H
{: Q% b/ A$ ~/ k! J1 q7 h: G
//---- Enter your exception handling code here -----
% Y$ i7 @9 J) |3 i9 ]errorCode = 1;
7 s  A6 c% g" [7 j5 hgaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
  t7 h' z, Y$ t( v; a. w}( N  y) z% E+ ?
return errorCode;
6 D& T1 N. Z5 N1 I* K# W}' ^* y- g! C) g% T
2 G. @- }% N( ^2 A* H# m5 Q4 s2 b

' {* g: B4 ?" S8 g3 e8 U0 U; H3 Z
下面是  button 下面的代码,点击却没有用,为什么呢?% b/ j' t' O. S% u+ p
int gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)# T# Y/ z& V: p/ |
{8 ?/ W, r4 i9 u, o
    try
/ Y) Y* r, c$ v) W    {
5 I6 W7 P9 i" B/ C. M5 B        if(block == face_select0)9 w8 c: x- S9 f' j
        {4 M2 G! v0 p* r8 L) P# G

: `! X$ Z4 I# R3 f        }( r5 j, j0 k# z" ~  A
        else if(block == button01)
6 t* Y1 z% ~2 S: V" U: E        {
, ]3 y9 q2 G$ r# u3 N- ^      
0 E/ Z7 @4 l, e                DisplayModification *displayModification1;5 W& [  M0 J" k/ E/ T
                displayModification1 = theSession->DisplayManager()->NewDisplayModification();
. [8 G) ]! C8 Q$ y1 B                displayModification1->SetApplyToAllFaces(false);
; M/ H9 g2 E' n' d3 ^, d; b" a                displayModification1->SetApplyToOwningParts(false);
7 d* I/ H, j0 P, ^5 _) x) N# p' {                displayModification1->SetNewColor(28);/ w% ]9 A% Y' x9 q
2 U$ o: |2 @0 q1 S* U
, o6 V; ?- ]6 h9 B: E8 {0 m
                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
: m7 a+ Y7 f* U: H( l( c                vector<DisplayableObject *> objects1;  n' _9 O% g1 U. u) }4 f+ c
% l$ X. r. E4 ?
/ k# W: F! y4 w  @; F2 x
                for(int i=0;i<faceobjtss.size();i++)
, g6 ~' a$ Z! V                {8 `7 N4 i% x! f  F7 U) m1 |
                objects1.push_back(dynamic_cast<Face *>(faceobjtss));
" h% K* W0 O8 V. Q+ N" p                };
$ a5 f* ?! g  f" y; `, F                displayModification1->Apply(objects1);
8 G$ k6 A7 R: w& B$ P+ S2 |9 F                objects1.clear();+ i3 y$ u, V4 X; C
                delete displayModification1;
! I; j4 S: a& F5 {! h                displayModification1 = NULL;
2 C' i3 d4 e, C& Y( g2 G5 z+ y8 G+ g  m
+ M& `) \- G7 G: g) z9 B
        }; O7 I) }0 {4 F4 U6 M

/ }, L* n  i% l: Y' m. t& }- Z    }
+ m. W, R& i1 T+ q9 \    catch(exception& ex)9 o! H3 c) J8 X: W
    {  X+ t' n. J/ J3 ]& |
        //---- Enter your exception handling code here -----1 q2 ?- [- m# y: L) ]: k
        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());3 e! y  }# X% N7 ^6 B  c
    }
/ p/ i& M& y7 L" u4 {) p    return 0;2 b0 n( B0 K3 \' A
}
! F+ j1 H$ _$ D. `; `
1 _  }  W* o( ~) f
: |0 w0 c, W! E! a: C( o2 M9 L' B: y2 N3 C, g3 |0 P, [
上海点团信息科技有限公司,承接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

楼主这个问题解决了吗?3 h( W1 v4 x, b' m( A0 d

3 N4 ]9 b3 ^6 Z: X4 m  C/ \解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了