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

[已解决] 23 BodyCollector选择容器

  [复制链接]

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

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

smthan 楼主

2014-6-1 10:06:15

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

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

x
本帖最后由 smthan 于 2014-6-1 10:09 编辑
" k& Q- z8 V, o6 ]7 @
) U8 C: z. o7 ]% X; V; j 请教:
6 q4 ^- J. q! f       这几天在学习您的教程《23 BodyCollector选择容器》,跟着视频做,调试没有问题,执行的时候,总是后报错,还请您指点一下:# y: A. P6 e. c
1.jpg 4 |+ D% Z' ?6 H" x
点击OK后,能输出正确的信息:
2 {4 V* b7 E" S& S) w 2.jpg
0 X+ q2 J) D5 z; a再之后,报错:
, C7 H4 y' K7 k 3.jpg 5 W8 D. r8 {* n4 p6 k
4.jpg ( w, [3 g- q6 M+ H- B
日志信息显示的错误:
: g( J* C% b0 F# c4 ?7 } 5.jpg
) h, \% ^% Z& ]  Q主要代码:+ W/ Q- L" `' E: q2 G2 A9 L
int BodySelect::apply_cb()
9 Y, R. x+ c, h{5 E+ L. x, h. D2 m; Z4 `4 I
    int errorCode = 0;
7 u" Y& X  D+ V- H! d5 c9 \, D# E    try' E$ R3 z& y0 L: R
    {
7 |0 ^' m! B% j% p: B1 R% Z9 d                PropertyList *pList = bodySelect0->GetProperties();- w6 Z, p8 M( {! ]; r
                vector<TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
' P9 Z) p- H1 {8 F/ {                delete pList;& B7 t1 t) u7 U% m1 |9 y% E" ]: n
                pList = NULL;
. w) ?* q8 V6 t9 |3 l5 X                                - x3 M6 K, O+ e; P
                Body *body;9 I& E% E9 Y, L) U; r: W
                int allCount = 0 , iSolid = 0, iSheet = 0 ;
# p; @: d, |# }4 D4 Y5 b
: `2 _0 [& ~* p+ c                allCount = (int)vTags.size();. A3 r$ G. P( G" h( Y6 B
                for (int i=0;i<allCount;i++)/ `* M& [8 e% |9 u, [
                {
$ r/ s9 t. }$ W; x( x3 k; R                        body = dynamic_cast<Body *>(vTags
);
* |1 A% l* Z( a( a5 Z                        if (body->IsSolidBody())( C4 l; I4 e- c2 H
                                iSolid++;( n  {# r& p0 Q; ~! Q
                        else if(body->IsSheetBody())
4 w- J) t! ~& t                                iSheet++;
- A7 H4 `& Q" s4 m+ g0 `; ?                }
- m4 l; t$ j* _7 u4 A. b& Y- c0 i' N" _. L8 m4 s. \1 d
                uc1601("Read select objects Finish!",1);+ Y4 S! ~, K  {+ \
                char chs[256]="";9 L' ^7 p& y& I- [
1 Q$ n  X+ X+ `. |

+ Q7 r$ Y0 s/ \: G& o4 C$ ]                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);3 b: i: A% u/ X/ X9 A
                uc1601(chs,1);
8 S( N+ m8 [- n3 ]% s" I5 }# `    }) M" Q) \  g0 j
    caTCh(exception& ex)
; @: w4 b0 R" s0 K- I. C- I; q    {% Q# P1 m2 O4 z& f8 ?* O' T" e
        //---- Enter your exception handling code here -----8 I4 G  g! O3 T" V
        errorCode = 1;
1 S  B/ Q2 d7 E/ s+ H8 V        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox
::DialogTypeError, ex.what());
! d9 y8 n- j# `% V* v+ _- E$ B    }# i! Z  h1 \0 }( D% G0 g6 j
    return errorCode;6 S. Q; f) N2 e/ ^* ~5 D# c9 W
}
. ^' E) O3 Q+ g/ _

