从DXFwrite中删除超级层数
问题描述:
我使用python包DXFwrite来构建太阳能电池网格。不幸的是,我的模拟程序被DXFwrite引入的附加层所困扰。他们的名字是:从DXFwrite中删除超级层数
- 尺寸
- TABLECONTENT
- TABLEGRID
- TABLEBACKGROUND
- 视
有一个简单的办法来防止DXFwrite从创建这些层?我还没有找到任何命令来删除图层。
最好的问候,
托尔斯滕Rissom
答
通过source略读之后 - 有一种可能性。
DXFEngine.layers是一个实习生_Table结构,它有一个clear()函数。 没有测试不需要的副作用,但你可以做到以下几点:
from dxfwrite import DXFEngine as mydxfwrite
mydxfdrawing = mydxfwrite.drawing('Filename.dxf')
mydxfdrawing.layers.clear() #clears the layers
mydxfdrawing.add_layer("JUSTASINGLELAYER",color=1) #add your layer with for example a specific color
mydxfdrawing.save()
LibreCad,但是,仍然显示了一个名为“0”除了层“JUSTASINGLELAYER”层。
最良好的祝愿, 马丁
答
没有没有删除层的方法,你不能阻止dxfwrite从创建此层。
选择1:
使用ezdxf(https://pypi.python.org/pypi/ezdxf/),但也有一些预定义的图层(DEFPOINTS,VIEW_PORT),但你可以删除 层表项:dwg.layers.remove('layername')
,这仅去除层表项,如果没有实体引用此图层,则只会删除一个图层。也许有一些意想不到的副作用。
备选方案2:
使用ezdxf.r12writer:该模块可在不ezdxf包中使用,只需复制r12writer.py到您的项目。该模块编写非常基本的DXF12文件,请参阅文档:http://pythonhosted.org/ezdxf/r12writer.html。
- 支持实体:直线,圆,弧,文本,点,SOLID,3DFACE和折线
- 块参考,不支持!
- 额外的好处:r12writer是非常快的
这工作也是如此。但它不会删除“VIEWPORTS”图层。最后,我在@mozman的回答中跟随了第二个选择。谢谢回复! – rissom