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 3664 3

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

smthan 楼主

2014-6-1 10:06:15

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

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

x
本帖最后由 smthan 于 2014-6-1 10:09 编辑
( N& z& R; t5 \3 ]" J2 s1 M* k: }9 x# t
请教:1 M$ D: R( P2 v6 b4 h3 {
       这几天在学习您的教程《23 BodyCollector选择容器》,跟着视频做,调试没有问题,执行的时候,总是后报错,还请您指点一下:  g& ^7 x4 H' w
1.jpg
7 R* Z/ ]( z  ]点击OK后,能输出正确的信息:7 O  P; \3 `- Y7 V$ T
2.jpg " f" Z$ I; a; K4 r' x; o
再之后,报错:) O" e+ b  q2 P/ S4 A
3.jpg 3 b3 }& V$ \& r( i5 E
4.jpg
% ~& X) B* A3 H5 J% |7 o日志信息显示的错误:
3 M4 a+ G9 u7 C" f) W 5.jpg 6 J8 L  l6 M+ _2 h9 {# }% [
主要代码:/ W! m0 l' ?& r/ w
int BodySelect::apply_cb()
) Y8 P% B7 |1 t# o{6 l0 Q/ J3 H5 {5 z9 {4 N
    int errorCode = 0;
( L! n) ]& @& P! ]1 q  C0 |8 O3 E    try+ c+ _5 ~% r: K/ ^. z  w! P: y& _6 W
    {
, J% f1 x7 H1 n  P                PropertyList *pList = bodySelect0->GetProperties();
& J, F( H6 v7 S, {8 Z6 Y                vector<TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
/ w" B/ [' ~* t# q6 B; h1 ?                delete pList;
' P1 W+ A0 U+ j# Q                pList = NULL;
1 N9 j; e7 Q0 q" K$ A6 b% Y                                $ w* E! s& Z4 k' ?
                Body *body;: r0 M& `3 T$ m, j# g
                int allCount = 0 , iSolid = 0, iSheet = 0 ;* J2 B1 u* i3 M# H% A5 m
! x% E4 _  B3 m& D6 B$ T! |
                allCount = (int)vTags.size();
7 o7 ~1 N3 j) @                for (int i=0;i<allCount;i++)$ `* _, K' J% U% ]
                {
, D+ c1 |( [1 i; x2 M  D                        body = dynamic_cast<Body *>(vTags
);5 W: X4 }. q( S  N4 `, N) j
                        if (body->IsSolidBody())
/ a3 p- \6 s6 Y! C                                iSolid++;* z1 a4 Q( }- W0 A
                        else if(body->IsSheetBody())' D, Y* e$ u/ |2 i+ q6 ]1 e, c; g: q
                                iSheet++;- o: T! V! C1 W
                }& j- V* Z. }) [* g8 j5 y
' v: S) ?$ ^+ P- B3 ?
                uc1601("Read select objects Finish!",1);6 J4 q: M2 s% N
                char chs[256]="";
+ A6 g* F2 q; [8 U$ X* C: i# Z  A

8 l5 u: m" C+ y                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);: J! v4 f* y, {8 t& c& H! n$ a
                uc1601(chs,1);
5 b2 ^# S  C# @    }7 M: |7 Z! A8 K2 I; w; ~7 x, _; p
    caTCh(exception& ex)
" Y1 x% U+ G3 h/ M1 s/ i" a. L    {
" V% Q+ v* V; B# g        //---- Enter your exception handling code here -----% A/ N; a; [' E# @$ f* K
        errorCode = 1;" |- l0 D+ v: Z8 Q& _& s- }
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox
::DialogTypeError, ex.what());: Z6 f1 N" U1 R
    }; y8 d' s' h+ T- M: V# O
    return errorCode;. Y9 h+ c4 K1 m# W3 P- ?6 V: V
}

