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

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

[复制链接]

2017-3-30 15:19:32 3638 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 ?( d4 d: ^; N7 n# L; ^9 J3 ^; N* A2 Q1 T0 j
我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?
9 I8 l+ `; O8 k1 n7 V0 h/ f3 Z' k  V4 n7 R# O' }0 E# q
下面是点击对话框 “应用”按钮的代码,正常的。
( X9 V) S5 D! J4 S7 ~* ~4 Y- m- \7 e3 }. ~  j
wint gaimianyanshe::apply_cb()
1 a) z3 x" W+ S1 P, Y{
; X) ~& S4 A! X8 W" u6 G' Tint errorCode = 0;, [" ]' O% i( o/ L; K9 C
try
2 d6 e7 [$ X' j{& o: N7 @* T; ]

. U  V& J% ]7 _% c7 ^' B7 ]1 PDisplayModification *displayModification1;" {1 H# w: g3 ]! J/ }- ~9 A
displayModification1 = theSession->DisplayManager()->NewDisplayModification();
( P8 m- a/ G9 k- q% g, `/ YdisplayModification1->SetApplyToAllFaces(false);& N1 R4 n0 A: z; N! L5 {
displayModification1->SetApplyToOwningParts(false);6 \+ x0 F2 n. e6 L
displayModification1->SetNewColor(28);
  i5 E- o5 [( d+ I$ _0 x% J1 E) U3 I9 x& ]$ _3 [. a2 F  ]$ |0 a! {
# T, M7 Y! C+ ?8 e6 m
vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
, r5 U- H' i1 v6 ]  \! Svector<DisplayableObject *> objects1;* C/ O! S7 m- Q7 t, t

4 {" |; p* Y$ Y

4 g% G4 w% Q" ofor(int i=0;i<faceobjtss.size();i++)
# r  h2 \+ r; `/ h4 D) X/ f{! v' c6 d, d7 t" \3 T( g+ w. l
objects1.push_back(dynamic_cast<Face *>(faceobjtss));
2 S- _8 C5 |0 O  h$ N$ G6 K};
/ a. a) g: x( b4 H+ U- m# U, k) GdisplayModification1->Apply(objects1);
& H# ^! h  F4 C& W% {& Gobjects1.clear();  N1 p& [5 X. C9 n/ e. z2 b  y
delete displayModification1;/ F  A  z7 }# o( g% ]
displayModification1 = NULL;: @# k& E. g+ E! h! Z$ L% B- R
$ k5 e( c; n' V: u  h
}  c) L" w2 d3 G% D2 D
caTCh(exception& ex)
1 T& p. }4 u+ z0 D; Y' n3 k: [* [{0 C( r3 D0 E- H# e& T
//---- Enter your exception handling code here -----# o% Y, z( ?) C- W
errorCode = 1;; W) M6 U8 g* V1 b: r
gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
# d6 O4 }: \$ N) @2 P' v& H}' h+ g( W" u0 x- ^) X- s6 o% M
return errorCode;+ ?9 {: _9 K0 p+ G( Z+ Z; z
}, B: O2 H# M$ M0 [& x6 Z: y# O9 F

. Y# \( f" g  {; R8 I, J* j3 W2 Q0 u+ r! s  g, t' V5 y" V0 o2 a
4 q! c( Z5 D  c" \" |1 e
下面是  button 下面的代码,点击却没有用,为什么呢?: Q, O8 ]6 O1 c1 `+ Z! _
int gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)5 }+ S& n. c0 F4 H) `" }
{
7 o" o( w0 X/ F! X8 M    try7 w8 X& r# V: M# E, B9 w& F
    {) N/ n7 C5 ?* k+ F
        if(block == face_select0)
. T$ F( k5 r; ?$ I6 a, S" [        {$ n+ c7 {, l& b  m# C' l
5 P! D' F  s; o4 ]2 @: r% P+ U  V
        }
* U, H4 \& R7 {3 _. [2 `" ^        else if(block == button01), p9 w2 O4 A0 d! n! g' C( q- K
        {
  w0 I1 y( C/ X; m! Q. Y      
$ t  d+ |- D* |1 S# p0 v                DisplayModification *displayModification1;( Q7 K$ f) Q- B( _. g
                displayModification1 = theSession->DisplayManager()->NewDisplayModification();
" k2 S" V6 M' Q* _9 t                displayModification1->SetApplyToAllFaces(false);( w$ ^: O, X8 Z+ c6 N
                displayModification1->SetApplyToOwningParts(false);
: Z# }8 o- L  [+ g' ^% l                displayModification1->SetNewColor(28);  W3 j  V- `9 p* J) U

1 w% t3 F; R  E7 I! J9 b
, }' G. o9 T8 C/ k, I
                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
6 q$ o1 }. @1 a                vector<DisplayableObject *> objects1;( i9 b; q" H+ ^! B! Q/ ?: {4 d3 P

, h8 }4 c) X' k  ?7 w

' _6 Z4 |, d: J% p( ^* D' M                for(int i=0;i<faceobjtss.size();i++)
8 y3 P/ E5 T# R& q2 |4 ^+ |                {$ g4 P: X$ v# v# W
                objects1.push_back(dynamic_cast<Face *>(faceobjtss));8 ]0 a7 U) o8 I; t2 q& l, k0 ?
                };
, A2 R- b  @* `1 z                displayModification1->Apply(objects1);
3 }9 `1 Y1 Q- G' l5 k                objects1.clear();& `. r' J: |0 e6 I  e6 a1 y; t% ~
                delete displayModification1;2 ]1 `  L9 g! m1 \# M/ A
                displayModification1 = NULL;# B# v) e9 `$ P6 E

; t9 j+ v. E/ ]) V* B9 z9 ?# F

  m" V% i+ {6 i5 J- u& U        }( t& J9 u% B) _

% V( E. }* {( J" U. h5 V    }7 }% p) @3 T+ B8 q% N# H
    catch(exception& ex)
0 g0 r, L0 i" s; e  B2 n  n    {
6 A& f( f8 A2 T0 u/ Y5 Q        //---- Enter your exception handling code here -----( B& s6 }# r- s0 {; \  |
        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
2 @- x1 i  k# X- V5 |, V. l    }
- X5 v5 h1 H. ?( C/ m    return 0;
7 z; f. k' e( z3 n}5 D; g! ~! [* V/ V; e! x) r
) Q/ C/ S9 j& T

7 x9 Z: {1 a  B$ v1 H
6 ]7 ~( j5 z1 a; X. L
上海点团信息科技有限公司,承接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

楼主这个问题解决了吗?
+ L4 Q$ o, L$ U1 m" o
/ [1 U4 G- C! G- p& _6 R解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了