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

[已解决] 23 BodyCollector选择容器

  [复制链接]

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

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

smthan 楼主

2014-6-1 10:06:15

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

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

x
本帖最后由 smthan 于 2014-6-1 10:09 编辑
5 ?& I( }  I( F; r$ k' ~; P# T
- X3 G- [7 o4 V4 F' Q+ |- ? 请教:
; [$ d8 A! W7 ^; ~1 Q' t       这几天在学习您的教程《23 BodyCollector选择容器》,跟着视频做,调试没有问题,执行的时候,总是后报错,还请您指点一下:
; _  Z3 q. X( K 1.jpg
) I8 y4 b/ Y" i  {4 q点击OK后,能输出正确的信息:
5 ?7 i1 c& i& T6 j/ H1 U 2.jpg - y4 E" a- ], W- z$ i2 W
再之后,报错:
. Q* i0 f. k; w  B/ ?& V 3.jpg
; \0 S2 q: {) {' j, `2 Q 4.jpg
9 z; l. T3 m  ^& b% F7 J日志信息显示的错误:
$ i$ D  ?5 f/ f 5.jpg 0 l9 I$ o1 o3 n" U1 Q" `  g% Z
主要代码:5 p6 p3 M, m! u) b  Q
int BodySelect::apply_cb()
. A6 E" v  J) a( J/ ]{' z9 h- ?, n) n( w0 x
    int errorCode = 0;6 i+ j; f( n/ n1 K; u
    try* d% V# i2 I* o: S3 ]- {0 f; l- G! O
    {6 r1 F) X8 W$ D+ N; r2 C) U# }2 O/ t
                PropertyList *pList = bodySelect0->GetProperties();
( ~. K) w. B' t                vector<TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
1 W/ k. Q$ M7 Q/ ]! g: @% G                delete pList;
% N9 z! y  z0 T; x9 |                pList = NULL;: K3 @6 c  j& R  o
                                
/ r9 R# d" h" X9 A2 a                Body *body;
  `. \: `4 X. R4 Q                int allCount = 0 , iSolid = 0, iSheet = 0 ;
# g7 Y& i" ~) w! D# i3 c
! t5 |# x/ M8 I: A                allCount = (int)vTags.size();& r! j( i; f, K" }/ L
                for (int i=0;i<allCount;i++)
4 K* m$ t5 L+ A9 O7 M  I                {
( n8 }$ t7 m: M                        body = dynamic_cast<Body *>(vTags
);
5 ]( o' P- b* x: y0 W; y, o9 }                        if (body->IsSolidBody())
* O; C2 G8 T# |( R+ U( ]/ F                                iSolid++;7 ^9 A7 S4 R( {4 Y- l
                        else if(body->IsSheetBody())% @" ^1 N5 v; d; ?: _
                                iSheet++;
: w" T0 F3 B, D                }* t# k6 @# V' Q* s, t. o* n
3 V& A4 d* W1 A: O' r3 @0 T
                uc1601("Read select objects Finish!",1);7 e+ e. }6 V& d, D. l. y
                char chs[256]="";
& s8 l( o  [: y' S+ T( J
; k9 n( ^) F! O' B) z6 L( O& x5 m0 w. X4 T
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);3 f! @5 A* a$ I: v+ t! _" v
                uc1601(chs,1);
  q* v4 x2 N9 F* Q3 n6 @+ N, }    }
; n' n5 {: X7 Q    caTCh(exception& ex)" b) g& I2 w" R, s
    {
* E  u4 D, L4 ^3 j& Z        //---- Enter your exception handling code here -----5 w& o8 W( G5 Y  N4 C
        errorCode = 1;/ r6 G/ D  Z; U* q' ^9 ^
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox
::DialogTypeError, ex.what());
, |! ?% N) m! q& k2 d    }
; o( l; `" ?' j/ @6 Q    return errorCode;9 N- u9 b) Y# }6 f6 p" O  M: c2 e2 l
}
5 Q7 }7 s) n; ?; I/ _, I) V

& K2 K3 F+ v# y9 s9 \: h( l" K不知道你有遇到过类似的情况吗??9 a; K! b. Y2 ?! o2 D# A# U
问题是出在哪里呢??
: t9 D. Q0 x! v, L3 |* }4 m% j5 i也没有什么内存需要再释放的呀4 r% R2 C- R/ H  b3 }/ {. J
* s- ^* Z7 v3 h0 \* u! S/ r

0 f: d2 ]4 j' p. t$ ]& M8 F  p
上海点团信息科技有限公司,承接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); 3 W% I! Z# E, z# l: V
$ H0 L& s0 }, M" m& o  w