, k) f, e4 x4 j4 c5 l不知道你有遇到过类似的情况吗??
0 ?/ K. I4 C  F/ T" u问题是出在哪里呢??# I+ y% Y+ i+ R7 N' T5 m- j
也没有什么内存需要再释放的呀
9 a- W1 ?& u+ _) q; j- D- @5 X5 T: i5 ^$ O/ V1 [8 K1 L: D
8 ~6 T3 u2 u& Y; Y& ]9 T; ?8 C" \
上海点团信息科技有限公司,承接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); 9 y& w: H) t; T5 |; R1 ]

+ u, f  c  N6 m& v, a7 i" o( l, O  ~

5 j7 |9 a4 W% V  p! D- p& C   body = dynamic_cast<Body *>(vTags[i]);
( F3 C3 D. g( c+ k1 L0 r: b! B% ?* Z, d2 O4 F7 e5 w
- n+ w  G# W3 ]8 c- 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 编辑
- V+ I) S9 O4 ^, ]6 S& [* U
/ B4 e% U8 x: x9 i, f谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
3 X- Q# J8 ?$ b# s- R' f" J$ m{1 A# T3 U' }7 w7 ]8 ]7 e  H
    int errorCode = 0;
$ k$ k7 H% W/ J8 A9 \5 I8 V7 W    try
9 a/ ^# E6 j& D& W0 c    {
6 }# B& _+ h+ S5 T                PropertyList *pList = bodySelect0->GetProperties();
8 T$ m* ]. O; N' s6 z                std::vector<NXOpen::TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");0 _6 p5 I$ X# C3 r
                delete pList;7 d! y: C" f5 g  J2 z0 I( g- m% f
                pList = NULL;
% R5 v. l: I  ?& X" |% T6 \3 h! \; _3 ~& d6 \. @
                Body *body;/ r0 T2 m8 t+ z1 f( w- R
                int allCount = 0 , iSolid = 0, iSheet = 0 ;2 _3 B; t1 b; O2 j) D! j/ D! Q7 h

% k5 S; N5 N' H0 j2 K                allCount = (int)vTags.size();/ f4 ]6 j! V/ I' T9 ]
                for (int i=0;i<allCount;i++)
% u7 c/ x( u+ D7 v/ c" r                {
, {( @5 t% q: z. q% Q/ c                        body = dynamic_cast<Body *>(vTags【i】);2 k: i+ j) d# @5 F' X' U# d
                        if (body->IsSolidBody())
2 }$ D" U1 B6 u3 y8 Q                                iSolid++;
& R* I" e8 I1 d- c: _                        else if(body->IsSheetBody())! y: d! P/ m: ^% e
                                iSheet++;% a; X3 }* J" t0 [; y: \
                }: R+ Q6 }7 g; e
                char chs[256]="";2 \1 g2 v7 T& C, {1 p
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);- e1 d3 M, n1 {. k1 a# o; u; N
                uc1601(chs,1);4 T% x! m$ ~# x: N
    }
% X# T+ l" l7 X; Z/ l. o    catch(exception& ex)' y4 K" C; K  Q: l0 ]
    {! h6 e5 I1 j/ S& |* _, T: _# m/ H
        //---- Enter your exception handling code here -----5 {, q) [  O4 C9 o5 y
        errorCode = 1;
( b8 ~6 [( j+ _0 ^+ Y, W: R$ P$ d        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());" T: S5 m1 l( C
    }9 ?" q5 l+ S/ U6 Y7 U2 J
' H7 o: z7 l' H" |& O: B/ [4 c
    return errorCode;
, F, l3 m- _  x. d  ?}
2 q) p- G/ L2 X5 L
- {9 E' ?" t; v& l有点不知所措了,请指点!!!
- K8 H* ^9 a% Q" D4 `& o- a. \! t2 p+ ^
6 [) v% H6 }" M1 H6 }  n
上海点团信息科技有限公司,承接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:140 E7 p) P3 R) q) v
谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
+ E; S9 T) T$ i$ F8 h. E8 L; x{
  N0 v2 Z3 L3 A7 _    int er ...

  t# |& z) \& [2 J你是 NX75 的吧
& B! G% B& u9 j
9 ?, F% O6 V0 u9 j0 C7 {) D这个的确有问题 ,你用 选择对象 selection 代替吧
* f0 z4 l* B  t7 R! m8 J% W9 U* _% b/ H6 ~; d
设置一个 mask
, C2 K% D/ Q# h, u8 E+ X
! ~: N, \+ x7 y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了