PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

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

[已解决] 23 BodyCollector选择容器

  [复制链接]

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

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

smthan 楼主

2014-6-1 10:06:15

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

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

x
本帖最后由 smthan 于 2014-6-1 10:09 编辑
& N9 u7 h: g' h0 J
. _, f" d) _! |/ E  O 请教:
% k7 u) L' |/ o7 h: p0 J       这几天在学习您的教程《23 BodyCollector选择容器》,跟着视频做,调试没有问题,执行的时候,总是后报错,还请您指点一下:
- @) q* Z! H8 ~5 c. K$ {9 P+ ] 1.jpg
+ p9 g# l- j7 }/ e$ K点击OK后,能输出正确的信息:
) C5 `0 T% a# v- A" J9 c- o; o! R) m 2.jpg 6 y1 [/ e' ?9 U- J2 a# O
再之后,报错:
; Y' d2 j+ I- }# |/ C1 |0 D# R 3.jpg
- |* z! S  Z# e# u 4.jpg 5 _3 R" c. ~0 x7 r/ F  B
日志信息显示的错误:: }6 S; X7 V* b- N0 v
5.jpg " P3 W2 n6 u% Y/ J, A
主要代码:
. S! C! Y0 V" y) ?/ ]int BodySelect::apply_cb()$ o$ b% n) n; Y1 N  x
{9 W$ G# M/ K0 v. E& a5 ]
    int errorCode = 0;
+ J' g- n- }8 M6 ]5 S    try  ^9 m. V2 I8 Z% S
    {5 H2 C2 G, b4 z
                PropertyList *pList = bodySelect0->GetProperties();
, t3 `3 X% g5 N) r, H  b: C                vector<TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");/ o* M  x) T4 R
                delete pList;
- \6 y# U  Q2 E: A) v! J                pList = NULL;1 g8 h  g( P& [( A" N0 g
                                ; ?, z+ R# _( I
                Body *body;# L9 U+ t8 p4 h2 A
                int allCount = 0 , iSolid = 0, iSheet = 0 ;
