PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

[已解决] 23 BodyCollector选择容器

  [复制链接]

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

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

smthan 楼主

2014-6-1 10:06:15

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

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

x
本帖最后由 smthan 于 2014-6-1 10:09 编辑
& O8 W" E( d) w1 u' ^4 E
- Y& @5 Y" \. P- V- p 请教:3 S8 E1 m8 M  T8 \
       这几天在学习您的教程《23 BodyCollector选择容器》,跟着视频做,调试没有问题,执行的时候,总是后报错,还请您指点一下:1 V  Z  [# A8 {" b
1.jpg   O$ b! X2 }# |) s* ~( O
点击OK后,能输出正确的信息:. p0 H5 a* n2 Z# M- B
2.jpg
3 ]2 N7 H4 g/ ~5 w8 |9 T# S8 X再之后,报错:: \; L4 q8 ?4 j6 S0 `
3.jpg
# f( ?" N% a, \7 X( c7 X9 |+ C+ y7 `4 [ 4.jpg
+ e' ~4 ?* a8 R* o% k% A日志信息显示的错误:
( b1 {( z$ _6 [ 5.jpg
, S: W) U  B4 ^' Z* O' {主要代码:" l1 R# f# ^* m8 p, n9 x
int BodySelect::apply_cb()
, B0 U) i. \4 L9 J{
* _2 \! C9 t: }5 `2 m$ L; w" }    int errorCode = 0;
% S0 v. o8 s2 S* F5 y# e1 Z- k    try( Z% p6 \. C# H  ?
    {
- Y+ |5 N/ u0 _                PropertyList *pList = bodySelect0->GetProperties();
5 s% _6 p5 U+ q6 x+ |                vector<TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");! o! P& }: }' U2 P8 }2 X' k! ^$ Y
                delete pList;, s5 Y" }8 v3 a
                pList = NULL;$ i) b2 L- J' b) |/ @, j( l
                                ; Y4 i/ T5 o0 ?# D  q/ ?
                Body *body;
; S1 X3 {( v- a. ^, ]# p9 t                int allCount = 0 , iSolid = 0, iSheet = 0 ;' o, f9 n5 Q: V7 w# c
# r: S5 o6 a4 v; B4 ?9 p
                allCount = (int)vTags.size();
2 k4 n. Y( b' U. O2 v- w. Z7 K                for (int i=0;i<allCount;i++)
+ m9 Y6 V7 q3 m                {, Q! i9 c( g  p1 p
                        body = dynamic_cast<Body *>(vTags
);
( P' u7 A; t: V- L6 |5 f                        if (body->IsSolidBody())
' F+ ?0 B- o% X1 C" p                                iSolid++;: y6 U0 ^: }- P0 M+ Q
                        else if(body->IsSheetBody())
! i# ^& p9 J; G# p                                iSheet++;
9 @. G& j& z& b                }
( E: d6 k6 `$ e8 o- w  Y! s7 n% m  }  F$ b
                uc1601("Read select objects Finish!",1);
) u0 @$ g4 X$ ?5 p9 E                char chs[256]="";
8 o( S" B, V' ?# v! f5 s' s1 \. y/ D! U3 M  S' `& [
+ c- @! Q0 h' K) n8 ~
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);) u: z- k, o+ s/ a- Z* {* g
                uc1601(chs,1);# h0 P; U5 o0 J- R1 ~% \  d
    }2 m3 I1 @& w. d& V' k/ D$ p2 A
    caTCh(exception& ex)
; k9 N; s* h# V- }    {( v, C  z2 I9 f
        //---- Enter your exception handling code here -----
$ T; K3 O; g3 g. K7 a2 j8 f6 W. n        errorCode = 1;2 S$ {* N7 w$ S2 l, n
        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox
::DialogTypeError, ex.what());. C: Y$ b: [" k+ {3 M* S- p7 T
    }2 ?3 g4 V: W( q& g8 a3 F
    return errorCode;! h$ Z9 ]8 P, {3 p; I! W
}
+ e" D" w* G# J
2 G5 _3 U  U" H8 F% \7 R
不知道你有遇到过类似的情况吗??) M, a8 r- ]+ S4 ^/ n# T  k) v
问题是出在哪里呢??
8 G. x4 @9 W' x- P/ K% }- L6 Q也没有什么内存需要再释放的呀
9 L! m/ n& s: G0 r. v  o
  c* {$ p5 Q- q  ?' m' ^# I; [0 |: f
上海点团信息科技有限公司,承接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);
# Y% O. d; a3 h* [$ S: G, b6 b
; Y9 y5 Y9 ?8 G- P
' z$ }+ _% }' l' s: L$ p# u' _7 ]- q' a5 Q9 H
   body = dynamic_cast<Body *>(vTags[i]);
