查看单个帖子
旧 2009-05-06, 02:54 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】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">
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)