高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】problem in saving files1
problem in saving files!
problem in saving files!
i derived tdmentity from oddbentity (class tdmentity : public oddbentity), tdmframe from tdmentity (class tdmframe : public tdmentity )
and tdmbomitem from tdmentity (class tdmbomitem : public tdmentity );
there isn't error in loading, and i can get the data i want; but when i save the file with the "writefile " function of oddbdatabase,
errors occured. the output file loses the frame of the drawing. i found that the functions, tdmframe::dwgoutfields(oddbdwgfiler* pfiler)
and tdmbomitem::dwgoutfields(oddbdwgfiler* pfiler), were not visited;
(i append the code and drawing as an accessory, thank for your help!)
in debug, i got following errors:
---------------------------
microsoft visual c++ runtime library
---------------------------
assertion failed!
program: c:\common\dwgdirecttest.exe
file: source\database\entities\dbentity.cpp
line: 1530
expression: invalid execution.
for information on how your program can cause an assertion
failure, see the visual c++ documentation on asserts
(press retry to debug the application - jit must be enabled)
---------------------------
终止(a) 重试(r) 忽略(i)
---------------------------
attached files
are you including your custom objects in a module, and registering the objects as is done in examples/excustobjs/excustobjmodule?
quote:
originally posted by
are you including your custom objects in a module, and registering the objects as is done in examples/excustobjs/excustobjmodule?
yes. i have done them;
in my project, there is no error while the drawing is loading, and
the "dwginfields(oddbdwgfiler* pfiler)" function is called, i get the
data i need;
but when i save the objects , there is an error and the
"dwgoutfields(oddbdwgfiler* pfiler)" function is not called;
when i add these objects in "examples/excustobjs/excustobjmodule",
there is an error during opening the drawing with "odamfcappdll.exe".
the error is:
---------------------------
assertion faled!
---------------------------
expression: "invalid execution."
file: "d:\opendwg\dd1.14\dwgdirect_vc6\source\database\e ntities\dbentity.cpp"
line: 1530
---------------------------
终止(a) 重试(r) 忽略(i)
---------------------------
i want to know more about the error, so i can know what is wrong.
thanks!
you need to override worlddraw() in your custom entity classes (the assertion occurs because this override is not present).
r12 format can't represent custom objects/entities. while saving file to r12 custom entities are replaced by their geometry representation so worlddraw() is called.
if you save the file to r13+ worlddraw() is called to save proxy graphics together with your entity. this graphics is used to display custom entity if arx(drx) implementing the entity is not loaded.
sergey slezkin
|