( ?3 U! _7 h% k* H, J1 l8 _2 @1 P

1 \: ]" @- p  L; V9 S' o! e+ h7 b
上海点团信息科技有限公司,承接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 编辑
% W2 v( D& E* `+ Y, P5 y
+ H- [8 g6 G# I; |" o谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()- W  Z% N/ e! g9 ?! O1 P0 o3 T) h
{! w' A6 ~, V* p: t
    int errorCode = 0;
& U; o1 x4 X% V( ?    try
! M; d0 N  H8 N% r    {( {0 Y. H  c; s, t' [5 j) A7 j
                PropertyList *pList = bodySelect0->GetProperties();
" M( s5 M$ _0 {+ v: u' ~8 e" I) G                std::vector<NXOpen::TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");3 Z5 f; u7 I0 T$ t( M7 X6 b
                delete pList;
8 `1 |0 g; ]) D8 m. U                pList = NULL;
) x4 y/ z5 e% b0 x' m
6 r: x" ^- V/ @" E. p2 E                Body *body;( d2 D* q2 x* M  U) `/ r4 @% @
                int allCount = 0 , iSolid = 0, iSheet = 0 ;
! c9 e7 r) k9 W8 B3 f0 o, k; c& n. x: |
                allCount = (int)vTags.size();: e% E# @6 j3 a
                for (int i=0;i<allCount;i++)
8 Q% W$ x1 e+ x                {1 j  c& W* t7 M) Z2 g" q
                        body = dynamic_cast<Body *>(vTags【i】);& q6 V, N" v. y8 ?6 _" n* J
                        if (body->IsSolidBody())
0 c) d0 ~4 m/ u: b                                iSolid++;
& |$ M$ q/ b& p) _/ W                        else if(body->IsSheetBody())
4 d: E2 \4 x/ t- v/ c7 J                                iSheet++;0 d) S8 H7 N6 f3 s1 i
                }
( v$ u  M% ~9 N0 N+ X; e                char chs[256]="";' A- T! U  Z$ K; r) ~, Z: s& F7 ?
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);
( O5 ?0 R3 B2 m+ i4 u3 A0 d                uc1601(chs,1);6 f5 M9 u# a4 n- W6 G0 m
    }  i' v7 k7 t' b
    catch(exception& ex)0 f3 F& p" V& p' y
    {3 W  }5 X, m& W1 Y7 j
        //---- Enter your exception handling code here -----) ?4 r# i4 u  ~4 ~7 u! B( D
        errorCode = 1;
* P5 ?0 m. s% L- |2 ]- y        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
: r+ Q2 U+ t0 I- e    }% x/ X: j: Q! L. Y) o2 K1 @

; x: h0 @. b: `& }4 I8 A6 S# v    return errorCode;
/ U4 R& H6 U& S1 I  B! m}5 c- j; z  u4 L7 X8 F
& V6 H2 B1 R* z* j5 d* ~( E$ \
有点不知所措了,请指点!!!. [; o5 }1 a) P
! U3 `4 D6 J0 i4 Z4 n

  r7 x; O* b, _$ t: T
上海点团信息科技有限公司,承接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- M- |/ l8 G8 e! x  v% Z+ r& }& X
谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
( ~" d" D, Q# z: l- s{6 x7 s! M& d# e  @
    int er ...
/ \0 A. A7 K7 i, Q6 {- |$ _4 Q
你是 NX75 的吧
% h6 s% X8 @/ l% ~# q
6 r2 ?! y4 j$ D3 l& q% L; z+ b这个的确有问题 ,你用 选择对象 selection 代替吧
3 C( x: j, g/ k! Q; s
: j0 r& Y: A8 W- g8 t1 p设置一个 mask
/ K$ o# V# @, {  ]1 `" `2 x5 v$ N$ K& b: j
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了