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

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

smthan 楼主

2014-6-1 10:06:15

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

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

x
本帖最后由 smthan 于 2014-6-1 10:09 编辑 # J  z# o$ y% z. X
. v1 |9 e  s. v( a1 @
请教:
$ m/ f7 X; z) p$ A0 x       这几天在学习您的教程《23 BodyCollector选择容器》,跟着视频做,调试没有问题,执行的时候,总是后报错,还请您指点一下:
! s- M$ {& G. ?0 y# ` 1.jpg 6 p% I4 ]& [# A
点击OK后,能输出正确的信息:
0 f: j% I. s  o3 L) V 2.jpg ' {* ?* Y7 Z; x. R' M9 i
再之后,报错:
; y" R% x- V2 y/ M$ W' p3 i+ N 3.jpg
: a7 o" j: R7 \0 W8 j 4.jpg
% u/ K' ]* s: |0 ^9 B, h日志信息显示的错误:
& v: ^6 ?% l. Y8 b/ y9 N 5.jpg
6 h7 ^) [+ G, C主要代码:$ T: }% o5 d8 A8 p
int BodySelect::apply_cb()
, z5 _1 l# K$ A, b5 r- R{
" U) Z0 `7 i7 q    int errorCode = 0;
& Y+ ^. P+ l7 ~. ^# n" T    try3 ]. O  t  p+ L. b. f* k
    {
; z( x6 T  ^! c- M3 c4 U0 ^                PropertyList *pList = bodySelect0->GetProperties();6 H) J1 F: C+ b9 C. j- |4 T7 G% ?" D
                vector<TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");9 ^) x$ `# I. m# _% ^, X7 k$ q- `4 G
                delete pList;) L2 J5 u# r* k; Z) N: P
                pList = NULL;, ]% q; X5 l; u4 h! \- z
                                
6 N8 l* q  O1 T8 k& x  z7 m                Body *body;
0 |7 |0 v3 `3 c. A/ |* q6 O" m                int allCount = 0 , iSolid = 0, iSheet = 0 ;; u0 l1 m2 d( o  W. I& l

- \' f; {- k' S, h0 R# I5 t                allCount = (int)vTags.size();7 l3 y4 ]& ]$ N. H: Y' H2 R$ Z
                for (int i=0;i<allCount;i++): W2 B5 h, L; q. K1 E
                {
3 U7 y, v* U5 N3 L" u  [                        body = dynamic_cast<Body *>(vTags
);
9 u% I( Y( K0 r( i/ F: m* g                        if (body->IsSolidBody())
* W* j- x. T: G: t7 i5 o                                iSolid++;; G$ Z, b  y! `3 ]9 q* W
                        else if(body->IsSheetBody())2 d1 n2 }% b3 e" }( c
                                iSheet++;) Y. u. ], O: E
                }
! y% P9 V  D7 x1 U
" Y, B. k+ b& F* I) h0 g5 w9 W                uc1601("Read select objects Finish!",1);
* I$ R0 ]; s) C" {) {                char chs[256]="";& J' U" G3 U' m& `

# I4 G2 V. S& I. ]8 j4 K7 E6 ~7 ]6 P" B
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);3 [9 k7 v5 ^5 ^; ]
                uc1601(chs,1);! k8 i9 r8 ~' o$ j
    }
* }. N0 n! f4 W" f/ a5 a& T. F    caTCh(exception& ex)
: m! E% p" [# I- I8 u) ]    {) v) C$ L: U! \& H( T' r! C+ W7 h0 w
        //---- Enter your exception handling code here -----
4 r0 [6 l; q9 N7 ?7 {: l: f        errorCode = 1;; \6 i. v& y8 p
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox
::DialogTypeError, ex.what());
0 h- w& E& U) e    }
2 m! o8 n2 y' m    return errorCode;" C' [$ J2 w. S4 n# f+ [
}

