从DXFwrite中删除superfluos图层

时间:2017-06-05 14:44:51

标签: python cad dxf

我使用python包DXFwrite构建太阳能电池网格。不幸的是,我的模拟程序被DXFwrite引入的附加层混淆了。他们的名字是:

  • DIMENSIONS
  • TABLECONTENT
  • TABLEGRID
  • TABLEBACKGROUND

是否有一种简单的方法可以阻止DXFwrite创建这些图层?我没有找到任何删除图层的命令。

最诚挚的问候,

Thorsten Rissom

2 个答案:

答案 0 :(得分:3)

没有删除图层的方法,也无法阻止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

  • 支持的实体:LINE,CIRCLE,ARC,TEXT,POINT,SOLID,3DFACE和POLYLINE
  • 不支持块引用!
  • 额外优势:r12writer非常快

答案 1 :(得分:0)

在浏览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”图层。

祝福, 马丁