高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】blocks forever
blocks forever......
blocks forever......
hi! i'm here another time.... well now my software is able to read and import any kind of blocks, and also put it in reference on the model space all seems working well but......
yes! i have some problems because any kind of colors are missing!! it may be i have to do something but what? i have explored the file and i discovered that the oddbdatabase::insert(..,..) functon doesn't copy the reference to the layers but.... it copies the layer in the database! what i have to do?
another think... in the copied blocks i have some attribute definition, why i'm not able to see them, in the database they are present.... i looked them with your odamfcapp!
entities from one database can't reference layers from another database. so insert() functions copies layers from original database to the target (except layer 0).
could you describe your problem with attribute definitions more detailed or send me a sample file?
sergey slezkin
blocks forever.....
i made a function for import a file like a block onto the active database. all is working well, after the work i have a new block in the database, i have also the layers in memory but the entities in the imported block are all on the layer 0!! here the code:
bool cstscr::adddraw2block(lpcstr inpath,lpcstr blockname)
{
try
{
if (!m_pdb.isnull())
{
myservices has;
oddbblocktableptr lc_pblocks = m_pdb->getblocktableid().safeopenobject(oddb::kforwrite) ;
//controllo che il blocco non sia gi?presente
if( lc_pblocks->has( blockname ) )
{
trace1("adddraw2block:block %s already exists in the current database!\n", blockname);
return false;
}
//legge il file che contiene i blocchi
oddbdatabaseptr bk_pdb = has.readfile(inpath,false,false);
if (transferblock(bk_pdb)==false)
{
trace(_t("adddraw2block:non riesco a leggere il file [%s]\n"),inpath);
return false;
}
m_pdb->insert(blockname,bk_pdb);
bk_pdb.release(); // delete the database before odunitialize() is called.
lc_pblocks.release();
}
}
catch (oderror& err)
{
return false;
}
catch (...)
{
return false;
}
return true;
}
thanks
which version do you use? i failed to reproduce the situation even in 1.07.
maybe it happens with some specific file?
sergey slezkin
thanks
hi sergey,
i was use the 1.6 version but three days ago i have downloaded the 1.8 version and at the moment i'm working for rebuild the original version because it is totally different but as i could see this afternoon it seems that the colors are correct! i think monday i'll finish to rebild the new version and i can made the tests. many thank for your cooperation
have a good sunday!
|