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

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

[复制链接]

2017-3-30 15:19:32 3626 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 k; e- `6 T# h. E/ G* B
1 d. ~) ]2 Y6 f) u我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?
( v. \$ K0 L4 ~; h& v5 |. u6 W- X9 }. g% a8 u
下面是点击对话框 “应用”按钮的代码,正常的。
6 _2 j9 q. Q# B7 X5 h2 ~2 q2 B; t8 Z4 I1 `2 m
wint gaimianyanshe::apply_cb(), g) a+ a" ]+ J; u
{6 r) @9 G9 [1 i( t  y/ o" n) E
int errorCode = 0;
8 a- k/ z/ ^" A8 G0 w$ V3 ]) Etry
& U0 H+ |* I# w8 }8 f' i{4 `* u$ [7 X, W

* t/ e- C( Y4 l" B6 p, G) BDisplayModification *displayModification1;$ [% O/ e4 V; c+ `8 [5 T0 d
displayModification1 = theSession->DisplayManager()->NewDisplayModification();- g! ?1 f+ m4 S  d) H
displayModification1->SetApplyToAllFaces(false);( T3 V2 z' ~9 z/ }# d
displayModification1->SetApplyToOwningParts(false);4 U0 e& W  v2 E8 \
displayModification1->SetNewColor(28);
; z4 e0 d* y1 R. T4 R) C$ r) b
2 y7 D3 _- A  j4 O; }9 N
/ U) P% s5 ~' [4 `
vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;/ ^/ z2 P+ b2 A# Q
vector<DisplayableObject *> objects1;
. y. q2 x  `0 `0 w1 H0 z9 T1 M
+ u( n8 I( ~4 P8 q0 D, d$ B
% T; Y# ~: l# u7 A, [. {
for(int i=0;i<faceobjtss.size();i++)' A  o; N( `$ n$ V% j/ Q
{
. y7 U$ m5 p1 P! K. xobjects1.push_back(dynamic_cast<Face *>(faceobjtss));; p! W" s  y8 _. ^6 o# E& ~
};: J8 U% M( \( a/ [- r' F2 Y. g
displayModification1->Apply(objects1);
( R; G$ I2 K: b( |/ B# s, B- I3 oobjects1.clear();0 V  T5 r' Q. a# ^. [
delete displayModification1;7 `( c) J7 d. A3 b( a
displayModification1 = NULL;" m: P# G6 Y2 M: z
# S7 D' r4 z* ^+ A7 m! {
}
  T/ d$ T/ T6 _% Y( D1 q- `caTCh(exception& ex)
, x! ?! p2 m3 v0 F{
: b: |: ^9 |3 F$ |. d//---- Enter your exception handling code here -----
' v7 d5 F) e8 X' ^3 s% @; IerrorCode = 1;% o5 V# v9 ~% v! c
gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
5 f- ?& O; T& L7 w}$ |) D7 `& g) a5 W" T& t6 U
return errorCode;+ u  G6 m6 n" O+ I9 g
}
% K1 ?. C( R. j9 H/ G5 Y
( y8 x* Y  \* `3 G# j' x7 F5 B5 \2 }, q$ _# t5 N  ]4 a6 |
8 u% J6 i2 {5 T+ U
下面是  button 下面的代码,点击却没有用,为什么呢?
! S8 g3 ~& t- {2 [1 P6 aint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block): T) `' j! U$ T2 ~
{
6 Z* P4 O1 P" Y5 }. L    try) {0 G+ o3 x3 l. N- ~& F  A
    {
, F  \* t- M# F9 `6 l1 m5 A        if(block == face_select0)
. s9 `( f* M3 j        {
: }4 h+ W* f  @* k$ T
& M& ?& V! t5 h% J        }
" Y2 d4 J, n' t( F        else if(block == button01)
) g2 o+ z/ S: W5 Q        {
5 t- @* ]' \$ W- j      
& t1 e) }4 C# u; k                DisplayModification *displayModification1;
* D' F. W6 c- @                displayModification1 = theSession->DisplayManager()->NewDisplayModification();
/ Q& j  M3 @: O/ ^: N5 v" d7 ~& v                displayModification1->SetApplyToAllFaces(false);
6 L/ `4 n) ^+ l, y/ [# m                displayModification1->SetApplyToOwningParts(false);$ s" V1 c1 ]' @3 B  J% f" K
                displayModification1->SetNewColor(28);
/ {$ M/ X5 q$ v' A* `/ \
5 r& Q- W& e$ }. P

1 n5 L6 Z. h" X2 F' A+ A9 K                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;' w' ]# p9 c; X0 F, @4 d8 @. W, s
                vector<DisplayableObject *> objects1;
9 x, }  H. |5 C6 w* X# _
  m& x4 E" {3 r: C

9 k! a/ A+ X: A# X  F$ \# K- V                for(int i=0;i<faceobjtss.size();i++)
4 @6 W& R5 u* P, }1 t                {
4 A& N: j+ s$ w- N( e                objects1.push_back(dynamic_cast<Face *>(faceobjtss));2 e! p1 Q9 G. g# z# X" x. w4 o
                };
* `) G6 R/ J2 D/ U$ L5 n! G5 j                displayModification1->Apply(objects1);
; e6 r% N. A+ @, W- \3 @# n: J; n' d                objects1.clear();
- H+ R. ^* K1 _# c( a* d7 \                delete displayModification1;
; j4 s' X4 `2 F8 \" ~3 B8 r                displayModification1 = NULL;
3 v# O" U; W' s6 {6 R7 s* {7 k+ z4 ~% D0 a# }0 {! h8 P
* g$ ]) ^( O2 u/ n7 T" k
        }; w# w8 {% f1 M. O8 V9 i9 _9 ]$ s2 l

0 v$ b: L8 V+ r5 n    }: L9 H. i8 h" p% n+ j" _
    catch(exception& ex); `1 i( Q! ?* g. Y7 ]
    {
9 \  _# u. {9 f! ], b! h7 a* t+ V        //---- Enter your exception handling code here -----
2 d7 B! A; x- Q        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());0 J2 ]7 d% ]$ O+ l' c2 U
    }9 m* R1 m, x0 Y8 R
    return 0;' w' f" B: |7 O: @
}2 R: a$ G- |' s
! A: T  \4 ?4 x3 {- x# o
. `7 b, I4 p5 J4 [, p
0 x4 g9 J- @; o! s: v
上海点团信息科技有限公司,承接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

楼主这个问题解决了吗?% |+ h8 |* l$ r6 I* s" ]: t# E" w; A
; @6 _# ]& F* J5 Y. @$ X
解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了