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

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

smthan 楼主

2014-6-1 10:06:15

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

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

x
本帖最后由 smthan 于 2014-6-1 10:09 编辑
* M/ `/ m% ]; g, f) O1 c5 Z6 [% h0 l: m5 R) d% r, t/ I3 K6 q
请教:( o& d" G8 J4 b7 E( t/ a
       这几天在学习您的教程《23 BodyCollector选择容器》,跟着视频做,调试没有问题,执行的时候,总是后报错,还请您指点一下:5 k& Y) R4 d1 j0 @7 V5 Y" A6 _  w
1.jpg 8 u, D  f: I& Q
点击OK后,能输出正确的信息:# \& t' H9 J$ y, k
2.jpg ) _1 ^+ H1 N( y0 f* c  Y; D& Y
再之后,报错:
! s2 H! J' T6 T4 n  \0 M 3.jpg / j; A8 F  i4 Q' D( l
4.jpg
  R/ K+ r& }) d- E/ F& L/ {日志信息显示的错误:
" W- g9 R. K: x( T4 P, w 5.jpg ) o* O$ D, Q4 a! P4 ?# C
主要代码:/ [& n2 m: W3 F  o. a5 z4 g
int BodySelect::apply_cb()& v# B& ~5 h- I' f3 @
{: M: @' Y- J0 [; y- l) l
    int errorCode = 0;
8 ?$ f- c  D; [. ]+ e; C    try/ j' u) `: N5 L4 Q6 Q
    {
- j2 O  u" K% s7 D                PropertyList *pList = bodySelect0->GetProperties();
1 A: f- k9 ^- X, Z: Y  X4 B                vector<TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
& ^$ r# a8 K5 _3 x) X% A5 O                delete pList;( Q+ j8 a( A2 {( n- k4 a2 H
                pList = NULL;
- i) f% {8 `2 W2 q1 f& T* C                                
* N7 k6 W2 H3 X# n; ^, H, H' Y                Body *body;1 `% `3 u+ Z- M; n0 s( Z3 k
                int allCount = 0 , iSolid = 0, iSheet = 0 ;
4 y4 C+ r* i" \5 z. V
. e5 D' c5 W; E4 T( k1 h                allCount = (int)vTags.size();- G5 _0 U, i" l. p/ g1 M# V
                for (int i=0;i<allCount;i++)- \/ s0 o' _& `* E: E
                {. K; D0 k3 D4 }; U
                        body = dynamic_cast<Body *>(vTags
);/ C" o, \) B7 L, C
                        if (body->IsSolidBody())
2 I- l4 f$ p+ T  l                                iSolid++;
( Q- r! t5 j' A2 l                        else if(body->IsSheetBody())2 T, H6 ?) g1 @4 @/ B4 U* F/ d6 |3 O
                                iSheet++;5 Z2 ?/ L- {3 l( W6 y) H% I1 P# L. s
                }9 J# C6 }4 b7 T8 ^7 T+ X5 b8 E6 X
. l2 G: T0 u) P) k
                uc1601("Read select objects Finish!",1);+ L! F/ ]& k, ^$ l% N: J# y
                char chs[256]="";
2 B- j" ^8 G" t9 D/ B0 j- P( i4 m4 i8 q! J0 O* g. ~8 x1 T
. ^" D; ]. r: e# Y7 y
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);' s7 r) v1 X" {8 w) o- Q% z  T
                uc1601(chs,1);
! L+ I$ M; L$ B& ?/ E* f6 b; K1 h    }
" t# _% N9 y6 L    caTCh(exception& ex)
/ w5 c# H# t) L% c    {
. ^# d  u$ r; F1 S. A3 n6 n! k        //---- Enter your exception handling code here -----. q$ D9 v3 v6 ~& y5 S
        errorCode = 1;
% K1 u  Y) f4 t- c, m' M        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox
::DialogTypeError, ex.what());4 k$ @. t  x1 {1 l9 f
    }
