PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

6

主题

8

回帖

120

积分

培训VIP会员

积分
120
发表于 2015-12-18 12:38:28 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑
& v. A) w% K( ^1 ^
& g, s' P5 [+ a6 [我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?
& }$ C3 J( A7 v
/ f1 e5 g9 U% K0 O0 O" g6 E' W下面是点击对话框 “应用”按钮的代码,正常的。
: {3 B0 R/ r" d6 A0 Z1 K$ z5 G/ j: |7 d8 e; C
wint gaimianyanshe::apply_cb()
6 B, Q1 ^5 W, X- a- _{
/ n4 q0 L( _  V1 Dint errorCode = 0;3 v0 g1 \+ G; k1 {9 y" X# N6 n
try+ g$ `% Q4 E8 I8 N8 ^
{
& R) \  Z! m  S( a( C; u3 c0 n& k% a5 g% n
DisplayModification *displayModification1;
0 \4 @, k3 v, `2 S3 ?3 k; j& b$ R& XdisplayModification1 = theSession->DisplayManager()->NewDisplayModification();
5 R) z3 R. B; b% GdisplayModification1->SetApplyToAllFaces(false);
$ ?$ W2 Y# H' [" hdisplayModification1->SetApplyToOwningParts(false);
4 I) a3 A: K9 ]; m8 AdisplayModification1->SetNewColor(28);$ T, M% d) m' i; M! F; C
4 B6 N- V" z$ v# T$ y& q

5 R$ ]. \5 ~2 M% q, `* Hvector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
9 o. z, N$ {6 J" N( J$ [0 }vector<DisplayableObject *> objects1;
' C; Z9 W; O! F
" y0 ]9 O# l* t' v. `- }+ }

: [( ^, a1 ^/ `  D. S( C' Rfor(int i=0;i<faceobjtss.size();i++)
$ Y8 c8 {$ u: Y3 H2 `# g9 ?! ^  {{
* b% l" {/ I9 H/ |objects1.push_back(dynamic_cast<Face *>(faceobjtss));
, n7 T$ ~2 ?5 ]1 a3 {};
1 R) h) c$ D) NdisplayModification1->Apply(objects1);
6 [/ C! l- x$ V) B6 sobjects1.clear();
3 x$ b* r4 h9 W4 e& b0 Bdelete displayModification1;
: f. e- q) \8 v1 ]6 q/ \( VdisplayModification1 = NULL;
( ~& R% d/ Y* h/ l
* s: o8 e# y5 w5 X) ~! l# m' E4 J}( `4 J/ \1 [( f0 l, h( c% r
caTCh(exception& ex)
) ?; P( }0 C1 ^& r2 ^{
+ [3 X- F1 k& s% ~$ ^4 v0 b//---- Enter your exception handling code here -----2 N% Q7 D' j5 i
errorCode = 1;8 A( H0 G3 L$ p2 I% G% j
gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
( L% D# y( K% r9 l}
4 W# A6 W4 e& j, {8 wreturn errorCode;
' w: I0 D( c* M4 a2 a9 p  w}
' l6 U5 }6 J2 c* w7 P& g/ I( F6 F$ ]

5 B% Z1 ~- X$ g% y/ m- k8 x) E6 H+ g5 `8 X: S  d. m: Q
下面是  button 下面的代码,点击却没有用,为什么呢?
% B# Q8 u1 M% X) j2 Eint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)
2 t$ ^- ]  m; \+ n6 |+ a( ?( P  d% }{$ @# F  z' W1 M6 B+ x/ K
    try# m4 i% l- n  j8 C* \7 ~
    {
; T4 f) z3 d' w5 C0 T, ]/ X$ m, D        if(block == face_select0)
9 J+ r# L, }! T. ]        {" p7 d+ c" k4 h% x! L
+ H1 J& k6 F" b2 x: K1 |4 @. k
        }' C( m' z& E/ e, W+ I  V
        else if(block == button01)" ]/ _3 s$ r$ Z: N& p0 T
        {
: O5 N4 M& ?- o8 I       0 Q) Q% `. l4 W( z1 U/ Y, _
                DisplayModification *displayModification1;
' R2 i1 `7 q3 h6 o4 u& N9 c                displayModification1 = theSession->DisplayManager()->NewDisplayModification();
8 u) p& p  r0 X2 t9 v( R                displayModification1->SetApplyToAllFaces(false);6 p( d* z3 J$ P) ?. t
                displayModification1->SetApplyToOwningParts(false);
! L( \  u0 P, Y" v8 Z& u; D" \                displayModification1->SetNewColor(28);
7 e/ B: V5 L# @3 Z* i( }& G6 F. \% l9 m
( C$ D6 L' _% }/ d. q: J  v  I
                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;2 x1 I) G+ @/ F2 o; \$ W& \( H  T
                vector<DisplayableObject *> objects1;& E& ^8 D* \8 B9 y6 B( b
2 U8 U, j$ M; l* ~' x/ H5 l% H3 `

" o, b2 V* E+ x                for(int i=0;i<faceobjtss.size();i++)4 z" c+ x; |. \; P8 F, m
                {
4 b4 `2 C  Q/ t1 Z, P                objects1.push_back(dynamic_cast<Face *>(faceobjtss));
; q6 k2 _0 I2 k( m1 o                };
) E6 k; ^# h) T& U0 f; y% A                displayModification1->Apply(objects1);
- w% F  u. t5 T9 Z; h                objects1.clear();
! \6 b: l# U. S: K                delete displayModification1;
) U2 e) \4 P& a: n5 c& l# x4 ^$ ^) s' f                displayModification1 = NULL;3 x5 e- {% @3 o6 m% P& c. t. |
3 T' _( U% t# ?3 Y% s; E
" v4 N6 D. b3 A0 v
        }
1 m1 f; e& i1 X3 n" n- [
' T! P  t5 H: H! \    }
( K) y) z# R( u5 V$ }* ]3 L3 S& O6 M    catch(exception& ex)2 o1 B. g- Z% n
    {
, U, R: C' Y' a9 w( M        //---- Enter your exception handling code here -----
6 `. j& I- g1 I* D3 ]6 c3 n, @        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());+ V, i2 y; T) M& S
    }
/ s0 v$ |4 G4 S/ ?/ [  ^4 t    return 0;+ N2 A$ K/ w4 c0 a
}2 W- a* Q0 n3 S4 O9 m/ i5 K  u$ M" W3 _
) |7 v# G" q: B; o& J

) w" u3 o0 w: u$ m" M9 a; z/ v
4 X" Q% f6 d1 Q' q- J( n
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

全部回复1

0

主题

10

回帖

73

积分

注册会员

积分
73
发表于 2017-3-30 15:19:32 | 显示全部楼层
楼主这个问题解决了吗?
. H. T% q7 o$ t, i, A3 ~" `( l& ]
$ H/ y0 f9 x2 I6 o解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了