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

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

smthan 楼主

2014-6-1 10:06:15

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

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

x
本帖最后由 smthan 于 2014-6-1 10:09 编辑 : `: T) t! t# @3 l# Z& V( j3 P/ j: z
# m% `! w- z+ ?5 t2 Q
请教:
8 r5 v% s; c7 Q- V) ?       这几天在学习您的教程《23 BodyCollector选择容器》,跟着视频做,调试没有问题,执行的时候,总是后报错,还请您指点一下:
7 D3 |" t3 X/ q+ j! ` 1.jpg 5 }" J2 ]. ^4 X1 \! b
点击OK后,能输出正确的信息:: \% J- ]. y  G$ A1 h% l- }
2.jpg
% K9 h" a' ?$ m; o8 [再之后,报错:
# g, e3 Z# v9 }$ m8 N8 p4 U 3.jpg ) R! r) m# d& x4 k6 X- n  o9 ^( [7 v2 z
4.jpg
2 h5 c; A- b& G/ J: B; |9 u日志信息显示的错误:4 Z* _* X  e9 l4 P7 J
5.jpg ; |: z7 D) z. c% D, M; @5 ]# g! O
主要代码:
: W* q! c/ B9 O2 N0 r/ Qint BodySelect::apply_cb()
( Z& q; \6 ?" i& B{  A7 h( W* r2 `' F
    int errorCode = 0;, ~, ~7 s+ L% P% \2 @
    try
3 i% {$ q- U  I5 M6 }$ E( [1 Y1 b    {
9 W" w4 R1 U1 {6 O# r                PropertyList *pList = bodySelect0->GetProperties();* l# E% I6 N, j, w, [% V
                vector<TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
5 }; ?& {) `8 p6 u                delete pList;; @: L4 M, n8 t% I; `: w* J
                pList = NULL;2 v" `, V. o% E5 z$ B9 D; p9 Z
                                
* |' c: y" x5 a- y                Body *body;
) @' b+ y8 D' _+ w5 J5 y                int allCount = 0 , iSolid = 0, iSheet = 0 ;
" O7 e* ~- F% E' U8 P- }7 X! j" a9 ]% p
                allCount = (int)vTags.size();3 ?' F$ K& `% |4 r9 g
                for (int i=0;i<allCount;i++)
  a" x4 j. }1 Y                {  q4 ^( ]# @- @
                        body = dynamic_cast<Body *>(vTags
);9 s% j  [+ h" ~* w
                        if (body->IsSolidBody()), h) b3 M  H3 l; u% m5 h
                                iSolid++;- Y# x1 }& g5 E5 |3 S
                        else if(body->IsSheetBody())
  y5 e; e9 d. S& [* a/ k                                iSheet++;: v8 l& w; g: s; r
                }* n) Y" z$ m0 q# Y/ ^% p

