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

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

smthan 楼主

2014-6-1 10:06:15

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

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

x
本帖最后由 smthan 于 2014-6-1 10:09 编辑
& Y3 P7 f  I3 J! g
( {# ~; s# }5 R( s1 e- r! U 请教:- C) B) Q! c  y( r1 G
       这几天在学习您的教程《23 BodyCollector选择容器》,跟着视频做,调试没有问题,执行的时候,总是后报错,还请您指点一下:4 w# W2 P. u3 [7 K* K
1.jpg ( j' h0 C; K! ^/ {9 B5 ?( S
点击OK后,能输出正确的信息:7 ]. X+ D) |0 z% y
2.jpg ) y5 N' e+ t* t' e
再之后,报错:* H' `( ?* J  _
3.jpg
0 ?" t8 w8 l9 h, Y0 m1 y: v 4.jpg
! R; Y' [; O* v" D9 P9 M$ j日志信息显示的错误:
) Z2 I! [* _0 g9 p1 v6 f, h- i 5.jpg
, p* |* R3 Q7 w" V% }6 R8 u& Y主要代码:
8 C8 g& V* x8 w/ nint BodySelect::apply_cb()& t  p9 U# Q3 v9 \% m
{9 W9 y1 L. Z& t% y, b( W
    int errorCode = 0;
) s4 t. h3 P( i0 h+ {    try
5 |7 k4 q8 r2 W% _& _+ V6 ?    {
; n3 i% Q/ f0 W7 E9 V                PropertyList *pList = bodySelect0->GetProperties();# m- B/ y$ b2 d# A" Y
                vector<TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
/ q& B8 `- i: m7 }9 ]% k- N# j+ j                delete pList;2 k, F) j  r6 x
                pList = NULL;
3 U$ v. Q3 {4 I0 b; P" H5 M                                
3 K, R/ }# D, X; q2 g7 S' c                Body *body;4 Q+ `1 {2 F! g8 L
                int allCount = 0 , iSolid = 0, iSheet = 0 ;
. I3 {) {% P, ^2 m$ @! _- ?5 p8 h  G: |( p. s
                allCount = (int)vTags.size();4 e# o+ A6 @) G# V. z8 z8 t6 ~
                for (int i=0;i<allCount;i++)
0 e( X' o2 R$ P                {
0 w' T3 k, i6 w" d% Q                        body = dynamic_cast<Body *>(vTags
);
, v8 Z, h3 e, O6 z5 I0 Z                        if (body->IsSolidBody())
  T2 W1 J( [: X+ k2 ?% {. V2 v8 ]+ {                                iSolid++;/ X! N# u1 S( C( M5 a
                        else if(body->IsSheetBody())
8 g+ C1 v: w, J2 ?9 r                                iSheet++;
1 ?" N9 B! Y4 O' `  f                }
& I' p5 ~# k/ l7 B" G# u+ M  _; a( D3 e3 l0 L
                uc1601("Read select objects Finish!",1);
% o1 B5 e: H9 Y% I/ t# ~                char chs[256]="";
% T2 X) z# J( |' R. u+ D0 X
4 q5 M3 A0 T/ E1 \% [0 K* t) b! X* t' s6 N% F7 z& N& `! C( {4 t
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);  D% ]3 p  K) H! V$ G4 f
                uc1601(chs,1);
4 t( y% b) {9 ]9 o/ A+ R4 J    }+ p. h9 I! X( _5 A- a  i
    caTCh(exception& ex)- _' U: w9 ]" t& A( D  W; a
    {
) }* n, O0 P( g8 z( x        //---- Enter your exception handling code here -----
5 _- _9 Z5 V( z" C8 ^% }" z% `        errorCode = 1;9 W7 j4 B# u6 a# Z/ t( G. A" v2 J
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox
::DialogTypeError, ex.what());
: H" G7 h3 \$ [+ O. o9 E! a    }6 u2 u7 `5 s9 |; w, X  j3 T
    return errorCode;' k3 r$ N* W# d. x6 ~& h
}

% y) _3 N9 C- c2 d* n- h) X6 w4 o+ \& E4 V6 L2 v4 _
不知道你有遇到过类似的情况吗??
3 m2 q7 S- B- \6 ]- N3 z1 y- c问题是出在哪里呢??( g. q7 P- ~* i+ |+ H7 {6 U4 Q  z
也没有什么内存需要再释放的呀
( u, ?3 Q2 n2 W5 c5 ^6 |$ B8 k/ i& T5 t- y0 u$ [# c

5 W6 V' ~4 |! }4 A$ ^; ]
上海点团信息科技有限公司,承接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); , |8 p, f' w3 f2 O; f4 |$ u: U: M. i

0 z) q( T( x; O  K, g6 K
" \  K' z9 N4 l7 l- p9 h
6 M& s. S0 {; w% A0 ]4 A( l   body = dynamic_cast<Body *>(vTags[i]); 3 e# q+ }, c2 e* ^9 o
- {$ N! g! ^/ J5 M

; U/ ]. Y+ u3 k2 U! Y2 I
上海点团信息科技有限公司,承接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 编辑
3 Z& {: i, S% h0 ^& ^# O% m& y0 S$ ~
谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()" m9 J. h$ {4 l& f* v3 P
{
3 Z7 ~8 a+ O9 u+ m, R4 [" O    int errorCode = 0;
2 A0 y6 O7 h! y0 C    try
9 i) _0 @3 ]; w% D0 a9 I! s7 Q5 o    {
3 g7 s: L' ^# t- G8 K' q# a                PropertyList *pList = bodySelect0->GetProperties();
% b0 S! j6 q5 h' }                std::vector<NXOpen::TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");/ F% \3 _0 y6 ^9 J" j) S
                delete pList;
! O9 Q# D0 j: I, e" R! K                pList = NULL;
' [2 Q2 f' B* [/ Q- d& O! e% F0 b8 I) g5 c
1 E. v+ S6 R8 D8 p7 B, J+ J                Body *body;
! {0 E! K0 @% ]1 D% [                int allCount = 0 , iSolid = 0, iSheet = 0 ;  r# D% O: [7 V

5 z! ~' M! s/ L1 h7 K+ z                allCount = (int)vTags.size();
( m/ C$ g$ G1 a6 |3 l                for (int i=0;i<allCount;i++)! r! |, A* v6 d$ l1 ?" N3 V' N$ p7 r
                {0 N. `: [+ \) E: L! G. ~
                        body = dynamic_cast<Body *>(vTags【i】);$ e% |' i+ f7 K$ K  M% D
                        if (body->IsSolidBody())
7 l0 f& u6 J. Z% A2 @) L* I+ Y                                iSolid++;
* u4 [  {9 c# i; `' h) ^                        else if(body->IsSheetBody())
7 m, o2 H6 ]0 g  D3 W: _# p, O                                iSheet++;4 s2 L! d4 M! ^! D1 J( K$ o
                }
! E# r- F1 f. j                char chs[256]="";
6 H% O0 J* R3 @' h3 a* Z) P                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);% }5 o' b# v, g7 p' m# U2 q/ J
                uc1601(chs,1);+ B- U+ y1 a0 B. N2 Y! e
    }# N- I% d! A* s( G" e% a! v
    catch(exception& ex)9 h2 C- p: f+ |5 W
    {0 W% Y3 M+ m$ r; |
        //---- Enter your exception handling code here -----
: p+ a4 V/ b& h& l8 g        errorCode = 1;
2 K2 I; y. J+ T        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());, v8 U' c. \$ k, ]
    }
6 C* Y% H( y5 z! Z1 X$ E9 k0 x6 e2 }5 @) N6 r
    return errorCode;
8 J* b2 z; `4 H7 Z}
- O9 J3 @1 _* ?) B' Q" V# Z
  i* J2 y% b; Q3 u) d5 g/ [1 s有点不知所措了,请指点!!!
, A2 l4 u( v. B
" }0 F3 |2 l) d8 O8 x) P
9 S6 U4 |$ k( ~1 U8 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
' g, @6 a9 A; d' T3 ?! Y  _谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()/ R* a' j. x' R7 a$ N! z
{8 q1 T* G1 U/ R" D# B* E3 b% P3 ^9 a
    int er ...
/ t3 X6 A9 n2 q  Z5 U& T! e
你是 NX75 的吧 ( @! d  B+ S8 n9 [: s
% t6 W% u4 ?$ E" n
这个的确有问题 ,你用 选择对象 selection 代替吧 0 N! F# \0 \2 C, G" {- V: T

2 U' [+ {% i* @& |( h5 w设置一个 mask: Z3 g4 n% {/ [: f1 E

) k6 |7 e8 v5 k0 @/ o$ o; J
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了