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

cant write radial dimension to dxf
cant write radial dimension to dxf
i am trying to export a radial dimension to dxf (not when writing to dwg). i can create the radial-dimension without any errors, but when i write to the file using writefile(), i get an exception - unhandled exception at 0x7c9377ca in export_drg.exe: 0xc0000005: access violation writing location 0x00030ffc.
oddbradialdimensionptr pdimension = oddbradialdimension::createobject();
// add the entity to the parent block.
cdwgplaceholder* pholder = static_cast<cdwgplaceholder*>(pblockholder); oddbblocktablerecordptr pblock = pholder->mobjectid.safeopenobject(oddb::kforwrite);
pentity->setdatabasedefaults (m_pdb);
oddbobjectid dimensionholder = pblock->appendoddbentity (pentity);
// general dimension properties
pdimension->setdimensiontext (dimtext);
pdimension->settextrotation (rotationangle);
pdimension->settextposition (odgepoint3d (textmidx, textmidy, 0.0));
// type specific properties
pdimension->setcenter (odgepoint3d (centerx, centery, 0.0));
pdimension->setchordpoint (odgepoint3d (chordpointx, chordpointy, 0.0));
pdimension->setleaderlength (leaderlength);*/
hresult __hresult__ = cdwgplaceholder::createholder (ppresult);
cdwgplaceholder* __pholder__ = static_cast<cdwgplaceholder*(*ppresult);
__pholder__->mobjectid = pobject;
couple of interesting observations:
i did not get this error when i was using 1.14.
also, i dont get this error when i write a dwg 2.1.
could there be any specific changes to radial dimensions when writing to a dxf...?
thank you.
revised minimal code:
oddbradialdimensionptr pdimension = oddbradialdimension::createobject();
// add the entity to the parent block.
oddbobjectid dimensionholder = addentitytoblock (pblockholder,pdimension);
cdwgplaceholder* pholder = static_cast<cdwgplaceholder*>(pblockholder);
oddbblocktablerecordptr pblock = pholder->mobjectid.safeopenobject(oddb::kforwrite);
pdimension->setdatabasedefaults (m_pdb);
oddbobjectid dimensionholder = pblock->appendoddbentity (pdimension);
hresult __hresult__ = cdwgplaceholder::createholder (ppdimensionholder);
cdwgplaceholder* __pholder__ = static_cast<cdwgplaceholder*> (*ppdimensionholder);
__pholder__->mobjectid = dimensionholder;
similar code works fine for diametric/linear dimensions... i wonder why..?
thank you.
apparently, my error had nothing to do with radial dimensions. sorry.
kedar
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)