/ `, ?4 U. {0 g3 Y    return errorCode;
8 D0 x. c/ s6 K+ D}

, i9 x5 h6 _4 o9 K$ }0 H) q- A' j! a8 {* I- c
不知道你有遇到过类似的情况吗??1 \) b% s; U, C- ?  u
问题是出在哪里呢??2 o8 H6 t. D8 X( Q/ C9 M! K
也没有什么内存需要再释放的呀
$ t7 Q& j/ b  F8 r' g9 d$ p/ O& b/ c1 K' s! V  a0 v" ?/ I2 t

) X& R8 q  [* b8 U
上海点团信息科技有限公司,承接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);
' k5 c) E4 M; N8 O5 M% N7 Y# A
2 ?8 f/ T5 `! J6 g
, ]) `5 m: Q) Q" m- b# i, J
# w- J/ H5 T. m2 A9 y   body = dynamic_cast<Body *>(vTags[i]); ) r4 x2 y% F" O& M% L  \" w& k

/ O, c" O4 v. D: Z3 k( M0 e" U, r* O* _& {$ J
上海点团信息科技有限公司,承接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 编辑
: O) u8 _  q# _% X, X$ D. S
& v0 H; _8 V" w+ ~5 W! \* p谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
" l% i0 N- U$ C6 E2 s7 R* V% T{
; o6 p; }2 ^" o9 Y5 A  a! I    int errorCode = 0;
8 I$ @" U8 r; X3 B    try
0 f; Y) v" B4 S' l    {
0 Y+ n1 l& F7 m                PropertyList *pList = bodySelect0->GetProperties();
: U/ J- z# Q4 Q! Q                std::vector<NXOpen::TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
5 |) n* m$ R3 s                delete pList;2 O0 Z* d, s* z- ~2 L8 N3 U
                pList = NULL;* e2 H1 g" X- a  N- o5 j

3 r% X  ^! ^6 r4 p3 Y                Body *body;
! g6 ]' s; x7 i                int allCount = 0 , iSolid = 0, iSheet = 0 ;
. y1 I+ g- m% r$ {% j
4 N3 E+ d% j( z                allCount = (int)vTags.size();
3 D) G( g  T' q; [                for (int i=0;i<allCount;i++)' m0 C" X7 e, C8 t; b4 @
                {' ^# |, q9 }' o
                        body = dynamic_cast<Body *>(vTags【i】);
) _8 u  l6 o1 X( u! `- d0 P  n                        if (body->IsSolidBody())
) q" J: R. K& y: e) E, K                                iSolid++;) a- V. |6 H9 O2 A
                        else if(body->IsSheetBody())% [7 i/ x% o7 b8 q  Y7 ]
                                iSheet++;( |9 G2 g( o/ n1 V9 n1 y& `
                }6 [" w- W/ z" H% ~' W% J/ w* F% o
                char chs[256]="";
/ \/ k3 _7 `' R( k8 ^                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);
/ x% G+ T& O; R3 z; Z# c% t                uc1601(chs,1);
6 \* _! W  h4 x5 n( I    }
$ K8 h# R5 q! [. `    catch(exception& ex)  C  a7 e1 r5 J$ m/ s6 E  g9 Q  p8 P
    {7 g$ d& d! n; K3 e0 x
        //---- Enter your exception handling code here -----
; I- |' s! s8 |' M; M9 T. @: a$ Y        errorCode = 1;' ^9 B# l" u; U2 S+ w$ a; J
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());" l% h. m2 O& h
    }: J  q/ m+ m3 {2 T5 r, y
( [7 m9 p! T( y8 M- T
    return errorCode;. j  Z) {! A( K/ u% j
}# \# `0 ]9 ^9 [( J) U1 i, ]
1 m7 G3 a6 b+ u, y$ i$ y7 v! U
有点不知所措了,请指点!!!, p8 Y) U- L4 m! V' K
" j1 J  Q! ~* z; a2 ~  J4 h& Y+ y

, k6 X3 l9 E6 Q8 V6 a, a6 }
上海点团信息科技有限公司,承接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
9 \. ~) ], r5 _! }& U: C6 G谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
/ p# e! D' {; l* ~; H" M! z$ o{
  [6 P7 ?" E' }8 t! V4 Z    int er ...

) O: U& M% Z; r8 e- y0 G你是 NX75 的吧
3 \% J! k/ Z( [+ H: U0 Y' @; w: S, D% C
这个的确有问题 ,你用 选择对象 selection 代替吧
* W7 w3 K/ z1 k# K+ r* ~. G0 U9 F  @) T$ s5 j4 [: y
设置一个 mask$ R! W5 G2 A7 H2 T# ^9 v
5 Y: U: U& P( d8 A/ v
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了