查看单个帖子
旧 2009-05-04, 03:57 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】an enotthatkindofclass error

an enotthatkindofclass error
an enotthatkindofclass error
hello!
i have a problem with this dxf file(c65.dxf) and execute this code:
{
oddbauditinfo auditoria;
auditoria.setfixerrors(true);
try
{
base_de_datos->auditdatabase(&auditoria);
}
catch(oderror e)
{
int code;
code = e.code();
}
the code error is enotthatkindofclass = 39 but i don't understand this error.
can you say me why do i get this error?
thank you.
attached files
which dd version do you use?
i can't reproduce the exception in 2.x and 1.14.02.
sergey slezkin
version
i use 2.1 version.
same problem
hi,
i have exactly the same problem with the attached drawing (and only this one). it had worked properly on hundredths of drawings from different sources.
pdb->auditdatabase throws an oderror "enotthatkindofclass".
oddbdatabaseptr getdb(exhostappservices& svcs,lpctstr lpszfile)
{
oddbdatabaseptr pdb;
// create a database and load the drawing into it.
pdb = svcs.readfile(lpszfile);
// fix any errors present
oddbauditinfo ainfo;
ainfo.setfixerrors(true);
pdb->auditdatabase(&ainfo);
return pdb;
}
i'm using opendwg 2.2.0. i tested it on 2 machines.
any clue ?
regards,
guillaume
attached files (167.0 kb, 3 views)

most probably your applications miss recomputedimblock module.
both sample files have defects in dimension entitities. after repairing them their blocks need to be recomputed. and attempt to load the module fails.
if so this explains why i can't reproduce the exception in odamfcapp.
btw, oderror has description() method which produces more information in most cases than the error code value.
sergey slezkin
since porting from the 1.x libraries to 2.3 libraries, i am having a similar issue.
i have included "dd_vc2003md_recomputedimblock.libfff">" as a dependancy in the project properies.
i have included the following lines lifted from the writeex example:
#if !defined(_toolkit_in_dll_) || defined(__mwerks__)
odrx_declare_static_module_entry_point(odrecompute dimblockmodule);
odrx_begin_static_module_map()
odrx_define_static_application(dd_t("recomputedimb lock"), odrecomputedimblockmodule)
odrx_end_static_module_map()
#endi
and i have included the following line in my initialization function:
:: odrxdynamiclinker()->loadapp( "recomputedimblock" ).release();
i have the same crash as described above. this crash did not occur with the previous (1.x) libraries. what further steps do i need to take to successfully create dimensions?
what does oderror.description() return?
i assume you link the libraries statically (non-dll configuaration).
and that where are no extra spaces in your application code - they present in blue text in your post.
sergey slezkin
thank you for your prompt response.
oderror.description() returns "object of class acdbrotateddimension can't be cast to oddbdimensionrecomputepe."
the libraries are statically linked, and the space is not present in my source code (needed to add it to avoid being displayed)
ray
last edited by rgincanada; 3rd april 2007 at 06:48 amfff">.
i'm now at a standstill with this. does anyone have any suggestions about what to try next?
definitely the problem is caused by recomputedimblock module (it behave like the module is absent)
maybe you forgot to include
odrx_init_static_module_map ?
see writeex sample.
sergey slezkin
sergey,
thank you for your help. adding odrx_init_static_module_map lead to the solution. upgrading to the 2.3.0 libraries unfortunately did not solve my original dimension problem, however. (more on this on another thread)
ray
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)