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

[已解决] 23 BodyCollector选择容器

  [复制链接]

2014-6-7 17:34:23 3850 3

smthan 发表于 2014-6-1 10:06:15 |阅读模式

smthan 楼主

2014-6-1 10:06:15

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

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

x
本帖最后由 smthan 于 2014-6-1 10:09 编辑
+ M9 C( r: E. I  u
! D2 y/ S3 r* g- o2 L; N' P 请教:
& b  K# _0 N* Y7 j       这几天在学习您的教程《23 BodyCollector选择容器》,跟着视频做,调试没有问题,执行的时候,总是后报错,还请您指点一下:6 I% Y. C# F1 _9 `7 i
1.jpg
* J) h  J7 [( ]8 G# ]! U点击OK后,能输出正确的信息:: z5 ~. E! H* R+ h! H
2.jpg
8 J' o2 W/ p1 D$ a" y% s再之后,报错:
! V( Y; g! O0 I- H 3.jpg 9 L7 A1 g; M% m0 Y& G
4.jpg 1 c& _+ e7 G$ \6 C2 _  O2 Q, E
日志信息显示的错误:! e( ]* ~4 u! F9 |/ M
5.jpg - g: H/ j1 [2 L) I7 e2 M* m0 t
主要代码:0 \4 \0 y1 j6 R  K6 s+ Z( t
int BodySelect::apply_cb()/ l2 C; N4 G& X6 ?; K% x
{
; h. U: k5 d  X6 d$ R) L& M7 x" S    int errorCode = 0;
; }& j9 |3 _, @1 q+ b    try, x9 K8 O) Q. X# o* @8 w
    {
0 W: `6 ]' i5 \* T6 Q8 t1 w$ p& c                PropertyList *pList = bodySelect0->GetProperties();2 A2 w4 _0 G* }& o, D
                vector<TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
) g+ b( H8 I% ~0 i! h                delete pList;
5 F8 k; j6 m. B& f4 a" Q5 p" |                pList = NULL;
) p! [* O' ^/ E* l                                , h7 ^- Z6 I: k% ~6 [0 k
                Body *body;, w5 B" l' ?4 z$ ~3 X
                int allCount = 0 , iSolid = 0, iSheet = 0 ;
, v! E3 O$ t4 V( `/ S: U0 q/ K7 f/ X) C: m: @5 i8 a. q. e7 X" G/ b) b
                allCount = (int)vTags.size();
- z" ~# D# t0 R8 ]( U                for (int i=0;i<allCount;i++)2 G2 U) p& @% e1 y# q( [/ W
                {
6 ~+ V; _8 f! a% x$ h                        body = dynamic_cast<Body *>(vTags
);
  A+ j4 ]/ l, _                        if (body->IsSolidBody())7 T3 }9 x7 ?+ n% @) z8 U
                                iSolid++;( M+ u* _- j8 o0 F1 T" d
                        else if(body->IsSheetBody())) a8 V: I. J2 L) j' E1 i8 J- B9 G9 I" p
                                iSheet++;
7 [' g( I$ |" e- _/ b                }
! L0 E8 I* B- ?
& ^4 N7 W2 _) t! Z" x& B& d  l                uc1601("Read select objects Finish!",1);+ p; z0 `, i% W" }( i( ~! f- W
                char chs[256]="";
# s( P! L  Z' ~) |1 G+ }" G* F
# C+ R: [* D/ Q4 y, l( j! Z' f' O
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);
7 o5 P# h9 _, _) w# X                uc1601(chs,1);
! e5 Q* M! g4 R+ \# T8 B% v    }
7 [: ?- C8 Y: I, Q# ^    caTCh(exception& ex)
: I; z& t$ B9 b1 _  l    {# G& l$ }: I. G7 T7 d
        //---- Enter your exception handling code here -----
$ A) v% B! r# o  a        errorCode = 1;
3 c+ d/ I0 I* l1 w0 X        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox
::DialogTypeError, ex.what());! l, Q' C. K) E
    }
