![]() |
【转帖】exception when creating dimension
exception when creating dimension
exception when creating dimension most of my dimension entities seem to be creating just fine, but this rather small one (2/16 of an inch) causes an exception when i call the "release()". anyone have any idea how i can prevent this? m_pcurrentdim = oddbaligneddimension::createobject(); oddbblocktablerecordptr pcurrspace = m_idcurrentspace.safeopenobject(oddb::kforwrite); assert(!pcurrspace.isnull()); pcurrspace->appendoddbentity(m_pcurrentdim); m_pcurrentdim->setdatabasedefaults(m_pdb); m_pcurrentdim->setcolor(m_currentcolor); m_pcurrentdim->setlayer(m_idcurrentlayer, false); //init arrow size to 0 m_pcurrentdim->setdimasz(0.0); //line location m_pcurrentdim->setdimlinepoint(odgepoint3d(-0.09999485, 71.205001, 0.0)); //text m_pcurrentdim->setdimensiontext("0\"2"); m_pcurrentdim->usesettextposition(); m_pcurrentdim->settextposition(odgepoint3d(-0.0499974, 71.205001, 0.0)); m_pcurrentdim->settextrotation(1.570796); m_pcurrentdim->setdimtxt(0.4); //dim points and finish up m_pcurrentdim->setxline1point(odgepoint3d(-0.09999485, 67.6258, 0.0)); m_pcurrentdim->setxline2point(odgepoint3d(0.0, 67.6258, 0.0)); m_pcurrentdim.release(); m_pcurrentdim = null; jack warner systems architect alpine engineered products, inc. your problem is caused by bug in dd's recomputedimensionblock(). it crashes for aligned dimension if dimasz is 0. you can avoid it if: - do not set dimasz to zero or - call pdimension->recordgraphicsmodified(false) after you set all properties to dimension. dimension block will not be generated in such case. autocad can live with it. it will generate the block after file is loaded. sergey slezkin thanks... that would have been a hard one to find, as most of my dimensions with no arrows were working. the results after setting recordgraphicsmodified off seem to be loading into autocad lt 2002 and intellicad v4 ok, so i should be fine until the bug is fixed. thanks for the quick response! |
所有的时间均为北京时间。 现在的时间是 09:07 AM. |