- j9 q$ `$ i$ S7 W: x% N$ g2 M                uc1601("Read select objects Finish!",1);( [4 K& P* n- i7 H! R& _
                char chs[256]="";% \" A' k4 j+ x3 X# g$ }" X

1 c3 t+ F% ^: F% Q' q& R
( |" l1 p# l- |! S                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);
3 r6 F+ J" l) f6 p                uc1601(chs,1);! x/ Q* S8 Y6 \# e: S( h
    }4 C: r! G' K5 t, V8 g
    caTCh(exception& ex)
3 {6 c" C. U4 H0 [$ K! [! o    {8 X; l1 D; f" U, V# r8 n# l3 F
        //---- Enter your exception handling code here -----
2 F8 P' A) E+ }1 o1 y7 L3 |        errorCode = 1;
8 r  m6 k* J' B: ]) F# Z2 g. t        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox
::DialogTypeError, ex.what());. l! g3 {) D4 S. W" \' S
    }1 f0 Q* ]* {( R, i  @  ^8 Q8 J
    return errorCode;
5 [0 }! N% E; v$ O" M}

' G$ N4 T% N; d1 P/ I8 ^, z1 W* p7 c; Z
不知道你有遇到过类似的情况吗??
0 E- S, ~- o  u, h. ]7 d; F问题是出在哪里呢??2 q) x, |8 x! ]$ I; W
也没有什么内存需要再释放的呀* Y8 T3 K1 [$ J) l) e9 C8 I6 U- p

0 b$ y1 N6 s2 d
. c6 _" S' v/ {. K0 }" Z
上海点团信息科技有限公司,承接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); " W9 y4 }1 K+ \

! [) ?* u8 k  R6 i) N/ o2 b, B6 f& j, M3 w, ?# N

- b1 s3 f$ w6 Y' h8 G/ \2 s( T1 k   body = dynamic_cast<Body *>(vTags[i]); ! L' C7 d' @: ~6 R6 u$ |# E
# m& Z% p- M+ ~4 a( ?" L! a
/ {, W0 W7 i, S& Q' @' j( 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 编辑 9 U1 ~+ _) m# c, l% k

1 V+ y7 T$ J0 U0 @; x谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
) y) U7 ~5 @! K* K* {{% l. p  g8 W4 s5 C/ y+ l8 w2 d
    int errorCode = 0;0 W( ~4 W2 h8 ]+ {: E
    try
8 h' @! {& E; _1 i3 b    {) X* I: U. F) n/ I8 c* ~
                PropertyList *pList = bodySelect0->GetProperties();
  b! Z" V5 O4 B                std::vector<NXOpen::TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
5 |6 b" T( ^& U% K6 W; J( R: V                delete pList;2 @9 ~+ O6 T2 i/ `9 q; P: P
                pList = NULL;& f# _7 V0 H$ b- D4 M7 l

5 E# t" C# b4 G% v8 j% Z                Body *body;
' P( }5 M2 g9 X                int allCount = 0 , iSolid = 0, iSheet = 0 ;
5 l# X1 @! V$ P% ~0 |
( V. z6 e9 c' |1 a5 H                allCount = (int)vTags.size();+ v; O9 u0 w& Z8 l  v9 ~  U
                for (int i=0;i<allCount;i++)- J3 |2 b" d7 a2 T0 @
                {/ J/ G7 ~3 w5 P5 i
                        body = dynamic_cast<Body *>(vTags【i】);" T; x- ~0 U7 S5 K% ~$ ?1 F& Z9 y
                        if (body->IsSolidBody())5 Y5 w* l$ ~' K# ~
                                iSolid++;1 Y5 w+ I6 {( j1 L
                        else if(body->IsSheetBody()). @$ X" s5 C/ r
                                iSheet++;4 j% E9 ^  b2 q% A! _
                }
  t) T" ^& s- v: ?5 y                char chs[256]="";+ `/ S6 F1 j0 p! H9 S0 E
                sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);6 R& g+ D% q1 l: v
                uc1601(chs,1);: P; @- J- g( E3 L# Y4 n2 p/ w3 z
    }
. o$ |; M4 U& A& v    catch(exception& ex)
' N2 h2 m3 s8 g7 C0 z8 G; V    {% \, }4 x! l( h- |- p2 g
        //---- Enter your exception handling code here -----
2 l. }# {0 C3 E7 o  O; J/ x        errorCode = 1;
# {  S, _! Q' r2 L        BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
. B" Q2 }7 }3 d+ b# G    }
+ y" w0 `2 R/ o, }) Z9 K4 T  s1 I) F  l2 n( `2 E
    return errorCode;) @0 M1 W' g0 E& {0 s8 r
}+ a! B. N2 ^# ]
* ^& [9 b. ]4 |: U9 T
有点不知所措了,请指点!!!
0 }' s6 s3 n7 b; z* M
2 Q+ X' G8 k7 Q( a4 y3 }& C: f$ f; W1 \( 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
/ l- u" C+ O. g+ r; v& H& {谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
8 A" D! ~9 V8 v8 }3 j0 {{
1 O# u8 A3 ]5 t8 r' m: z    int er ...

2 z% M$ O. Y; s. Y你是 NX75 的吧 & @. [0 H" P9 c* E" }
# K+ n, M+ v8 ], D
这个的确有问题 ,你用 选择对象 selection 代替吧
& l+ B, D  X; [, e  \! D: b+ K) Y+ H: w0 r" V2 q( U! ]+ b
设置一个 mask$ t* C6 J1 G6 X( |' f3 i0 T

- o% u  [" x3 }
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了