Python 从DXFwrite中删除多余层

Python 从DXFwrite中删除多余层,python,cad,dxf,Python,Cad,Dxf,我使用python包DXFwrite构建太阳能电池网格。不幸的是,我的模拟程序被DXFwrite引入的附加层弄糊涂了。他们的名字是: 尺寸 表格内容 台网 桌面背景 视口 有没有一种简单的方法可以防止DXFwrite创建这些层?我没有找到任何删除图层的命令 致以最良好的祝愿 Thorsten Rissom否没有删除层的方法,您无法阻止dxfwrite创建此层 备选案文1: 使用ezdxf(),但是也有一些预定义的层(DEFPOINTS、VIEW_PORT),但是您可以从中删除条目 图层表:d

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

  • 尺寸
  • 表格内容
  • 台网
  • 桌面背景
  • 视口
有没有一种简单的方法可以防止DXFwrite创建这些层?我没有找到任何删除图层的命令

致以最良好的祝愿


Thorsten Rissom

否没有删除层的方法,您无法阻止dxfwrite创建此层

备选案文1:

使用ezdxf(),但是也有一些预定义的层(DEFPOINTS、VIEW_PORT),但是您可以从中删除条目 图层表:
dwg.layers.remove('layername')
,此操作仅删除图层表条目,仅当实体未引用此图层时才删除图层。也许还有一些意想不到的副作用

备选案文2:

使用ezdxf.r12writer:此模块可以在没有ezdxf包的情况下使用,只需将r12writer.py复制到项目中即可。该模块编写非常基本的DXF12文件,请参阅文档:

  • 支持的图元:直线、圆、圆弧、文字、点、实体、三维面和多段线
  • 不支持块引用
  • 附加优势:r12writer速度非常快

否没有删除层的方法,您无法阻止dxfwrite创建此层

备选案文1:

使用ezdxf(),但是也有一些预定义的层(DEFPOINTS、VIEW_PORT),但是您可以从中删除条目 图层表:
dwg.layers.remove('layername')
,此操作仅删除图层表条目,仅当实体未引用此图层时才删除图层。也许还有一些意想不到的副作用

备选案文2:

使用ezdxf.r12writer:此模块可以在没有ezdxf包的情况下使用,只需将r12writer.py复制到项目中即可。该模块编写非常基本的DXF12文件,请参阅文档:

  • 支持的图元:直线、圆、圆弧、文字、点、实体、三维面和多段线
  • 不支持块引用
  • 附加优势:R12写入程序速度非常快

浏览完后-有可能

DXFEngine.layers是一个intern_表结构,它有一个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()
但是,除了“JUSTASINGLELAYER”层之外,仍显示一个名为“0”的层

致以最良好的祝愿,
马丁

在浏览了一遍之后——有一种可能性

DXFEngine.layers是一个intern_表结构,它有一个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()
但是,除了“JUSTASINGLELAYER”层之外,仍显示一个名为“0”的层

致以最良好的祝愿,
马丁:那也行。但是,它不会删除图层“视口”。最后,我在@mozman的回答中采用了第二种选择。谢谢你的回复!这也行得通。但是,它不会删除图层“视口”。最后,我在@mozman的回答中采用了第二种选择。谢谢你的回复!