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

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

[复制链接]

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

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

cosn 楼主

2015-12-18 12:38:28

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑 , ]- m9 m! U+ E6 v
# o5 T6 e4 u4 X$ c; O
我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?# z  y1 L( E" X2 W5 P
* X& }$ J! D/ K- p
下面是点击对话框 “应用”按钮的代码,正常的。
( k# v/ Q. n, l* V4 C  j) k5 R* _9 k7 y4 w: A# m7 B
wint gaimianyanshe::apply_cb()1 `. F; K3 R9 }- l! W* P5 K0 C
{
/ k! _: d5 }* o8 Y" @7 pint errorCode = 0;
: T% k, J4 J+ F& E0 Vtry+ b2 N, ?8 b1 A& Q: j. B" A
{
' k1 R; I, Y& y6 j* d% W# I/ H/ D5 x7 c( ?6 V! m  A0 W! T; K# L5 g$ Z
DisplayModification *displayModification1;5 Q9 w9 _* `4 x5 X' G
displayModification1 = theSession->DisplayManager()->NewDisplayModification();( Y" |" Z( s; v: k# l
displayModification1->SetApplyToAllFaces(false);( m! b( P* n9 L5 x) N. X
displayModification1->SetApplyToOwningParts(false);
5 k% l# W9 J+ B; |1 edisplayModification1->SetNewColor(28);3 i8 H$ {" Q  s1 [; [
% P' |% o$ Q  x+ ?2 Q1 T5 u

* x0 j" j/ q4 g: ]vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
2 ?+ i0 A: b0 m; Dvector<DisplayableObject *> objects1;& I+ D2 o: j( {1 Q

9 A% g- I- R7 Q8 q
0 w2 d" x* ~6 q7 p6 s0 E) p* K# _/ V0 L
for(int i=0;i<faceobjtss.size();i++)& w4 o# R* ^! ~+ P( c; V! B
{3 T* U$ o5 [1 D2 E4 [
objects1.push_back(dynamic_cast<Face *>(faceobjtss));( [) i! L- T9 l3 t. S% e
};5 t  j, H# b; h$ K, q4 Z/ }
displayModification1->Apply(objects1);
1 v2 P9 s# [9 D9 M% Vobjects1.clear();- s) o/ A1 Y8 ?, e' j6 T# e0 P
delete displayModification1;3 \0 h. x9 q/ j$ P" o7 p* y
displayModification1 = NULL;2 V' W  [  [, o) d4 l" O

, R; }# a( y( y}) Q8 _+ a4 q$ w' @  P  J- S( m7 {/ y
caTCh(exception& ex)* B+ Y4 `; E7 X- X
{
3 h* u. z# D6 O//---- Enter your exception handling code here -----
- Z5 T9 `+ T( a2 Z  ~! eerrorCode = 1;
: k4 N9 }' _2 `gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
; Q5 f. u3 |$ a' ~% Q}# V+ |8 ~' a# U6 C5 l7 v
return errorCode;
4 Y/ b& n- E4 i, O! ?. l7 h3 ~}/ x" g6 I+ V1 J( y

* {. d  X+ F; _! ?& r. y8 V1 w! X) n  l7 X6 ]

2 g' S1 C8 Q. f下面是  button 下面的代码,点击却没有用,为什么呢?
5 A" x8 ]6 a6 @8 `' ?# t7 C' lint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)
% }0 ?3 W/ u  s- C{
8 C/ [( q4 P0 x5 V  `    try
. \% _. w# m. u7 Y4 q    {
7 }, G& W4 \# ]/ M        if(block == face_select0)
+ f" N9 I6 {& q        {  ?% m8 \3 U; ^" [) R2 o

* M9 c0 m' M6 Y: h! R8 n        }
2 l' N4 }- k+ d9 \9 C        else if(block == button01)
! z( X6 ]6 W8 B2 t& L; l4 M        {
, m4 z+ g, Z& f' G& m$ w+ d      
% w$ v. |: T, M5 n' V                DisplayModification *displayModification1;1 V# d0 J# N% G8 g
                displayModification1 = theSession->DisplayManager()->NewDisplayModification();
9 r, D0 S, A, n& r- L/ m                displayModification1->SetApplyToAllFaces(false);
. T* p4 a% N, l" W( s" [+ w                displayModification1->SetApplyToOwningParts(false);
' o! n; _* r' |8 P& o% c                displayModification1->SetNewColor(28);
* i; A" I9 L% Z% m8 G/ t! u& H3 F! G, p

( G. I7 Y" }4 M( @/ @! V8 V                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
, P* r* l, Q, K1 F  Q                vector<DisplayableObject *> objects1;. m5 v  P' ^: g- t$ i  p$ D6 y

3 c( W/ B* B" k6 \0 Q1 U7 S! o
7 k" u8 I2 Z( k2 A, X6 A$ w0 a
                for(int i=0;i<faceobjtss.size();i++)
3 @% F2 W6 t. n* P% v                {
; o+ c' H5 t3 `) Z                objects1.push_back(dynamic_cast<Face *>(faceobjtss));
- P# f' g  ]5 i) o+ y. L                };
/ N5 H. s+ {* b0 w" A$ b                displayModification1->Apply(objects1);- Z1 k0 R/ M' V; j7 Q+ n/ v
                objects1.clear();% U4 w* L$ X% l
                delete displayModification1;
; {! K8 e4 B* e                displayModification1 = NULL;- m9 Y, s" n: R; ~9 q; Q2 o2 t

! v3 R2 [  N6 d* j) z4 _

2 `- ?6 ?5 ]. C% q4 z9 t, F        }
# L' X2 |! q0 w0 \; `+ m' Q
* d3 e8 {$ z: q4 t    }8 R2 K- w3 @" f( v
    catch(exception& ex)
& A) l3 D6 I5 w    {6 R1 d9 @; b5 R1 ?
        //---- Enter your exception handling code here -----1 u6 y- o: ]+ \4 i# d2 ^% j
        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());+ ^, c5 a& J" a2 r/ x) P5 d- {* c
    }
, A9 o) L) \. c9 S    return 0;  x8 r' B7 ?# S: P
}9 H* M& j$ _" A9 ]" [7 A! k
, q1 @  ~- v4 k" x& }# l# b/ v
! [5 e' G8 f' \, e3 o  r

" h, J, u+ ~. C0 ?# H( t1 k  ]9 a
上海点团信息科技有限公司,承接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

楼主这个问题解决了吗?
- m1 b, ?* C; u+ ~; f; q* |: ?; E* l# z
解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了