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

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

[复制链接]

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

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

cosn 楼主

2015-12-18 12:38:28

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑
2 U+ d3 P5 Y% U% c2 ]1 J6 ^" S+ g$ v
我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?( m. S6 N: Z$ o3 h

7 Q# W3 f7 o$ \( _9 K下面是点击对话框 “应用”按钮的代码,正常的。. B( _6 u, l2 ?! h
: y1 H* V. y" W4 ]6 f
wint gaimianyanshe::apply_cb()- o# ?" h) i8 `2 K6 t/ V3 _( z
{
1 M; G; A4 k( xint errorCode = 0;
4 B6 f( X: i# I- [) j9 s& T- ztry6 Z8 x" M+ M( M9 H; h
{
, u0 T5 K8 X. R; V8 Z( l
2 r6 Q- n+ W) Z' a# mDisplayModification *displayModification1;- s* _5 V; T4 `
displayModification1 = theSession->DisplayManager()->NewDisplayModification();1 o( v. }  |" d8 e" C9 O. Q
displayModification1->SetApplyToAllFaces(false);
0 u9 d3 c* Z9 {displayModification1->SetApplyToOwningParts(false);. b8 H- x& N. @& G3 k
displayModification1->SetNewColor(28);
, p4 Y$ F1 O% E8 j3 P' \, |& F% T

$ e+ S$ H3 A/ l' |% d" Rvector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
4 e6 s  b/ i$ b+ n" w  l" A, Tvector<DisplayableObject *> objects1;
  F& U3 L. i0 R; p$ _, @- w
: X+ S# |/ L4 A# Z
* j* x5 A2 |8 t! o
for(int i=0;i<faceobjtss.size();i++)8 I$ C- S2 h5 d  g: ?1 E; F# G1 }
{
6 g6 H7 Z) n( ~/ M7 Kobjects1.push_back(dynamic_cast<Face *>(faceobjtss));
8 P# U4 c, e! ]; H" ^) O};
9 ^: l2 F; ]6 V! r0 p6 |displayModification1->Apply(objects1);6 C) \: p: k' x4 c: S( R! [2 m. K
objects1.clear();% V! ~7 G; o$ n
delete displayModification1;1 U( b, M( {0 h+ x: ?
displayModification1 = NULL;
9 p) N. j& G% {1 W8 \& D- t7 L5 q0 u+ E8 F/ S3 J
}
5 y# Y) G6 ], N0 S! l$ ^  ucaTCh(exception& ex)( m  u# a6 f6 Q* O4 D; y
{: c* Q: y( Z' _9 G8 Z+ P- C' f4 C
//---- Enter your exception handling code here -----* [9 g! P2 ~- A5 z
errorCode = 1;
3 q4 L" s+ _) I' }# U4 rgaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
" s) ]' f! Z% Z! r% ^. D}
( G3 i1 l$ I8 |" T( t2 Breturn errorCode;
! e; O; M& l( }* H4 p}
% e7 d* j, P2 j- D7 W: L. d8 P/ y: x: {/ d" L

' b8 [( u; c" y- Z( j
5 k: {) r7 L( @7 E  c下面是  button 下面的代码,点击却没有用,为什么呢?
- ?( n) l% i- [  Z4 I) w) vint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)9 W( D3 d3 f& p/ C9 i
{3 F4 l( e3 T$ \7 W; d, P
    try% |9 _. P$ H" O2 @) l! _
    {4 K% b7 ]. j2 w5 \1 e7 f3 ]
        if(block == face_select0)6 P" m  @- o2 V: ~) O: ~
        {# d1 a# V2 K, v7 V/ J' X

1 n7 D; O' E5 K1 l        }
3 d. ?( U$ y+ T7 [8 p        else if(block == button01)3 J$ ~2 L1 l) `
        {
. V$ r2 z1 _9 D" d8 t3 Y* a0 o8 y       ) A: }6 |$ S/ Q2 c0 A. R
                DisplayModification *displayModification1;8 C7 X$ j; t3 K; {- C2 c+ K
                displayModification1 = theSession->DisplayManager()->NewDisplayModification();
5 [1 I( w3 l6 D/ F; M4 E2 Y                displayModification1->SetApplyToAllFaces(false);: A( C9 ^8 e+ s, l1 \5 T7 {2 x
                displayModification1->SetApplyToOwningParts(false);
+ m# V! l* H# U! x& i2 f/ _/ t/ b                displayModification1->SetNewColor(28);
: ^* C. {5 S: t6 p4 p3 a! c' \
0 x8 d4 B$ y9 O; u$ U
" ~# U2 p5 T0 V% u$ z
                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;7 i" c/ y! H2 V3 m
                vector<DisplayableObject *> objects1;0 o* P+ ~% B! I- {" u4 x/ K$ M5 K
5 j) O# a8 L) ?
& A4 E- f% f; {7 b; a0 D* F& e$ u8 {
                for(int i=0;i<faceobjtss.size();i++)
; G4 [; @1 n- _2 L6 l' z7 n$ C2 k* N                {
" V7 b$ j+ _6 e5 j( }, i( y  r                objects1.push_back(dynamic_cast<Face *>(faceobjtss));
- S7 {5 l0 g" U" e. t3 Q# z                };+ q* b2 L1 Y* j  B
                displayModification1->Apply(objects1);* e& g9 L* ^# Z- s. j: H
                objects1.clear();
+ [0 n% M1 n8 O1 @' y. v* B                delete displayModification1;
+ }2 E3 Q( R  m8 {- Z: G* G& Q( B                displayModification1 = NULL;: x% f& w. a& L

  v+ A7 m# L5 g

1 |, H9 d0 k. h3 v4 p        }: E' b# ^: U& Y' @0 B+ Z- Q

. O' V5 F5 o/ C! ~7 [    }; K+ d9 g, d2 k3 ~3 U: D
    catch(exception& ex)# f$ {9 V( x4 m& m4 t9 z
    {
$ q- }8 {1 G% h  W2 d. q0 G2 _        //---- Enter your exception handling code here -----
! m( M8 r% l; F        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());3 w# C2 R4 x2 L- D" U& f4 g
    }
+ [/ I) t3 W0 c  k. a6 R    return 0;
" ?3 H: l7 @5 m( A}
& V3 F+ X' z3 I0 `. L) D9 \1 C- O7 k! }7 C9 p

) ?2 v0 K1 t, [  N' Q/ P3 f  |: X; b) F. H/ r" i
上海点团信息科技有限公司,承接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

楼主这个问题解决了吗?
  s8 Z- [2 \- i' A6 o- U/ T( B# n. f. D. G. \% A) G0 I$ A
解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了