几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   DirectDWG (http://www.dimcax.com/hust/forumdisplay.php?f=89)
-   -   【转帖】how to init drawing using template (http://www.dimcax.com/hust/showthread.php?t=16717)

yang686526 2009-05-06 02:54 PM

【转帖】how to init drawing using template
 
how to init drawing using template
how to init drawing using template
i have input drawing and want to use it as a template for output one:
code:
pdbin = svcs.readfile(...);
pdbout = svcs.createdatabase();
// populate output drawing
...
pdbout->writefile(...);
got an error message trying to post an entity:
code:
oddbobjectid newid = pblocktblrecout->appendoddbentity(pent);
quote:
"oderror thrown: already in database"
which does not have any sence. so, i'm guessing, the output drawing database is not setted yet (layers? line styles? ...).
odwriteex sample shows how to populate new drawing database.
is there an easy way to copy structure from one db to another?
thanks,
gok
life would be so much easier if we could just look at the source codefff">fff">
why won't you just read the database directly into 'pdbout'?
to copy some objects from one database to another use wblockcloneobjects()
vladimir

thanks, vladimir, for respond.
well, right now i'm doing the same thing: reading dxf in input and output databases, erasing an entities from output. drawings are relatively big, so double reading the same data looks rather silly.
straight approach to create empty output using input as a template would involve huge
code:
if (...) then
tree for each blocktable, layertable, styletable, ...
my hope is it could be better way to clone database' structure. "partial" flag in readfile(..) didn't help either.
any ideas/suggestions?
life would be so much easier if we could just look at the source codefff">fff">
what means 'structure'? everything but entities and blocks?
vladimir

yes, vladimir. all but spatial entities.
and after couple tryes this schema looks like working fine:
code:
pdbout = srvcs.createdatabase(true);
pdbout->initialize();
...
pdbin->wblockcloneobjects(ids, pdbout->getmodelspaceid, ...);
...
pdbout->writefile(..);
thanks a lot for you support!
life would be so much easier if we could just look at the source codefff">fff">


所有的时间均为北京时间。 现在的时间是 04:11 AM.