【发布时间】:2017-11-06 09:07:21
【问题描述】:
我使用 python 包 DXFwrite 来构建太阳能电池网格。不幸的是,我的模拟程序被 DXFwrite 引入的附加层弄糊涂了。他们的名字是:
- 尺寸
- 表格内容
- 表格网格
- 桌面背景
- 观景台
有没有一种简单的方法可以防止 DXFwrite 创建这些层?我还没有找到任何删除图层的命令。
最好的问候,
索斯滕·里索姆
【问题讨论】:
我使用 python 包 DXFwrite 来构建太阳能电池网格。不幸的是,我的模拟程序被 DXFwrite 引入的附加层弄糊涂了。他们的名字是:
有没有一种简单的方法可以防止 DXFwrite 创建这些层?我还没有找到任何删除图层的命令。
最好的问候,
索斯滕·里索姆
【问题讨论】:
没有删除层的方法,你不能阻止 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。
【讨论】:
在浏览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 然而,除了“JUSTASINGLELAYER”层之外,仍然显示一个名为“0”的层。
最好的祝愿, 马丁
【讨论】: