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

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

smthan 楼主

2014-6-1 10:06:15

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

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

x
本帖最后由 smthan 于 2014-6-1 10:09 编辑 : O/ u; s5 ?3 d. L5 v
+ o9 n, S! \3 k
请教:
' E* W% D/ ^" k' g       这几天在学习您的教程《23 BodyCollector选择容器》,跟着视频做,调试没有问题,执行的时候,总是后报错,还请您指点一下:" b- ^7 ^5 L9 {  J0 ~# u
1.jpg 4 u7 s1 v. u9 D) R
点击OK后,能输出正确的信息:) V, D& V6 H2 m$ _5 _* L& n6 A" _
2.jpg
% p5 {. D7 t" z6 {9 V再之后,报错:
& w- |( L3 }3 d3 H0 E4 o/ b# j 3.jpg ( O# ~( \. D/ J
4.jpg
+ k7 }/ S  w, T  C& R. H" T日志信息显示的错误:3 L8 |1 M% Z1 |: \, E- T* X: M# y
5.jpg
* I8 _! Q* k6 k. h/ e9 L1 J主要代码:
+ x1 [! X% g# M: H8 m" F1 G6 }- b  xint BodySelect::apply_cb()( r7 a2 E: H' D9 \. t
{
9 d* t! f6 [2 t+ L& n2 }9 T    int errorCode = 0;
1 L6 h/ E& z4 ?2 X, F: G    try
- Y, l9 }& Z4 z$ b4 R    {
% J9 G# X# [' K, u9 t( s4 H' p                PropertyList *pList = bodySelect0->GetProperties();! {* m$ f" C9 O
                vector<TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");% w- N+ i2 V$ h5 K4 t7 Y5 u. X
                delete pList;
0 o; x9 |: z9 d                pList = NULL;
9 Z9 o- u2 R4 @9 r* N4 S. k                                ( R* l* {5 Z1 z- y  N  o
                Body *body;
0 g( ]  Q( y. \, l4 Y* \                int allCount = 0 , iSolid = 0, iSheet = 0 ;
1 E# W6 ^* s3 S9 l' _' u' c
, C; s) S% i- z6 \                allCount = (int)vTags.size();
7 Z7 P# f0 ]) W$ C3 Z: q( ]                for (int i=0;i<allCount;i++)% K0 R8 C# G% x1 _% g, U" }7 W( [
                {4 l5 |  a* @" K+ X
                        body = dynamic_cast<Body *>(vTags
);
) J4 Y! n3 {0 y% e- n                        if (body->IsSolidBody())8 q5 d0 S  ?9 k% M% y& a' a: J: Z
                                iSolid++;
& p1 t- P, o- T- r& ]8 Q                        else if(body->IsSheetBody())5 G) V7 Z8 T" y( s4 f
                                iSheet++;- D) `( E" }3 t  k+ Z5 w: |
                }5 Y2 J9 d+ y: y8 d1 r" m4 e

5 b! d$ a5 z, g                uc1601("Read select objects Finish!",1);' A4 k9 e3 t2 Y3 U# K) h2 u, ]
                char chs[256]="";' h. N7 k& I+ B  E9 M

  c) b/ C) `) a2 r4 |+ F; P3 j& l4 m, Z8 R" j9 m" u/ s% t
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);! @. x3 q3 C( |3 c1 q5 r9 b' N
                uc1601(chs,1);- {9 |: U/ R; ~( l: O2 h
    }
; D: l8 m) L  ]6 H. g, X" V7 l6 Z    caTCh(exception& ex)
/ O) i& R4 O0 Q( B% M! d6 a    {
1 X! T* h# E6 @) x$ R        //---- Enter your exception handling code here -----
1 g" A) K' B& H        errorCode = 1;
! m' X* U/ ^) r  l0 F% b        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox
::DialogTypeError, ex.what());
; V2 i( S5 F5 Q' Z0 X3 m$ h    }
. l9 Z8 G/ P2 f% ]7 d/ i. P2 G    return errorCode;
% M6 |# k* _6 _& ?}
& O  G0 t; _  g, X, l, {, s, o

2 ?% K+ ]4 m/ Y% l不知道你有遇到过类似的情况吗??' K8 W3 c4 w( }8 t5 U; h6 b% ~
问题是出在哪里呢??
& N, j) B; [& w* u* e也没有什么内存需要再释放的呀
- B3 S' p- l  N" Z; T2 U2 ^/ p
! n- P, g7 O: X2 m
) g& I+ ~) C6 }2 h% y
上海点团信息科技有限公司,承接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);
0 p# @3 f( R4 T# q8 {
+ W  j% r/ E, ?! O& E1 V$ A) m( `, M( e. |5 d

0 h4 e* U) X% U3 @& ?- Q8 U   body = dynamic_cast<Body *>(vTags[i]);
: ^' F5 S5 r( T, U1 D5 w5 }$ j4 z; V! J$ r6 h% }8 m. L+ \
9 v9 ~; `& O5 Y9 c1 G( q
上海点团信息科技有限公司,承接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 n5 f) R+ |3 z  g0 x
9 l4 _# ]1 J4 a% z# f; y
谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
2 K. _9 w# X# ?9 _$ Z; M{4 b$ A% O7 R1 k4 z
    int errorCode = 0;
" |5 W0 O3 U  I. c9 ]+ l7 L    try
/ n1 g( Z" g* j' L) G( V% t* d; w    {, q% L, Z1 o: s' |) N% @8 u& N
                PropertyList *pList = bodySelect0->GetProperties();+ \2 `/ O. b  [
                std::vector<NXOpen::TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");! g4 Q, d! b2 p3 ^- A
                delete pList;
% F. P  g, ]' U1 U' O  @, n7 R. Q                pList = NULL;6 k' }2 v4 D- E
% Y% k, J/ O; F1 T+ _/ i
                Body *body;6 S5 x' @: V. m( E
                int allCount = 0 , iSolid = 0, iSheet = 0 ;# x6 n: {( H- B

- Z. h8 h" u3 r! t                allCount = (int)vTags.size();
9 u# F2 V2 L; Z( c6 ~5 I5 D2 ?                for (int i=0;i<allCount;i++)
: |) F. ?# i! u  F, B# J) ^                {
3 @5 ^( p$ d6 N, q- l  s7 _                        body = dynamic_cast<Body *>(vTags【i】);$ d: Z6 F1 {" ~* c( z
                        if (body->IsSolidBody())
  y( E2 _, X! l0 c4 X% S9 w                                iSolid++;
  l! ?1 P4 T( f$ V9 p& P# D: b                        else if(body->IsSheetBody())/ z- ^0 }' N4 F7 K% r
                                iSheet++;8 M2 n$ p* f- d& A. ^6 Y* f# d
                }& k% |3 R9 m  f3 s& @  v
                char chs[256]="";
  ]8 |7 h9 m$ |2 s6 N0 V                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);  f4 o% z5 F3 @
                uc1601(chs,1);7 v3 g2 A' B* U3 P
    }) ?. e% p/ e5 f4 K5 s- C
    catch(exception& ex)
, ~- B! O! P, H* {. q; `+ L! o    {5 g+ F5 w+ k; ?4 \+ c$ j; D7 R, `
        //---- Enter your exception handling code here -----( i; |/ i' ?" v5 [1 V! Y$ |  ~& M
        errorCode = 1;
6 _( e. C' O7 z6 T* H  L( H        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
* d9 n  v; i! z) f    }/ f5 H+ Y& U/ P, G5 a

" e' k0 b  V: G1 w    return errorCode;4 `. B5 }6 `0 O) a+ _; E
}
$ @& N& v7 t& ^, m  P- `9 \- N3 w  d% E* A
有点不知所措了,请指点!!!
9 i: e) [9 c# O5 X( E8 w, X* t( v3 |7 T
8 }3 r) t3 k$ m/ L; N  P! Y: N
上海点团信息科技有限公司,承接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:142 [9 a0 q- y! G+ {# p
谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
4 H. B+ g1 ?  y* x2 p) `* Y{! f0 a1 t0 {9 D
    int er ...
. T" \( ]# p8 V/ |! f
你是 NX75 的吧 0 N/ ?* d7 S1 Z# j) {

6 U. `' a  X, {5 V" l3 ^$ ]这个的确有问题 ,你用 选择对象 selection 代替吧
+ I5 H- E9 r1 c$ K9 ^) u* z% U' r: {: s; S3 |% q+ c" W' B
设置一个 mask5 N0 w) t6 i4 B2 h0 k
2 ]/ i/ o& B. n. q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了