PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

[已解决] 23 BodyCollector选择容器

  [复制链接]

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

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

smthan 楼主

2014-6-1 10:06:15

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

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

x
本帖最后由 smthan 于 2014-6-1 10:09 编辑
( F/ b, }8 w+ @- N" [& o6 U
3 V1 N& k) i) S 请教:
7 _( i) @. f# [; ?2 ^8 w1 l       这几天在学习您的教程《23 BodyCollector选择容器》,跟着视频做,调试没有问题,执行的时候,总是后报错,还请您指点一下:
/ l$ A+ y; a* ]" r, G3 M 1.jpg
7 I' g& P8 C# e( m点击OK后,能输出正确的信息:
4 ^! Q; Y3 m/ f0 h# k: G" } 2.jpg 9 P5 b" _3 Z' f  E' {
再之后,报错:
& L, [4 y" K9 O 3.jpg 1 o; ^- L2 ?2 L& n- ]
4.jpg ( l  f1 Q% A0 M" [; N
日志信息显示的错误:
5 n$ b7 \; V1 m6 J7 d' b3 t: F' `% t4 Q 5.jpg * L) g* z! w9 J0 n- V* n
主要代码:
5 p" \5 O9 t: y. gint BodySelect::apply_cb()6 d" G# M2 R7 A* J9 P5 D4 K
{+ ~6 n$ M" L: [# F, C  E0 \
    int errorCode = 0;( G$ r+ f( o. {# R+ G
    try, |' T% `' E$ }' X9 _" o- q  C. q
    {  O' c4 y2 T) N3 ]1 `2 H
                PropertyList *pList = bodySelect0->GetProperties();
0 x" N; o( e: O                vector<TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");7 [& y% h+ Q! J# \% V$ B5 V
                delete pList;
( i6 ?6 Q0 T2 n) I5 p0 L                pList = NULL;/ w, p! Q% T2 C
                                
" X: }* ~! R4 @( y, S. G" f                Body *body;! r1 w% F# W- L0 @
                int allCount = 0 , iSolid = 0, iSheet = 0 ;& `; D& p5 u( U+ A+ C
3 e0 I. [) A' }; P: L' b4 u
                allCount = (int)vTags.size();$ @% U+ j0 E$ m# I' w& N
                for (int i=0;i<allCount;i++)
' [; t% q0 q1 d( y' v* g1 J                {
) t$ N7 l0 g( L- m# [, T                        body = dynamic_cast<Body *>(vTags
);* A$ r; \" f2 f. G1 B& k+ }' S" Y: I0 [
                        if (body->IsSolidBody())
& ?/ ~! U4 q$ K# y5 q                                iSolid++;0 T0 O% i. b9 |1 M7 I0 G$ P
                        else if(body->IsSheetBody())$ w2 D! a& K+ V
                                iSheet++;
& v: e1 R% u! @1 V# y" |9 p                }
( c% Q/ l4 s7 F, ?* I7 Z! r4 T& |9 E3 [, r, U8 S
                uc1601("Read select objects Finish!",1);% D. d, E0 f# U* L0 n
                char chs[256]="";
0 g3 Y5 [: b- f$ A2 w9 x
' H& B8 s6 m/ E0 I  w. p$ Y9 v* w) r# B+ T& }- @
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);
4 u' O3 {# W5 `                uc1601(chs,1);
5 e: x. M' m) H- j& C' M( G    }+ h$ n4 ^$ F; u( [7 a
    caTCh(exception& ex)* O: {8 t9 J( s- s
    {
% y: h) {  @- ^4 t        //---- Enter your exception handling code here -----
4 a' Y8 c; ?% v2 h        errorCode = 1;
! R( X! P7 H( P+ C        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox
::DialogTypeError, ex.what());7 P9 a. x# c$ Z
    }$ e' |9 X5 ~0 h3 u
    return errorCode;$ N$ j0 D" B$ |& m% |$ {
}
6 C- Q1 [9 W  }+ I- I

$ k5 Z2 _' E9 t* Q6 ?& k5 t2 ?不知道你有遇到过类似的情况吗??
- N  D/ b% Z& Z& X问题是出在哪里呢??
$ }) Y' O) D7 w也没有什么内存需要再释放的呀
0 i; Y, }/ w4 r
$ V) b% E" b$ ]/ L4 H7 r$ ~) F* X; f$ M9 |( n( |
上海点团信息科技有限公司,承接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+ E3 f6 g1 ?; m& S8 ]' w) X

( s1 y' T& ]5 A' \0 _" n% p! _$ H) [+ H& \

+ z3 e9 d4 J3 q: g8 T; M7 U. i& N1 b/ d   body = dynamic_cast<Body *>(vTags[i]);
% M5 k' Z' ^7 ]3 k2 x
* o- p7 t/ B0 K' E
. q* r, X$ n) ^9 e8 e
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

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

smthan 板凳

2014-6-2 13:14:43

本帖最后由 smthan 于 2014-6-2 14:04 编辑
' c5 c6 z* t, U% C8 \; ^& Q4 {
! v1 i' j' ^1 h2 k- d  m  {" j2 T" ], t谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()) C" e3 d2 @5 P7 q8 M" |
{4 a( F& n" K6 f
    int errorCode = 0;
1 X4 T; J% t! O, |    try1 ~7 l% l+ B/ I9 B
    {
% Q- C$ A2 k4 O8 Q                PropertyList *pList = bodySelect0->GetProperties();  Q8 o  q" w4 `: a2 W- |, O5 v
                std::vector<NXOpen::TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
" R# B9 W5 b' v' N# |( S' }+ Y7 X                delete pList;& v8 M) h9 l, d
                pList = NULL;
1 x2 V% r. i( M% Y. o
- k6 p9 ~- n- T  ^% d                Body *body;
: [% n. u" }: X1 u9 X# ?                int allCount = 0 , iSolid = 0, iSheet = 0 ;
4 d/ \* z. X- p- K, a! B+ l( q) r3 P9 v* N+ \0 P
                allCount = (int)vTags.size();9 i, q" T5 J5 N3 R3 ?8 Q& Y. p
                for (int i=0;i<allCount;i++)
. W! L7 A8 N* u                {
7 b, i, W/ O! j0 K- F! ^                        body = dynamic_cast<Body *>(vTags【i】);( p: G/ n  z  u! k( U8 y
                        if (body->IsSolidBody())/ Q" h/ ?# N3 s- N% M
                                iSolid++;( U3 Y" t4 W6 B' |% a
                        else if(body->IsSheetBody())
$ H9 D5 p5 {! I% a; ]7 V, |                                iSheet++;
6 L" G  T0 p" I3 R                }; H+ I  I+ Z% m
                char chs[256]="";7 h) g- c6 B2 F7 p: y
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);( X0 h% I/ S8 U" G( o, ?
                uc1601(chs,1);
3 K" h% S- A' {9 n/ y    }
- F- I+ [3 V9 Z& P; e+ L" u' j    catch(exception& ex)
. k4 Y6 ~$ f1 h) A    {& T2 u1 }3 I2 @; N$ k% e) {1 J
        //---- Enter your exception handling code here -----
; ]1 y0 a0 W6 ?4 [' ^6 ?* `        errorCode = 1;
2 z/ [: t3 Q# H+ |& x        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());0 Z5 b% w* y: c* ^+ w# \
    }9 |3 l6 u5 c# p% e. E: \9 _1 c1 f
) \" \! w  `0 z$ v  {9 D6 p! {$ C' H, P
    return errorCode;5 p4 o3 |2 ]; q
}9 I& K1 Y! Z, R  Y7 I/ G8 Z4 W. Q

8 c& d# R  {1 _, m有点不知所措了,请指点!!!
& F  `: y! ]: i1 ]5 k2 d) i+ i
5 X4 Q: w) [' o* {
' T" {* q, F! P
上海点团信息科技有限公司,承接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  v$ W( l4 t% v( e( |  F3 a
谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
7 w$ Y( S- \3 K4 T' H/ i$ A{
- O' d7 U7 v5 H5 p) S$ W9 `8 R$ {    int er ...

  M) [2 D1 y  H; L2 q; d' E你是 NX75 的吧 1 w% ]4 ~% x, v6 Y0 Y% I
" s9 V% \) `1 x& w& p% o
这个的确有问题 ,你用 选择对象 selection 代替吧 0 t! K. }- |$ m7 v  @' H

' h) w1 `( @' m% s$ ^6 S设置一个 mask1 I3 J8 T" J$ k* K1 V1 r
6 A7 ?- g; E) x6 J, q# @. c8 L& C" r
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了