' Y+ X! H7 U. x. k3 S& Y' T- i3 w7 A5 D2 @
不知道你有遇到过类似的情况吗??& C1 A" X2 i. w; T: O8 L
问题是出在哪里呢??
5 q' G, R- p: M; [4 v/ ~也没有什么内存需要再释放的呀; I' @5 p2 R: z" v5 [7 e
) E$ [( l! X" \% i( k
) {' I$ X9 o3 k( o1 W6 O- l
上海点团信息科技有限公司,承接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);
; Z3 R% V9 U( k' E
. W* H- X, Z4 i  Q* P0 N; z2 Q  N) o  S; o1 u( t

5 J! [3 H, ^9 n, t: P/ I( z$ P   body = dynamic_cast<Body *>(vTags[i]); # @4 d3 o7 f2 c. q7 k( ?8 ?) F

+ d1 O1 I  K7 n: }
7 \3 i: n) g& `1 s# o
上海点团信息科技有限公司,承接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 编辑
/ ^, q& l( t7 K- A- L% h  e1 b4 `/ x' }* J/ O
谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb(); x- g& Z/ z  i$ ], ~) N
{
2 P  G7 z2 n$ R. T7 q4 p7 c1 \    int errorCode = 0;; o. e+ H' p- l, [; i9 J
    try- @4 F( p( S/ E  r2 U/ J
    {
5 j9 _. E5 H$ A7 n                PropertyList *pList = bodySelect0->GetProperties();
4 X. j4 q- x- [& l# H  B* {% n                std::vector<NXOpen::TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
2 [9 ?% ^/ a( v; T/ G                delete pList;! b. Z: e: _  `7 W2 c( Z6 B
                pList = NULL;
6 W- ]) {' ~- \7 q
3 T$ Q1 q; n, t- |  d0 I9 x. m                Body *body;: X4 \: z( }' l% I+ y
                int allCount = 0 , iSolid = 0, iSheet = 0 ;
6 q  g3 k6 `# e. _0 k: j
& C8 l! [& E0 r, L3 f* }, Z                allCount = (int)vTags.size();
" V- f2 W% u: O                for (int i=0;i<allCount;i++)) B" _+ ?; q; H0 U
                {
9 S; F! ^  V/ r; {+ S* L9 w6 C, s                        body = dynamic_cast<Body *>(vTags【i】);' L: i8 X) d1 c# [# T) F
                        if (body->IsSolidBody())9 T' v5 B1 W7 N5 R/ s
                                iSolid++;
! p" J* u, H. f. Z                        else if(body->IsSheetBody())
) }1 J, u7 v2 k+ Z- u- M! R+ {9 R                                iSheet++;8 G+ A! C% C; v2 M% \
                }
( z: z7 E/ b: z2 W  R- y1 A                char chs[256]="";5 I! C) {6 B: E6 D$ f
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);
# x# O& |9 Q# p# s1 n& ]                uc1601(chs,1);
5 ^) E: f4 G/ c; w4 U2 z: D0 p) ^    }. R/ G4 h- w5 S$ X3 t
    catch(exception& ex)
. g4 R% z% y' G8 \2 t    {. T- ?5 F' j! O" @; _
        //---- Enter your exception handling code here -----/ l2 y4 g% m& T0 o; M
        errorCode = 1;; \+ Y, r- T7 B/ J' N- w! d7 ~6 k
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
$ W/ j/ s! u% s5 Z    }
# w3 L* w7 x* l; U1 c# |) P4 g4 Z9 ]- j/ r
    return errorCode;
& R+ ]" L+ w0 p; b}& c( C/ f+ X$ }$ @* Y: \' t

  g. U+ Y: y4 v( N2 c有点不知所措了,请指点!!!$ |7 G, R% E2 Z0 A! m* w2 P* @: B
9 A6 }# z$ O0 P4 V7 q& A0 d
& d  B8 M$ P% 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
$ z2 C/ F! r# |4 v5 C4 j5 k, X谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
0 \5 A6 r2 y2 |4 k1 v5 {  Y{1 F! n7 Y% {' ?& d, ?. U; j
    int er ...

8 U) U) d. X7 q& R你是 NX75 的吧
$ o% U, r- J" Y& N" J* U1 M7 b* `$ p  R& K7 X
这个的确有问题 ,你用 选择对象 selection 代替吧
& B! G. T( j' u" r( ~4 i4 ]
) n: {) B: q$ O  C! X设置一个 mask" j7 {1 B3 y) [6 r
7 v- x9 }+ q6 i0 A. n7 T: q& w3 ^
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了