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

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

smthan 楼主

2014-6-1 10:06:15

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

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

x
本帖最后由 smthan 于 2014-6-1 10:09 编辑
2 ^2 t( f: P9 H/ z6 `
. s4 v. P8 V9 T$ B 请教:& u4 Y4 Z. X. O" t
       这几天在学习您的教程《23 BodyCollector选择容器》,跟着视频做,调试没有问题,执行的时候,总是后报错,还请您指点一下:
* A; P' \* r, Y! o' \6 k6 M5 { 1.jpg 5 ]* a  Z' x; G% k) w  B# u8 H
点击OK后,能输出正确的信息:
) [$ }# U) X. ~" |6 |5 X; C) B  a$ L 2.jpg
3 N# a' q& ^% W! @' ?) ~# ?  k* F5 i再之后,报错:
, u# K4 s4 {' w" Z+ {) y 3.jpg 6 ^# P" a5 q" F/ E; ?4 V1 |
4.jpg 8 i, ^3 P9 N; K+ s- a' t4 ?
日志信息显示的错误:
4 J. c% t( ?- q! `5 n1 R- x 5.jpg
  J1 `, ?0 q& x主要代码:
8 S' W- J' ~4 R! H% e0 \int BodySelect::apply_cb()
! p, X4 R+ J$ }) n+ O  `. A% P{
8 P( }% Z; X* [" E  _    int errorCode = 0;$ S8 `7 u/ G$ t6 e
    try4 j/ B1 g7 c8 \, q
    {
; C$ h6 S/ i+ x0 n& T                PropertyList *pList = bodySelect0->GetProperties();
5 L& i1 _$ l+ e                vector<TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
$ X1 O& i5 ]6 D) }6 w                delete pList;' ]8 ~, J, u7 Q* c9 j2 w
                pList = NULL;2 K" w/ Y7 O9 Z. {2 }
                                
( I. `) e2 N+ S$ a  s                Body *body;
! N2 _3 G! _) J% g                int allCount = 0 , iSolid = 0, iSheet = 0 ;
  h% H1 `3 w/ h0 H, C: E0 g8 I! Q# b
                allCount = (int)vTags.size();
8 a& x7 o* T. ^0 j% k                for (int i=0;i<allCount;i++)- l+ T% c6 |) L8 H* E
                {. J4 Q, X( I9 W" ]. O0 g
                        body = dynamic_cast<Body *>(vTags
);
1 W% W. e$ e0 \* Y, }% @$ P  N                        if (body->IsSolidBody())
: `9 L" k+ ~# q4 j7 F0 a5 C8 m                                iSolid++;/ j! Y2 x2 p$ y, S" y) H
                        else if(body->IsSheetBody())' A1 N1 `; q4 v1 M
                                iSheet++;
0 u1 U: I: v$ {9 R7 Y* f" l                }9 c, e+ R+ h( Q4 r6 U! m
& I. K1 }8 p8 F/ b6 B
                uc1601("Read select objects Finish!",1);
2 c2 F! H  l5 Z; x" R                char chs[256]="";
8 R# r) V5 S: D6 V- y7 x! c3 B, v' [: y
1 U( F5 L6 f- V+ E9 o$ ?# P9 i$ I
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);
$ ?; e' n5 B+ f) z6 i                uc1601(chs,1);
: w! t4 W9 B: t# O3 G0 G    }
( p2 {4 c3 J' T$ |0 b    caTCh(exception& ex), U, d3 g8 M& p# b- H
    {
# _, U3 |8 m0 s8 }        //---- Enter your exception handling code here -----
2 h# o7 N( @, m. u5 `( G        errorCode = 1;5 t6 w" f- l8 T: r# H* C
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox
::DialogTypeError, ex.what());" i( P7 @0 L( _
    }
7 F5 a9 c2 b! T9 P    return errorCode;
  p: f6 V' U0 O1 E9 N# O: D}
( `2 V. ^3 H* w5 {  C

0 p. s+ O9 Q0 g# v不知道你有遇到过类似的情况吗??
' w! C6 J$ b! L4 Z+ Z$ h问题是出在哪里呢??% O& h+ ?5 ]$ X: E* P
也没有什么内存需要再释放的呀, f9 ?4 p" E) u% a

1 g6 |2 U, Z/ m, z4 ^  [# O8 ?  f/ q" ~  E7 k- j9 ^6 T% ]
上海点团信息科技有限公司,承接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);
; x6 @3 N- Y3 A; B0 i$ D9 E( w
+ e- a8 F, ?9 }+ p" A3 Z2 ]  ]; @! w: j$ p

7 f1 [; k, x2 w( j/ ~   body = dynamic_cast<Body *>(vTags[i]); 9 N0 I% P( K8 k" `# s$ m% M

9 x- M7 v0 [: U8 K$ l
& J) ?# _* |  M! G
上海点团信息科技有限公司,承接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 编辑
/ [6 }: I4 b  N& H5 R/ J6 F. J1 b6 Z6 @5 U: g2 T* U0 d# R4 \8 m
谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
2 W& d' a$ f) o! E+ r{7 [/ p# Q2 j# j, U
    int errorCode = 0;" A, h# P$ X9 O. v8 m9 H9 P( [
    try6 k6 M$ E. o1 a, h; K! v. C# u- b0 w
    {
1 ^8 T9 w# Z0 a4 f                PropertyList *pList = bodySelect0->GetProperties();
: q' o$ y+ [* ?1 }$ z; S/ {' h                std::vector<NXOpen::TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");3 i% I  B2 f; q' @
                delete pList;) f) s- F" k  g) I
                pList = NULL;. v# |4 [+ C% a# ?8 y" M
* F9 O# [" d7 w+ T7 M; R* Z& C
                Body *body;
9 U& F8 b$ f7 ]                int allCount = 0 , iSolid = 0, iSheet = 0 ;
: G8 o/ k9 z2 i$ b' j
& v% m/ ^3 O+ _' E2 J' c; \  {                allCount = (int)vTags.size();4 Y+ d5 Z" j- X. [: k
                for (int i=0;i<allCount;i++). D. r5 ?) F4 p0 [7 e
                {
" J, |" N* w% ?: s2 Y1 [                        body = dynamic_cast<Body *>(vTags【i】);
- ?5 @, d, g3 d$ U7 w5 H  p                        if (body->IsSolidBody())
) x, d' n! ~+ Y( R. }                                iSolid++;
. ]2 G6 B; Q, S5 u                        else if(body->IsSheetBody())
1 W/ O# U7 K4 U                                iSheet++;4 M4 x; u( u% W. c+ W0 A
                }7 y; ^, f3 C) `* i4 C
                char chs[256]="";0 l! Z; Z! }6 z2 p' W
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);/ e% v- x! z+ v1 v
                uc1601(chs,1);1 h/ g6 s9 w: v
    }
' Q+ H2 d1 }4 x& r1 G    catch(exception& ex)! o% Q6 l8 p% U3 g% Y' f
    {
0 F, }, g- S% Q3 ]        //---- Enter your exception handling code here -----
4 I) O8 B7 X  w        errorCode = 1;$ z3 M6 w  B8 Z1 ]6 ~0 P
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());  G; G1 X6 a8 N" N) m+ e# F5 Y
    }) |. ]8 }  V6 w' ]7 K
$ x' R( R# r& Y* s# v& X- c$ H
    return errorCode;
! j$ i0 y; k$ a& U7 p$ m" _}
; p6 ^, T5 l( p9 c$ `
( Y% R3 P$ @$ s8 X, o. h有点不知所措了,请指点!!!8 h# M+ J+ a( j3 b9 k1 s3 D/ D" B- j
7 H3 K! H$ P2 C

9 @  @" `1 N# Z
上海点团信息科技有限公司,承接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
1 l4 E. J/ k) e5 L谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()$ j% F( ]& I8 Y  P5 G. n
{8 D& N: g& v8 X: i7 L5 p5 e' S
    int er ...

+ W8 Q$ K  z( V8 ^你是 NX75 的吧 ' b, c# a0 V8 b+ M( S
0 \6 N8 d1 h" i' o9 }+ L
这个的确有问题 ,你用 选择对象 selection 代替吧 2 f' k9 L/ t  n
8 |2 ~. n2 Q3 P* M1 W. f
设置一个 mask/ S5 J  P6 g, f: B, }0 Y' u. ]
$ s5 f: Z8 K! }& G7 l7 a3 Z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了