: J* w  I- D; y
( A( y0 g9 W/ a3 e0 c3 T4 h! ]5 S1 A不知道你有遇到过类似的情况吗??
% @( a6 _3 k7 U& ^% V. H- N问题是出在哪里呢??( E, X8 K" n/ i
也没有什么内存需要再释放的呀% g; e0 e: w7 E6 w1 T

5 O% r( M7 B. k- B( u& Q2 N) n' Z( x9 Q) l
上海点团信息科技有限公司,承接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);
( r- d. l( `. v2 N5 ~! S. o5 C

! y" K! u8 Q. q  w, @: T
! z) r8 h* e# a0 c2 x# R! w   body = dynamic_cast<Body *>(vTags[i]);
" i$ Y7 Z4 {, ~- M4 }9 v% e6 \! v* b3 z

. Z& c5 j) s2 r6 u* 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 编辑
9 Q, w: R5 |. \0 {! i- h" [, C  F  e7 T: y6 J- f
谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
, N, l9 |1 X" g9 k, M# D1 X{
# ?1 C9 _' v# i0 ?( p+ A    int errorCode = 0;
8 G) Y8 g1 f; Z) @2 C8 ?1 r! ]    try, W$ u1 b6 v: u* d+ o
    {
$ i: \: O2 P; H6 n0 L( l3 G                PropertyList *pList = bodySelect0->GetProperties();, ]& r" k6 D0 G. _
                std::vector<NXOpen::TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");. U, @% |, r8 ?, ]) ]- {: a2 q
                delete pList;
; C1 Y" U' n& d2 Q5 ~                pList = NULL;/ p( A3 ~4 R- Z2 d
* l# T; U* F8 |$ ^
                Body *body;
: w; o0 U( Z8 T0 {' g: k" W                int allCount = 0 , iSolid = 0, iSheet = 0 ;
( @- R& \9 d" N4 k, W
! W0 U. Z$ n$ Y$ p2 s4 F: E                allCount = (int)vTags.size();
3 O2 w! J: ]% m$ D$ R1 u                for (int i=0;i<allCount;i++), L, ~/ ^% q) C5 l
                {
6 ^3 P3 s! v- _* z# b& Z, p                        body = dynamic_cast<Body *>(vTags【i】);4 e. `# z# C9 H6 v& |4 r
                        if (body->IsSolidBody())
' e. k7 e  L  s, j                                iSolid++;. X. d& |; Q9 H% Y' ^% K( }
                        else if(body->IsSheetBody())
# ?0 S" h6 ?/ Q3 ?                                iSheet++;( Y0 u9 k, F# @
                }# \" n3 j" u/ p- i; ]" A
                char chs[256]="";
8 q- z" p; {6 d% j/ }/ m                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);9 G6 N' s5 Y, g+ K7 f
                uc1601(chs,1);0 u( V( i* a& [) Q
    }
( I" s" k! W7 u% w) j' K, w) X    catch(exception& ex)( L. M; X8 e* \4 e: W7 a5 Y, n
    {
5 X% z4 b9 ^' A4 A6 R( N, v# o        //---- Enter your exception handling code here -----9 T% f5 R. ^6 J7 f
        errorCode = 1;& c0 a' c7 B9 q4 W6 w3 x$ i- Q
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
6 Q- X# A# e* U9 y0 b1 o8 e" G/ p    }/ Z5 T; q0 C1 f' e+ H

! U4 Q! c( \4 ?2 _+ W. c! p    return errorCode;2 }3 `* C  }. y9 `# d# D  ~  C+ S
}
9 A  X# Y6 Q% S+ u% e+ F
( l; r9 V3 l+ ^0 h) K9 I有点不知所措了,请指点!!!
6 @# M9 Y9 @5 N% D0 Y) j
- A9 d- a2 @' P9 z
% g: e0 W2 c% f- D
上海点团信息科技有限公司,承接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  Z7 X( I& l) }6 V谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()/ x. J( h2 }) d8 @
{
3 R: `* v, \9 s9 F: {4 `    int er ...
0 x5 h, w& x& ?, W' G
你是 NX75 的吧
# d; ^$ p# `% G- F5 J2 A% s- H8 @# _( O* f7 s$ Z
这个的确有问题 ,你用 选择对象 selection 代替吧 0 u3 o/ v( d# J* ]& d/ d* a5 \

0 G2 B* Q, s, D. X$ C9 t, y设置一个 mask! c+ D8 S  H! T3 K. D  `

9 M$ B- S0 Z8 y. W0 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二次开发专题模块培训报名开始啦

    我知道了