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

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

[复制链接]

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

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

cosn 楼主

2015-12-18 12:38:28

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑
% B" J) Y2 T1 J& V
6 K: M$ F8 B2 V* n7 [9 j我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?
* f: S% n. L/ c5 l7 z7 m4 {; _5 T9 G/ z7 C9 G5 E
下面是点击对话框 “应用”按钮的代码,正常的。
7 H6 O: s$ Z3 Q  m2 P% o* @; @5 r4 c- s1 ~* H
wint gaimianyanshe::apply_cb()
; T$ C  C$ o$ {  a# v' X{
( w0 q# d8 ]7 z% l% L, c# x: n. dint errorCode = 0;; `4 P  [4 B0 @. f2 G
try1 j8 `; V4 h8 o6 a* R: j6 b
{
3 ?! |2 q6 [; `& A6 R; }) a5 B5 |% ]8 S# @8 R
DisplayModification *displayModification1;  t. r5 R7 Z7 e+ Q( q& Y; g
displayModification1 = theSession->DisplayManager()->NewDisplayModification();
9 q# v, F% y3 N* o. v( E) r8 p3 GdisplayModification1->SetApplyToAllFaces(false);0 o! w, B, K4 w  K2 ~
displayModification1->SetApplyToOwningParts(false);9 C. u" O+ w& C) X, w' f& H% m: s
displayModification1->SetNewColor(28);# h; f' I. Z: W) m9 _
* z1 I6 E; Q0 h3 c& S* O  z
( j8 y9 o. k2 d* h
vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
. V) ?; y( ?! M1 x  }! m) c4 r( xvector<DisplayableObject *> objects1;5 C+ e5 Q/ B. y/ w; ?8 |' H8 s

; s8 c) P& L8 |1 s9 i1 y
4 K) v  r2 ?5 `1 ]
for(int i=0;i<faceobjtss.size();i++)$ r2 a' z' B3 H; ?: `4 e; J
{4 w" T  t) @3 W- G8 k$ \3 {2 V
objects1.push_back(dynamic_cast<Face *>(faceobjtss));5 y& `7 }: d+ Y3 B2 D
};
! M0 F; Y& U1 f, J- BdisplayModification1->Apply(objects1);9 W" s" Y1 G4 e! q+ b
objects1.clear();2 m+ m  A1 j- @7 R$ ?
delete displayModification1;# Q( j. s: L0 H, [9 F
displayModification1 = NULL;
9 f4 B4 |1 i2 X( {2 f% E$ n
: Z/ l6 @3 O9 I* u7 J' u9 z}
2 b  |- i6 P; k- q- scaTCh(exception& ex)9 x- n& s* e( Y: k6 J7 b) y
{
0 Y' Y+ D0 Q; I8 J, w2 x, m//---- Enter your exception handling code here -----0 V9 S& T* c: |' i8 Y; Z
errorCode = 1;
; ?" V8 m, s# Q7 c4 i" C# Egaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
" k- T( E. @9 y* X$ ^4 u" D}8 O! Z; f* t1 M
return errorCode;: b& I7 w. _. w6 n% X" s
}
+ r) D4 a0 v, t
+ m5 L2 K4 Z1 J# F
7 \. p' |% h1 w& U; ?. a6 X
& b$ B# N# B; `7 B( F! r8 q下面是  button 下面的代码,点击却没有用,为什么呢?
8 p% z* \+ ]. W6 s4 F9 [0 \int gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)
! o+ _1 q: f  H# h9 ]5 N{
. B( B8 R1 ]4 l  {    try" R" S7 ]: H  M2 q4 w% s; z
    {
1 |; H' E+ @- K        if(block == face_select0)
( J6 _" E; O- H$ b& b, [5 a        {
' L& V+ {( I9 _) v( E7 K: m2 _
9 B) Z$ m; X- u8 E% P& p5 B        }  }( Z1 l# B/ }3 P, w( e
        else if(block == button01)1 v/ A6 e. l  r
        {
$ G+ u! V5 p( k      
. N* V( I2 }) g                DisplayModification *displayModification1;1 `& K# i* T* T( m7 O- k4 V1 e* M
                displayModification1 = theSession->DisplayManager()->NewDisplayModification();; }# L! K; ]+ f. o: j1 E, H
                displayModification1->SetApplyToAllFaces(false);) p' w! S6 ~$ C% y+ J5 o: c
                displayModification1->SetApplyToOwningParts(false);1 M" R/ J2 G6 _) Y( Q' Y( g: A
                displayModification1->SetNewColor(28);
+ p* B% ~: A( t# b+ ~  }
3 ]! c4 E9 m2 f* ]$ K8 _% H

/ I* i7 w9 p$ r$ J" T9 W                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
1 i5 ^- x' f6 j+ _                vector<DisplayableObject *> objects1;
  K5 }0 ^( D  R/ y9 w+ b& ]. p- ?) i  D" ^. q, ~1 P
6 ?5 F. n3 S- G1 d) Q  g" h5 a
                for(int i=0;i<faceobjtss.size();i++)0 t6 u, M" E) o' l0 \1 U  i
                {+ h" |1 V" ]1 v9 y
                objects1.push_back(dynamic_cast<Face *>(faceobjtss));2 U- i/ o( O& e$ |' c
                };
: c9 G; A( e. l+ z% P                displayModification1->Apply(objects1);+ U+ \! D$ k6 ?. V8 t# i
                objects1.clear();
. C, D/ ~' x! Q. ?7 g                delete displayModification1;
- L# I% p+ i( M5 M) J7 r  h- c% J0 r9 v                displayModification1 = NULL;
2 K* T2 B9 X; l5 e1 d7 m& r
. n+ S  D" a$ l- ]' c; @

- d$ w- S5 O) i/ c3 N9 c4 b, D        }
, o1 J7 |# G: }+ C! ~$ F) g$ Y
, |0 ^% G+ ?! s7 ^) g! _" e" i    }
" S: z) |- f3 B    catch(exception& ex)
  u$ l3 I: t$ K$ @    {# }2 T6 j% D9 i
        //---- Enter your exception handling code here -----& D. a% T/ m% @+ W+ v- K/ ^
        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());' H# ?! M" g1 P! c) T
    }" B; e7 w8 t& V% j" B
    return 0;
  d  Y* W* M0 {' S3 H; S, {0 V}
% e; b$ `% _. [/ O' V6 f
/ u0 Z# K; l0 B4 ?; t: q- b3 R! C% J" B1 s, I; A+ Z; P' U/ \

+ J' `: k: }5 r* ~* X
上海点团信息科技有限公司,承接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

楼主这个问题解决了吗?
/ D3 |% H; y2 o$ v; ^
" X  i# Z  @" w( M& J/ p解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了