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

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

smthan 楼主

2014-6-1 10:06:15

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

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

x
本帖最后由 smthan 于 2014-6-1 10:09 编辑
" L; F" u# g/ B5 T5 z
6 M. o8 e( b6 s5 Q4 p3 z3 n 请教:
4 [/ ^: H( T0 B0 I+ \+ v9 @5 {       这几天在学习您的教程《23 BodyCollector选择容器》,跟着视频做,调试没有问题,执行的时候,总是后报错,还请您指点一下:
# C4 s# f) ^- E 1.jpg
; r6 h5 Z. {4 s9 T; S* @点击OK后,能输出正确的信息:. B2 ]- m$ H5 N5 _" a9 V( d. \- X
2.jpg 8 R: u: \% w9 ~( k
再之后,报错:
# m+ h# y+ J& i0 p1 V+ \7 m1 ^ 3.jpg ( Q, ~2 y2 F: B& I: V: R
4.jpg
  N, Q  B! j+ O$ b. Q日志信息显示的错误:
0 j2 v  Z' ~& t  d* W 5.jpg
- f: H; p; t+ M* y1 y0 e主要代码:2 M" e; d! i. w9 o
int BodySelect::apply_cb()
6 z/ f( v! n$ g6 c3 K# l0 l{
, X. O6 [& z5 S2 A. n0 `    int errorCode = 0;! U4 u# t+ b9 \2 x
    try
1 V' W% \4 v7 I6 f6 u8 J    {0 y! H( b& g' K- d! |* I
                PropertyList *pList = bodySelect0->GetProperties();
# G3 T  a4 u$ o% b                vector<TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
( ~8 L5 R5 P- g4 w0 c3 D( E) q: R                delete pList;
, `  C$ t  s; U5 {                pList = NULL;+ v; c$ A, O8 ]/ l; X2 Y5 z& L; {
                                
, D1 L7 {' X* o. J                Body *body;& i" y: Y* E' A/ @/ M2 R( K9 A
                int allCount = 0 , iSolid = 0, iSheet = 0 ;4 [' e& P  j' @' F
) _. K# O- G0 k! y6 y
                allCount = (int)vTags.size();
3 U' `7 A1 }* b& d; l( I& F                for (int i=0;i<allCount;i++): Q& o4 r" S& S- E
                {9 Y9 W& r. T# H. u: h
                        body = dynamic_cast<Body *>(vTags
);3 C( G2 ]$ C! x* V! d1 e7 j) N
                        if (body->IsSolidBody())
3 p. h6 g+ B" S; ^( F& M                                iSolid++;$ A; I4 q7 F4 q4 E5 g
                        else if(body->IsSheetBody())
( _$ M) h' H1 L# h3 J                                iSheet++;
# a) Q& V* L9 m: p% |: Q9 b                }
& P0 ?2 t: X" g+ T: t9 H9 \! c: f6 m7 B1 o. K6 m
                uc1601("Read select objects Finish!",1);! a! L; E9 C! l4 H
                char chs[256]="";1 f6 n# Z$ Y" `# W  J

# c6 ^7 p7 g0 K$ v6 f5 g2 K
7 t- s' k' P- B1 b! Q( y! w                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);
/ t; X( |. W  |- @2 o' O1 E  |" r" P                uc1601(chs,1);+ _; Q. R' P1 r+ E+ ~( x7 F
    }
. R- W: a  e# `3 [4 K. O    caTCh(exception& ex)0 z- J% |* [. N! ~9 K$ N
    {7 o+ M' r6 u1 d- D
        //---- Enter your exception handling code here -----0 K' M8 ~! T1 E  Q, N+ W& S+ u
        errorCode = 1;" U+ W& B; m, k1 m
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox
::DialogTypeError, ex.what());
9 [  \9 A, R9 A% M4 }    }
9 r# ~- j( K: S! A% q4 l; Z: @; C    return errorCode;! Y/ ^8 [6 N' r) L3 c1 k( _
}
6 A, O- H( ~1 H

3 r+ }, \8 J/ @$ s  Q4 G不知道你有遇到过类似的情况吗??
  |# I# S' G& R. f问题是出在哪里呢??8 m0 h6 k( z! ^; c- o% y" L
也没有什么内存需要再释放的呀+ n6 d8 l$ Q2 b; Y

; k8 I) b4 P+ E
+ a9 p+ e2 l  Q1 b6 d
上海点团信息科技有限公司,承接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); 3 L5 E& f' N! P; o* }
* K2 B3 z6 U! L7 a
, j, Q* B! ^# t! |2 j

* k0 O8 K* ~" E   body = dynamic_cast<Body *>(vTags[i]); 6 K! v/ H9 V/ Z, z2 C* }1 w
- `0 C; m! c* f3 ^3 T& ]

! J+ M1 Y) `2 A: U$ S
上海点团信息科技有限公司,承接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 编辑 4 K7 L" u  ]/ ?
& V1 x% F/ |& X8 I4 R+ c! z+ l
谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
' a5 [. T, A! J  S* Z/ ?{1 O9 A5 y& O. T+ a$ k$ k0 M# d
    int errorCode = 0;- z' K8 b. e- G5 g% o
    try/ p. S0 q" @5 X, b
    {
5 u/ Z2 c6 W2 U3 j                PropertyList *pList = bodySelect0->GetProperties();/ ~  L& g& N2 [
                std::vector<NXOpen::TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
+ D: R3 U, t9 D" G8 o; N& {" G; |; B                delete pList;9 D  c# u9 G0 y" \% [- e
                pList = NULL;, ~  ?5 ~5 k* t9 s& B0 R0 [4 O( Z) r
. q2 `. p) ?' C( i: ]0 L- R, h9 j
                Body *body;, \6 w( X7 N, U/ A0 @$ ]% ~
                int allCount = 0 , iSolid = 0, iSheet = 0 ;
- }# i7 t, v# O7 O1 W9 ?7 p4 W8 G
; s: S! `( j6 o                allCount = (int)vTags.size();9 v: c6 r: R+ ?. @
                for (int i=0;i<allCount;i++)
* u! |' \$ z1 M7 y                {
. u' Z0 g9 h  I                        body = dynamic_cast<Body *>(vTags【i】);
$ h1 `, Z# f+ m7 H2 z                        if (body->IsSolidBody())# m+ I! a8 m% k9 G8 D5 U: Y$ J
                                iSolid++;9 I7 D- w8 n; V7 s; J
                        else if(body->IsSheetBody())
: g$ \: m' T, l5 _                                iSheet++;
5 X3 b5 @. I, c                }
2 p( b" m: X* @3 e7 Q5 x# f9 K( w                char chs[256]="";  \' J) h  R! a( I/ `2 C0 S& I8 a1 t0 C
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);6 [# g5 F5 N6 R& H6 f
                uc1601(chs,1);0 G  \0 R  z) N! x" ~  ~% X
    }$ e( p% g/ [# \2 ?* u3 ]
    catch(exception& ex)
6 ~3 U1 F* z4 t4 Q    {
. G* S+ {6 i5 [% c5 Z1 q        //---- Enter your exception handling code here -----
% }0 W( b, f2 ~8 L8 j        errorCode = 1;
3 _9 D; p% N; U% m$ ^        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());# O  a+ Y: f! P9 H. C
    }
' z9 O: i" A& A! {5 X. S" G0 L- u7 v, `
    return errorCode;6 s( e6 e" y) f* Y
}- [9 W2 ~& j5 m" a0 T! T
7 S) }. p0 m5 h. b# j
有点不知所措了,请指点!!!
# e( o9 S& _/ @6 C4 s$ P3 Z" `$ X4 K% H' Q6 e3 V

' t: w% [/ ]9 T! P1 I; m0 A) F
上海点团信息科技有限公司,承接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
; k, q3 k- t/ R2 E" A9 j6 M! J谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
3 p: ?/ I$ y  ?+ r. X+ e{
6 h* ~1 Z0 W: O    int er ...
! n% Y( y# Y- Z1 V( c
你是 NX75 的吧
- j+ p0 w3 K& {  V" @1 a+ D0 i
+ ]0 L5 N; i" r) N0 O! V& D这个的确有问题 ,你用 选择对象 selection 代替吧   I# z; V6 L* x- C+ z

* o" c8 ?5 P8 E' u3 v3 E设置一个 mask
8 t# c& N1 y0 s, X
. U7 s) \/ N( D/ Z9 v! l* ]4 p
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了