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

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

smthan 楼主

2014-6-1 10:06:15

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

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

x
本帖最后由 smthan 于 2014-6-1 10:09 编辑
2 j4 E! U! P% C4 I! a; U. i8 H% `4 l( g9 @1 m2 X  }! A# @# E
请教:, E/ S; C0 |' V" h
       这几天在学习您的教程《23 BodyCollector选择容器》,跟着视频做,调试没有问题,执行的时候,总是后报错,还请您指点一下:
7 B3 `6 y1 k7 J% G/ Q, V- u0 t 1.jpg 2 Z, ], M: P* X* I
点击OK后,能输出正确的信息:
5 v5 n; Z2 z( { 2.jpg : U; R' a+ D3 x( X+ ^
再之后,报错:' M! W  T* w& O5 I
3.jpg
) B0 T  n7 J/ H4 ^' B 4.jpg
* ?7 M1 b- Q! A# P/ l0 U日志信息显示的错误:- u, ]0 p, [! W& c% @. Y
5.jpg : `4 G+ j0 Z$ O2 _% h. Y( A
主要代码:
# _! B; Y8 s0 p3 X" l* uint BodySelect::apply_cb()# J0 k; f8 c# R; v9 _! ^9 z+ m
{
* I; g$ F6 z: t& I, ~    int errorCode = 0;
& d, ]/ C/ ]0 f% c" J! ^5 v6 u    try4 r2 l: V, |7 s* B2 W, o- |
    {6 \& R3 p2 G) p2 P
                PropertyList *pList = bodySelect0->GetProperties();9 r( g& j7 d$ o7 M: L8 R
                vector<TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");# v8 @3 l+ h( k5 X$ E
                delete pList;
& `3 j4 m2 U$ ~6 [3 P                pList = NULL;% `8 Q% y4 s0 l& I) s1 y& Z
                                
, r" ?3 K, z! q7 g: W                Body *body;
1 _) W. [% M9 G                int allCount = 0 , iSolid = 0, iSheet = 0 ;
+ F; _- L, e/ U  [& O
$ @0 ^+ T2 W: {1 Z( {3 Z                allCount = (int)vTags.size();
+ D( T1 g5 @% I0 p/ e                for (int i=0;i<allCount;i++)7 {: P5 [# G1 K3 f
                {
0 R3 l0 Y7 U: P2 u! j$ N* c                        body = dynamic_cast<Body *>(vTags
);
/ n6 t3 ~' O: z( `( F$ k6 d                        if (body->IsSolidBody())6 H6 g! T/ b7 l( T; j' B
                                iSolid++;8 j, A% t. L  u" N, F3 r, L* F
                        else if(body->IsSheetBody())
$ p# w6 z6 ]1 }6 s8 ~: h                                iSheet++;7 [2 A% r4 ~( u% a  `$ r* C% b
                }' e/ a0 s) _. m: O  O

$ J  C- G3 \$ Y                uc1601("Read select objects Finish!",1);1 i- |' c0 h* b' \& ]. R+ c; \
                char chs[256]="";
/ D7 \  m7 j8 J+ a$ J( W
3 I; A: [0 m- y" b
  C: S; |8 Q% H! H+ Z                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);
  C* C6 j: S8 `4 Q3 r6 c                uc1601(chs,1);' w3 J5 W  W1 @6 r6 \& U
    }8 P. O+ V% J& O; x; a7 b
    caTCh(exception& ex)7 t7 g* b  `& F, h
    {
5 \1 `1 B4 K, p5 j* {2 H        //---- Enter your exception handling code here -----
, o5 A7 ~, ]5 Z7 T        errorCode = 1;8 h1 W; @  Q$ S$ d" J* z( U( O
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox
::DialogTypeError, ex.what());
) ~: s  K9 v9 m% I8 T/ u; V% W    }
7 H! T. ?+ z3 Z+ x0 Z" J6 v3 E    return errorCode;  K3 s8 q$ e6 F, y: j; x6 b7 q+ j$ V
}
( k' W: L: V' y8 G' m$ j
! ^' }  X8 D" S  N- s8 t) Q- s
不知道你有遇到过类似的情况吗??
  n+ q1 l; Z! ?问题是出在哪里呢??
: X+ T! C% ^" P6 B) n8 u* d也没有什么内存需要再释放的呀, ?" g0 R3 l* Q3 B
( ^: V) d8 G& w5 B) p' W# ]( q

) R7 n* n1 \3 [9 _
上海点团信息科技有限公司,承接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); : e9 o  L* T' S& q2 s# V

8 `3 {1 V% O3 b: f5 N# R$ c, V) ?$ y9 L  d' J
/ z3 G: U& |. b
   body = dynamic_cast<Body *>(vTags[i]); 5 e" H$ q% h1 s0 l& H( ^, }3 a
1 |3 R( T0 e8 L$ N+ M: |# e% G0 _3 H
2 T  l1 D% L, |; s' w( O
上海点团信息科技有限公司,承接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 编辑
: F" h' a0 U: ?  }, X2 ~3 g( ^: J6 u: z3 ?3 X
谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()* T2 U6 d- b( f+ v& \6 f6 ^6 i
{
1 z. ]3 N3 e6 u. Q5 Z" g. e    int errorCode = 0;
  }4 u' F. p# Q3 C# q8 M$ V    try/ C0 Y' i- C! g, R% q
    {
' M  b1 ~" J: ^+ c& T                PropertyList *pList = bodySelect0->GetProperties();
1 U& d. U( o) D( H0 I                std::vector<NXOpen::TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
9 c2 J6 W) A5 h                delete pList;
2 _. H/ _6 G' ^& p) F4 z5 f* t                pList = NULL;
5 O: {3 B$ [- u* C( H) f3 [2 E
+ ]4 A1 W. `' }  H3 M1 S. M                Body *body;8 }6 A  x, ~4 c
                int allCount = 0 , iSolid = 0, iSheet = 0 ;$ X( C0 w' B0 Q; E0 p- |

$ B0 c" Q3 N0 l$ k+ G( g, M* I) T- ^7 K# [                allCount = (int)vTags.size();! u) U) v2 o, B2 t
                for (int i=0;i<allCount;i++)) ^# t' Q! T& S6 P; p( z7 q
                {
: |% v9 d* I; L9 \% ~6 i2 m                        body = dynamic_cast<Body *>(vTags【i】);$ T! L/ ]% H; i" f- P1 T# D; A
                        if (body->IsSolidBody())
8 h/ I$ u( S/ Q0 W' X                                iSolid++;
- c9 t$ F6 I  K; b                        else if(body->IsSheetBody())% N. c* _" w: N) C! x9 _) T
                                iSheet++;; T+ s* f  a/ \
                }
* x9 V. p" E4 o1 k                char chs[256]="";. G- Z% o! K3 B- C" x2 p8 L6 ^, _' w
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);1 q& g$ L7 y. h' ^1 f; e+ ]3 |
                uc1601(chs,1);: v6 G" t" P+ J( J" _, S
    }9 ~0 _: |+ y  e% D8 b- B5 _
    catch(exception& ex)/ Z! P9 B6 ?' l( R7 E/ }
    {
0 j3 v' K: F& W; E5 K        //---- Enter your exception handling code here -----  E  X# d: G# C( t
        errorCode = 1;" {3 d8 d) r4 G: z8 Z* _
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
% J6 ?& ^9 o' b5 @, q1 o    }
( x- L! ^0 u; O6 R3 X) {8 s# X
5 [. o( R; v+ v2 s    return errorCode;
# K* q' C5 Z5 j}. [6 q: k4 j# l0 H- m6 O: V; Y
/ U: x7 n  u- s6 d5 `* ~
有点不知所措了,请指点!!!# y# m. _$ ^9 x3 d7 r5 {
) I9 m" v+ s9 M( C, }" D+ ~
0 ?9 R/ ^% W5 W1 h+ O
上海点团信息科技有限公司,承接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* z6 ?" s9 r) U5 \
谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
1 k% u5 n9 q- u* y( q2 l, v( N0 o{0 x+ c) o7 ?; q( o& C3 d1 f  G' b
    int er ...

( s. [9 F# U$ m/ h你是 NX75 的吧 1 [" z/ `3 A; u# ]" {

& S4 O- M' ]- E& f4 c: A+ f这个的确有问题 ,你用 选择对象 selection 代替吧
% r5 k7 Q: ~0 ^. B4 Q- g/ t
% q8 D& R; v% j1 C设置一个 mask; E; X+ C; s) U

3 Z! h* m4 Y  c" [1 K
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了