; l# ^0 G' _2 w1 o7 ~: q
( l% E- G1 K2 @+ O" }5 m                allCount = (int)vTags.size();; [% w. }8 f! e+ F8 Z3 `
                for (int i=0;i<allCount;i++)  t, o9 h3 Z& [& Q
                {
) w9 `* U. x$ o  y" d                        body = dynamic_cast<Body *>(vTags
);7 k, T4 X: G' {- q
                        if (body->IsSolidBody())
6 I6 k# p/ r5 }                                iSolid++;3 K( @5 R3 ?& a( ~- r( V, g
                        else if(body->IsSheetBody())
, P2 {0 ?0 k8 u3 _                                iSheet++;
4 A8 ~* ]! t7 x( C+ \5 q                }/ S6 f3 f- v- b0 l- ]3 u+ c) ^9 D
$ `# L) w* e2 Q! W
                uc1601("Read select objects Finish!",1);
3 \5 k9 E& P0 S% n+ E                char chs[256]="";
& e3 {4 X7 G8 @( V$ {% g3 `; J: {$ L. B- k7 X) ]8 m

2 k# P& a1 u6 d6 ?7 d1 L                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);
, j! m7 U7 X  o8 @) J6 x. C) t% k                uc1601(chs,1);
% ^+ f) Y& ?9 M5 @7 b6 G) N1 t    }
, t/ x6 G/ p5 s  C  O' n' V* a    caTCh(exception& ex)' J* @8 l/ o$ Q
    {9 V# Q! l  X6 R
        //---- Enter your exception handling code here -----; @, T8 H0 |3 m/ w
        errorCode = 1;  s9 L  B1 z" Z- v9 C" f
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox
::DialogTypeError, ex.what());
0 \5 b- i9 _8 {* a. F    }/ e' i+ H, w' d2 Y
    return errorCode;% }' i% p5 h4 m* P
}

/ V) P& ]- r( B9 ~; c" x
! }, v* ?& N. j' D不知道你有遇到过类似的情况吗??3 r/ E# r* Q  ~0 B/ x( F0 K
问题是出在哪里呢??0 t1 A* g& J2 U8 L# G9 K$ ?* u
也没有什么内存需要再释放的呀; R) i0 c+ M# }+ L
  Y1 G* U% U  n* M& {9 ~! `2 Q

( T+ I  w& O3 B3 L2 j, o, x8 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); * c7 l: i# }, w0 W% ]& d2 E
5 F0 d9 Q7 L* C" i- p/ k5 l
0 k) j0 M  C/ t$ f
7 o; `0 }8 z  @; ?8 H% \4 \0 c$ W
   body = dynamic_cast<Body *>(vTags[i]); / W2 @! r3 o! R7 c* f. G
4 S1 u  o! I% B) ?  m" F2 q) g
& {% k2 a$ W; y& J. L9 E% s9 m" 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 编辑 ) x$ w2 V" E; @: ]  I

4 m8 \2 W7 ?* T- K谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
/ V0 t( D- M  U( I! \{
: P2 @5 ^. {$ `* V  y    int errorCode = 0;7 p( J' I% v" \7 ~0 i
    try' L+ j2 t: R  N4 W' t  Q
    {- `  V  s) A8 [, B
                PropertyList *pList = bodySelect0->GetProperties();/ k5 [5 O! Y0 r4 b; x: g% b: U( F
                std::vector<NXOpen::TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
$ w3 B: I4 W: A" w$ Z                delete pList;5 ]+ m% |+ {/ I
                pList = NULL;4 t6 _" B1 ?: \  d( K0 i

: }% F% n8 G% c                Body *body;
8 W8 \8 E$ q/ U6 Q9 q                int allCount = 0 , iSolid = 0, iSheet = 0 ;
! k/ [% ]/ o/ r1 [
6 E6 t* H3 F- i# ~                allCount = (int)vTags.size();9 I$ X. f- L3 q, u* {" R* W$ U
                for (int i=0;i<allCount;i++)- o, f  N/ F* \& T7 C, R/ `
                {
1 R1 L+ E3 B% t, {4 g                        body = dynamic_cast<Body *>(vTags【i】);. s( e6 f$ s! {; j3 J& w
                        if (body->IsSolidBody())5 M/ w+ s( V- _  e& [# H* i9 r
                                iSolid++;2 h8 J1 j7 f+ f" ~7 |5 r% w" O0 [
                        else if(body->IsSheetBody()), K: l* v( q, `# `# v
                                iSheet++;2 ~- ?# U/ C& h+ U- n
                }* B1 m9 X+ E4 G; e
                char chs[256]="";
+ J. ?0 u1 k* ?* v% K                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);
- ]! P: E7 K1 s                uc1601(chs,1);
* X9 i$ m/ u7 |. C2 ]    }9 l5 k" B+ V3 S: i& L& X
    catch(exception& ex)
9 i3 f7 I0 T3 T    {! L, [( W6 q; `: w9 l) }& R
        //---- Enter your exception handling code here -----
1 b; H, r2 \; I% J4 F( {$ T% o+ B) ^        errorCode = 1;4 S5 {1 |& q& j4 b, t
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());8 i- {3 W+ t  C% D; c8 k
    }
- D6 J/ I9 c/ K" G  z
" P% f, E! j' X    return errorCode;
: z# w# p" Z0 |0 Z4 v}& E! |2 N& ~8 m% h$ {

1 Y- E- Q! k, z. W! Z有点不知所措了,请指点!!!
( M7 M2 _; v1 w! |0 J
! u" u+ i3 V; B: c1 o7 y2 f' ~2 Y6 ~
上海点团信息科技有限公司,承接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
: A" Y3 d+ G. ]9 I谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
: B1 H2 g+ o6 \{
5 o& a; j0 V& J$ h) L    int er ...
6 R6 q- {6 u9 V) t# J& r
你是 NX75 的吧
" e5 P) T& ~" @+ ]* O# Y% t2 H# p+ X4 _4 p# e
这个的确有问题 ,你用 选择对象 selection 代替吧
5 P' n# L: w: w' V
* @# T1 D2 m4 T( g' _! e; \; M设置一个 mask
; k3 {* W8 ^* K4 I3 ]' P7 Y! x
. `0 W6 G7 T+ s, }" [# d5 u
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了