5 E- c; O$ r" i
) }5 T) u" c8 u: s   body = dynamic_cast<Body *>(vTags[i]); * p9 W6 _. s% ?; O7 @  q' U: ^- o# F
* i/ Z# p: u. ]5 R, o- w7 u' W
- v0 w6 X7 \! D& k
上海点团信息科技有限公司,承接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 编辑 - k3 s% H% Y1 P+ J  r- n, H) a

/ a  K  R3 L1 a) F  H! ^* }% ^谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
# ]+ ]0 T  W  c! l( k{
  i7 y8 o' L& S. G. H" \    int errorCode = 0;! o% ~, g2 ]) f$ W! a6 N
    try
% F+ A9 x: D7 v    {
. h9 X. ^( j2 z1 a) a3 \7 P                PropertyList *pList = bodySelect0->GetProperties();2 D! T# F- R, \  {. n1 Q
                std::vector<NXOpen::TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
, K, T8 k; R5 W4 t  y- t) w                delete pList;
- v% e& [0 \  f1 A                pList = NULL;
+ D: Q$ t6 R0 ]4 ]1 a4 m2 s' {6 G  `' \7 V3 D9 }
                Body *body;
% i& U4 @/ a# v. V' Y! C, w                int allCount = 0 , iSolid = 0, iSheet = 0 ;) B8 ~8 k, ]3 F- q
% D2 q& b, j  A( {
                allCount = (int)vTags.size();
# ]2 \5 k$ h& h8 o  D- `                for (int i=0;i<allCount;i++)
- M, z; c5 U- h5 [7 Z! h2 q                {( m* [8 W+ k) Z3 V' u* m2 v. X
                        body = dynamic_cast<Body *>(vTags【i】);. K5 O" ~5 N4 I, Y0 c, `
                        if (body->IsSolidBody())
1 X: a' g9 h$ w+ b                                iSolid++;; P/ s7 m  V) j
                        else if(body->IsSheetBody()): |( [& S! P# G/ x5 R+ j+ X& j
                                iSheet++;
2 _# v8 `9 n, N; g1 Q                }
7 u2 }2 O. x8 S. T- v7 w* _                char chs[256]="";& r$ b/ z  g. D/ ]; Z
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);/ B. |' Q9 W0 W, i! A1 g/ z# n
                uc1601(chs,1);
% S$ X' C+ D  i+ W    }4 L! t# Q" m' H
    catch(exception& ex)" ?  ]8 K  }, D5 l  p) d! X
    {
0 t6 V9 N9 f8 D, [- S1 s6 i        //---- Enter your exception handling code here -----
9 i, q) ?4 {2 y# E        errorCode = 1;9 _/ s* z( l% h1 C' Y% s
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());* V; D+ x) k$ e: N
    }& b# y2 u: F' Q2 ]2 i2 E
! h3 X6 S$ C2 q. r9 p, c
    return errorCode;
+ J; M. y, Z7 b7 N" \1 H}
" S) M/ I4 d0 L1 \
0 f+ J" u9 D9 r, Y% Q有点不知所措了,请指点!!!
0 F) l& F1 z, l  t( H6 F
: F7 U: k8 }+ ~8 x. x, q
9 u2 o  ^. [2 Y8 K# c+ k6 K0 v
上海点团信息科技有限公司,承接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# T% m1 I- j, x! Q" H9 I6 X6 s0 d9 Y% l
谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()  _) e. L- C7 B7 _( Q, J- L0 l
{
6 i' b9 x# g* j3 N$ y    int er ...
7 G7 B- q+ h* p& U# d4 I
你是 NX75 的吧 $ ~2 U0 S' T  Z3 y0 \* T; _

* b, b# w" @0 S9 U这个的确有问题 ,你用 选择对象 selection 代替吧 9 Q8 S  K$ e1 X9 h) C" s! T

9 a( S& y6 \+ _* ]设置一个 mask3 ?2 n$ r* U6 E' |$ B
8 J' k. h$ \3 i5 O/ J# F
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了