' X: a' W# O' R    return errorCode;
! t% A- C. v; c8 P( z! c& r" w}

* B. {* A1 o5 d/ w. {( C& R' R% @5 E
不知道你有遇到过类似的情况吗??' V% K0 u+ P; l7 u& N/ T& g
问题是出在哪里呢??
' o; U" q* a1 s0 ]0 d7 ]也没有什么内存需要再释放的呀# G% G( j' o" k$ Q

$ H% B$ g' }2 f3 ?$ t. o$ G3 ]# T+ r. z% \# ^0 I
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复3

admin 发表于 2014-6-1 18:00:18

admin 沙发

2014-6-1 18:00:18

   body = dynamic_cast<Body *>(vTags); ! S; _8 h- m5 {( U, R" g

& E6 z2 ^/ U9 s# |
. ~7 R+ N. P) ?, E0 P' I- Y$ z) {6 n# W* ^6 u9 @
   body = dynamic_cast<Body *>(vTags[i]);
, h2 N5 F' }) m. [8 D
* T' @; N/ o8 e7 d. X/ u, A7 I! C% [8 o  ?. l' G$ Y
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

smthan 发表于 2014-6-2 13:14:43

smthan 板凳

2014-6-2 13:14:43

本帖最后由 smthan 于 2014-6-2 14:04 编辑
8 z$ x* n1 q! y, f" K
' w) k& k5 Y8 R9 F- E# }0 ?谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb(); x2 `  c0 K" [9 }3 s% j
{8 T, @+ I! q. o* l% }
    int errorCode = 0;) H* T) D4 r% U2 `1 M) n2 ?( G' ~
    try
$ j. G' M8 b0 J, Q    {9 C" h) g' n& J3 D. X
                PropertyList *pList = bodySelect0->GetProperties();: F, w- m+ W* C0 o  D. }' {3 X( C
                std::vector<NXOpen::TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");6 @9 H0 j+ f( x: w5 R
                delete pList;' [, A$ |% t8 y8 ?3 I& k* N
                pList = NULL;
5 ?& T( \- C4 k. Z4 v7 B% Y2 `. P' j% K  y5 C% n$ \; z1 H( a3 D
                Body *body;/ D* W  c7 U6 f9 u7 R! m5 Y6 B
                int allCount = 0 , iSolid = 0, iSheet = 0 ;& L: O- v+ H  t* h

! j/ \+ `- e0 e4 p* g% g9 f7 V2 L                allCount = (int)vTags.size();
4 |- W9 s# y3 n1 T4 o                for (int i=0;i<allCount;i++)4 L$ J6 |8 n, B; y. H; X2 |
                {" j1 \9 Y7 w% G3 F; e
                        body = dynamic_cast<Body *>(vTags【i】);
' ~! F$ i+ k9 W8 g% U9 A+ K                        if (body->IsSolidBody())
/ x+ c( O4 o6 H7 U/ v1 Z6 Q8 H                                iSolid++;
$ `! h% A/ Q# p2 X/ c# {                        else if(body->IsSheetBody())+ W+ R! y7 t& \9 `$ {
                                iSheet++;2 a) }5 e/ O  @: B( D& G
                }/ y. F# G& A, \* m$ p: U
                char chs[256]="";
% ]8 d& \2 i2 N" Q+ }" ?( L( J( H                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);; t4 g% Q. l' a
                uc1601(chs,1);
4 L; H4 E2 t# i, Q3 ?    }
' J" V/ R( x9 @5 N8 B    catch(exception& ex)# T9 e4 ?5 V) ^: \: h! R2 `
    {$ d* j( d5 h) ]' a* k/ C
        //---- Enter your exception handling code here -----
% {+ A* V) T3 c2 T8 ~/ Y        errorCode = 1;2 e1 A9 _) J$ s! I, B+ W
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
7 k; I" w& [& C    }
7 R6 i) g2 N% {; d# J. @/ ]% v" S# U% A6 `
    return errorCode;3 u  F9 O" T2 w- U
}
, `1 |3 I/ x" L" T5 s! W# b+ r  }9 R9 R* K8 _
有点不知所措了,请指点!!!" O* U: u! a4 B6 o2 h

( a& |* i& ^- W) d9 M3 I) ~. z' A# e
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

admin 发表于 2014-6-7 17:34:23

admin 地板

2014-6-7 17:34:23

smthan 发表于 2014-6-2 05:14' B7 s6 t0 J: w' n
谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
! X; e: }# Z2 F  N, M4 X6 y) t{
3 L/ R& S, k7 x( l  Q    int er ...

! l. v% j4 |) P4 q% Q/ u0 @你是 NX75 的吧 7 E! v& \; G* D! I# P
9 D$ u" M, D$ N9 v/ m! _
这个的确有问题 ,你用 选择对象 selection 代替吧
3 B+ D0 u7 S) T8 q9 I
3 d% L9 C0 e  m( S$ a, A2 O设置一个 mask8 ^" d# ^) ?& o4 B( t/ O

" W0 @: {$ U1 g( c# g
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了