PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

cosn 楼主

2015-12-18 12:38:28

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑 - ^" j$ }4 i& k% X% }& Y  w

6 P4 O+ n! X9 \+ E我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?
! n1 `. t( w7 V$ b
* k. S  k2 y: w下面是点击对话框 “应用”按钮的代码,正常的。
4 R) g4 c1 O  u6 g/ b' D* p9 C3 O# B& S+ s* r
wint gaimianyanshe::apply_cb()
3 t& i( O2 Y; U1 u  _. [# V* {" \{- c' J, i. z/ L7 r/ |. K3 j
int errorCode = 0;
6 F. I* ~0 T$ e) [try
6 n+ S1 B' ^! t4 F! h7 ~6 l7 y+ Q* \{
9 s5 ]& C7 d; M9 b+ O; W
& b; K9 N. M& l# W: P4 _DisplayModification *displayModification1;8 S+ L  C. Q1 K7 D: ~
displayModification1 = theSession->DisplayManager()->NewDisplayModification();' n! ^6 F& N/ p- p; P7 U3 R
displayModification1->SetApplyToAllFaces(false);
& [9 o" C0 a2 o. o* U+ q, HdisplayModification1->SetApplyToOwningParts(false);3 E: C% d+ `! {1 h. ?! s0 E" R* F
displayModification1->SetNewColor(28);- N3 W9 }0 B9 m. u. r' f! V
' `9 W# q" c9 {% i- [

# T' G* I5 g8 X, j8 o; i' K6 Ovector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;0 r1 ~8 \0 E) ?/ _  D3 p3 J/ A
vector<DisplayableObject *> objects1;
( o( g4 V. a$ Q, v% l
9 r) h9 F, @5 L: ?
6 |7 L+ ~9 x/ V' s+ _" b0 @
for(int i=0;i<faceobjtss.size();i++)( b; z2 z! ^5 J' c+ v; g
{1 z$ o6 w8 a! q5 u! Z7 J
objects1.push_back(dynamic_cast<Face *>(faceobjtss));! ~) \- ?' a7 E0 m+ v4 ^/ n
};
) _/ g) C0 N* ^# L7 [2 zdisplayModification1->Apply(objects1);+ y) P; N7 O& b+ I# W
objects1.clear();
( _& h5 @2 V! k% ~. n* C0 Ldelete displayModification1;
! l" y6 w) X# X2 v$ Q) O4 qdisplayModification1 = NULL;
- V$ x. w1 q3 U* L; S
" M- W" B, @  c. t6 s}! n. x2 k. c( U  o9 l. P
caTCh(exception& ex)
0 D7 w. Y, @' e: Q{
. O7 |* h+ `" ?7 t//---- Enter your exception handling code here -----
# N# v' e/ K4 D$ T, kerrorCode = 1;2 ~% y5 E% b' V4 _
gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());8 ]- G/ K2 |- E6 n
}5 D0 Z+ s) X6 a% K
return errorCode;
8 q9 c+ R1 k1 L# O6 M}
4 z8 Z4 d$ b/ f& ^) O4 _2 F
- l9 L  ]( E3 D. Z; A5 o/ D/ z- Q
8 u5 O( j. I6 a
2 R! F1 A5 g2 T$ D: F7 k下面是  button 下面的代码,点击却没有用,为什么呢?
  p9 C8 j* }0 [. l( ^. ]% U8 X7 c" cint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)
' u1 u' a! J7 M" U{
. }' k: p1 m0 O3 y    try
& F$ J& a0 l& Z+ q    {
1 T3 b3 c8 C# c0 C+ H/ ^        if(block == face_select0)
1 i" Z7 K( @0 L% |/ M+ P( R        {! A6 z- Y( Q, [" \/ Q6 ], C- ^

* [' w+ x2 B' K, P: V8 L) I        }
8 L4 a/ Y! K  O( A* c+ o        else if(block == button01)
5 J' J- i! c. O$ s; ?& m        {  y. U4 I4 ]- Y; M  s
       9 C! E% p6 x3 Y3 V1 ~
                DisplayModification *displayModification1;5 Y) ~$ K9 \- n& m; ^" }
                displayModification1 = theSession->DisplayManager()->NewDisplayModification();
: ~" s; ]% L0 u! ^( h1 l) o" W& x                displayModification1->SetApplyToAllFaces(false);/ |4 w6 ]) ]3 S7 e# r
                displayModification1->SetApplyToOwningParts(false);
* L6 B) n5 }8 ]2 _# H' K. [                displayModification1->SetNewColor(28);9 i. b6 L% `( M1 ?$ k) i. R, U

0 Y$ v% V" N. W+ x; o% I' g6 Q& Y, [
0 y0 ?! \4 ]- X- W3 I
                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;2 n1 \! ~) [8 l/ j
                vector<DisplayableObject *> objects1;
$ P$ u& r) t; z3 Y8 o% q, O/ k, U8 d3 W0 [6 @" H* ^
0 Z! d; {: e7 A9 u+ M6 V5 D
                for(int i=0;i<faceobjtss.size();i++)
1 V  C6 q" @1 D, p8 [) \                {  V$ x* B2 f) e; ?' z3 K$ L( x
                objects1.push_back(dynamic_cast<Face *>(faceobjtss));, k$ S& b, W$ Q# L* r" O2 K
                };8 V/ v, p8 W$ z' ^! A9 H) L
                displayModification1->Apply(objects1);5 |/ i9 L% U4 g
                objects1.clear();; p1 Q7 c: L3 ~6 e
                delete displayModification1;! i$ C5 O+ s6 a/ K
                displayModification1 = NULL;
3 V3 m/ ?5 K5 \
0 n/ ^* ?4 B7 w8 Y( r+ C8 \
$ P" d3 s' M8 N9 T$ r
        }
2 o* y  w1 w% t- J) S
) y3 i! x, S* ~+ D0 C) S% N    }) ]0 h' q" e& `; B
    catch(exception& ex)# k) o4 f2 X' b( D
    {
8 F% B% N8 ~; s" _" r4 b( R        //---- Enter your exception handling code here -----
  e) r; }, O( V9 V: P1 @8 _2 ^. s        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
$ B7 C# V$ ~  o    }
2 ^( K/ `7 z" R% H$ h# J1 r    return 0;
8 d9 g4 z- t9 _' Y7 K}
2 ^8 G2 D. Z3 j5 k8 y! a4 c
1 B! \' v, n: y2 G% f' G! ?7 |1 R, m, |. {
5 j- {" N  D. D/ L9 ^9 p( 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

楼主这个问题解决了吗?- }. A# M! z) x/ u; c  V# ^
: N" H- @$ ~3 \, z' A4 {3 b9 ~# S
解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了