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

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

[复制链接]

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

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

cosn 楼主

2015-12-18 12:38:28

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

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

x
本帖最后由 cosn 于 2015-12-18 12:49 编辑
- N6 Y8 r5 z  h  u0 J7 a% [/ {' a  I* c' _5 B0 K5 x' c
我做了个对话框,用面收集器选择面,然后修改颜色,下面的代码是在选择后,我点击应用之后,面的颜色会修改成功,是正常的。但是我在对话框上面加了一个 button 按钮,想通过我点击这个按钮来修改选择的面的颜色,而不是点击应用修改,我直接把 apply_cb() 下面的代码复制到 button 下面,点击这个 button 按钮来修改却没有反应,是怎么回事呢?
7 p: D, p2 |% e0 i6 P: N; T  Q% P- J4 b: C0 U* i7 Z
下面是点击对话框 “应用”按钮的代码,正常的。, h8 j- j# e# a0 E0 F/ n* `

0 M% g- v$ C6 v# a& k7 @) qwint gaimianyanshe::apply_cb()
. U4 k3 y1 L: D+ O3 G+ n+ p2 p{9 N: ?' A  X$ G3 l/ j; X
int errorCode = 0;
% ]1 ]7 M, Z0 K1 Mtry1 h- y0 i& Y# o, Y# m+ o: A8 s
{$ k7 s: A0 d8 D: M5 G4 d7 I+ }8 X5 H' ]

' p" F+ l/ m+ b; ?# h, |DisplayModification *displayModification1;8 k& O# }) l% w
displayModification1 = theSession->DisplayManager()->NewDisplayModification();# }0 N+ \3 t4 d! i# W/ J3 A" d7 F5 o1 s
displayModification1->SetApplyToAllFaces(false);
( _2 H; j* ]& _5 cdisplayModification1->SetApplyToOwningParts(false);
. B6 ^  k9 M% w7 JdisplayModification1->SetNewColor(28);
" m! _# I6 w( G' u; U5 g3 \4 U" c' D$ o6 O- l' I
1 D- t* A, h8 I& i7 ]* l7 e
vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;5 v1 f3 Z( M8 f% z. s
vector<DisplayableObject *> objects1;
- y, x7 z( k6 M' r' ?$ U  j) c9 r9 v  g3 P2 O

& Y+ H( O0 s! T6 M# n2 F: @% Rfor(int i=0;i<faceobjtss.size();i++)7 b$ l+ d' V, X) P! K. J
{
) g& ~# @. w  n3 Yobjects1.push_back(dynamic_cast<Face *>(faceobjtss));; o* E2 n1 M% F/ y1 e: g! N! q4 f
};
& e7 _) S) S. Q+ [displayModification1->Apply(objects1);
7 R9 C* Q$ n& gobjects1.clear();
* v" J2 o. b( }8 C9 Hdelete displayModification1;
" ~6 E& [! u/ |5 c1 LdisplayModification1 = NULL;! L7 t; [; b- q
1 a8 l: Q. n8 W( J
}) K; f. A) V' g: s
caTCh(exception& ex); m# s4 O9 w% m1 X3 }; ^
{) c. C: T  @+ E" g7 o( n
//---- Enter your exception handling code here -----2 U* S& D9 I. \: o$ f
errorCode = 1;( {, V  V! Z1 {
gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
1 A- S1 c/ e- |9 w0 N! U}
2 a4 G6 d  j8 ^* _- [: C8 z5 qreturn errorCode;
: H/ M1 v' V3 T; e/ u# o}0 v- n, Z/ ~4 y0 y, k9 `
1 |+ X6 @1 D: S/ b; t
8 I4 m9 ~  m  E) i" H7 y

/ [% ~9 r. U, c0 c$ b下面是  button 下面的代码,点击却没有用,为什么呢?
8 C. o# q& `- {! y- G5 N& q* Y4 kint gaimianyanshe::update_cb(NXOpen::BlockStyler::UIBlock* block)6 i# T4 J% J4 @& ]! X: `! G
{
& q1 [2 j( W& _" ^. ]& u1 ~5 w+ c- v    try
6 n+ K4 S$ ]$ L. k4 e    {
5 ~% W# X& m% _. o2 h        if(block == face_select0)
1 J# f( Q7 G2 D, k% @        {
7 w: x. w& Q8 m& f' R' {3 z
3 o& q1 j# ~6 n" @9 r        }; f6 I6 e9 p; `  n$ l6 |
        else if(block == button01)" i6 ~6 V  a  u* r: |" h! ~
        {
  i  g" m2 M( U0 K       ; j) J# T' E. a6 m
                DisplayModification *displayModification1;# S7 P/ x5 P: X! T$ x
                displayModification1 = theSession->DisplayManager()->NewDisplayModification();% ]0 D, o6 j$ R. z, y9 R
                displayModification1->SetApplyToAllFaces(false);
! J+ M( |5 P+ X! W                displayModification1->SetApplyToOwningParts(false);
- o3 T8 r$ H/ N! s, V* h/ T) o  W! x                displayModification1->SetNewColor(28);
: }* Y2 X3 ~  |$ ]/ X( U5 ~* ^0 @& _/ z
+ o2 i9 f0 |$ j  k6 s/ _
                vector<TaggedObject *> faceobjtss=face_select0->GetSelectedObjects() ;
4 |1 \& S/ @6 y; A                vector<DisplayableObject *> objects1;! i' j( O4 x" ]0 d9 k
5 K1 j( ^  G2 k4 }! B& D
& r7 [2 Z) c1 C8 [8 K0 t9 h
                for(int i=0;i<faceobjtss.size();i++)" H# E4 g1 n: ^4 g5 @' T$ O
                {" f) M5 v% Y; E# p  a, m
                objects1.push_back(dynamic_cast<Face *>(faceobjtss));
) A' s: R) ~+ M: e( l                };% J1 a/ g! \1 A# i- Z5 D' j
                displayModification1->Apply(objects1);
( e* ^3 K6 x% k* v& ]8 e0 U/ R                objects1.clear();; W1 g& w7 W- K. g: K% Z$ H
                delete displayModification1;& [1 ]. ~% c1 I
                displayModification1 = NULL;+ k1 ^# ?% l) q. ~* [9 u" P, `2 p( s; n
* ^0 ~# |' ?  Y8 N) S
8 s0 t7 b7 ]" E5 ~" E: i) M
        }# u0 F/ Y5 g7 ]
$ p1 u2 O4 e$ F* e0 z1 D
    }: v2 G) p$ e* z: u& z" S2 M1 P' m! i
    catch(exception& ex)
1 i$ U; [( W1 F8 ~    {% z3 G& Q/ L. d* _; S  g' Z
        //---- Enter your exception handling code here -----; L/ W0 M7 ^. z& W8 j2 m- T
        gaimianyanshe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());. T  ~2 U( m0 r: F) j8 m  `, g6 E
    }7 r- ^7 `, u% B0 H( y9 T( b
    return 0;
. e% O" Z. d7 J" Z, H- k: O4 N}0 f4 a# N. ?" H( s2 l3 Q

! q* D* v4 Z6 I- l0 T" `
- ?* p: _( S6 I
) h. _  O8 y, l  ^2 T
上海点团信息科技有限公司,承接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

楼主这个问题解决了吗?
6 E* P* t9 ?7 |# N2 U0 g) ]4 X/ X6 V; O2 ?/ T- y/ T1 b+ U
解决了话,分享一下是怎么弄的,也遇到这个问题......
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了