[求助]实体图层设置问题
<p>/////////////////////////////////////////////////////////////////////////////////////</p><p>AcGePoint3d ptStart(x1, y1, 0.0);<br/> AcGePoint3d ptEnd(x2, y2, 0.0);<br/> AcDbLine *pLine = new AcDbLine(ptStart, ptEnd);</p><p><br/> //获得指向快表的指针<br/> AcDbBlockTable *pBlockTable;<br/> pDb->getSymbolTable(pBlockTable, AcDb::kForRead);</p><p> //获得指向特定的快表记录(模型空间)的指针<br/> AcDbBlockTableRecord *pBlockTableRecord;<br/> pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForWrite);<br/> pBlockTable->close();</p><p><br/> //将AcDbLine类的对象添加到快表记录中<br/> AcDbObjectId lineId;<br/> pBlockTableRecord->appendAcDbEntity(lineId, pLine);</p><p><br/> //关闭图形数据库的各种对象<br/> pBlockTableRecord->close();</p><p> pLine->setLayer("虚线层");</p><p> pLine->setColorIndex(3);</p><p> pLine->close();</p><p> return lineId;</p><p>/////////////////////////////////////////////////////////////////////////////////////</p><p>在上述代码中,设置图层setLayer的时候不起作用,线的图层一直是0,设置颜色起作用,不知道为什么,请高手指点</p> 原因很简单,你当前的Dwg文件中没有你设置的那个虚线层。最好的方法是在设置实体图层前先判断一下是否存在该图层,如果不存在则新建一个图层,然后进行实体的图层设置。 xgready 发表于 2011-5-14 11:37 static/image/common/back.gif原因很简单,你当前的Dwg文件中没有你设置的那个虚线层。最好的方法是在设置实体图层前先判断一下是否存在该 ...
如何写先判断一下是否存在该图层,如果不存在则新建一个图层。。。 使用函数:AcDbSymbolUtilities::hasLayer(const char * name, AcDbDatabase * pDb);判断即可。
本帖最后由 chpmould 于 2011-5-22 16:02 编辑
松竹 发表于 2011-5-19 21:15 http://bbs.mjtd.com/static/image/common/back.gif
使用函数:AcDbSymbolUtilities::hasLayer(const char * name, AcDbDatabase * pDb);判断即可。
能否写个在一个新建层中增加一个线型简单的例子...例如:如何增加中心线 也是遇到同样的问题,而且颜色设置也没有什么反应。
页:
[1]