从 DXFwrite 中删除多余的图层
Removing superfluos layers from DXFwrite
我使用 python 包 DXFwrite 构建太阳能电池板。不幸的是,我的模拟程序被 DXFwrite 引入的附加层弄糊涂了。他们的名字是:
- 维度
- 表格内容
- 表格网格
- 表格背景
- 视口
有没有一种简单的方法可以防止 DXFwrite 创建这些图层?我还没有找到任何删除图层的命令。
此致,
托尔斯滕·里森
不,没有删除图层的方法,您也无法阻止 dxfwrite 创建该图层。
备选方案 1:
使用ezdxf(https://pypi.python.org/pypi/ezdxf/),但也有一些预定义层(DEFPOINTS,VIEW_PORT),但你可以从
layer table: dwg.layers.remove('layername')
,这仅删除层 table 条目,仅当实体未引用该层时才删除该层。也许还有一些意想不到的副作用。
备选方案 2:
使用ezdxf.r12writer:这个模块可以在没有ezdxf包的情况下使用,只需将r12writer.py复制到你的项目中。该模块编写非常基本的 DXF12 文件,请参阅文档:http://pythonhosted.org/ezdxf/r12writer.html.
- 支持的实体:LINE、CIRCLE、ARC、TEXT、POINT、SOLID、3DFACE 和 POLYLINE
- 不支持块引用!
- 额外优势:r12writer 非常快
浏览完 source - 有可能。
DXFEngine.layers 是一个 intern _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”的层
最良好的祝愿,
马丁
我使用 python 包 DXFwrite 构建太阳能电池板。不幸的是,我的模拟程序被 DXFwrite 引入的附加层弄糊涂了。他们的名字是:
- 维度
- 表格内容
- 表格网格
- 表格背景
- 视口
有没有一种简单的方法可以防止 DXFwrite 创建这些图层?我还没有找到任何删除图层的命令。
此致,
托尔斯滕·里森
不,没有删除图层的方法,您也无法阻止 dxfwrite 创建该图层。
备选方案 1:
使用ezdxf(https://pypi.python.org/pypi/ezdxf/),但也有一些预定义层(DEFPOINTS,VIEW_PORT),但你可以从
layer table: dwg.layers.remove('layername')
,这仅删除层 table 条目,仅当实体未引用该层时才删除该层。也许还有一些意想不到的副作用。
备选方案 2:
使用ezdxf.r12writer:这个模块可以在没有ezdxf包的情况下使用,只需将r12writer.py复制到你的项目中。该模块编写非常基本的 DXF12 文件,请参阅文档:http://pythonhosted.org/ezdxf/r12writer.html.
- 支持的实体:LINE、CIRCLE、ARC、TEXT、POINT、SOLID、3DFACE 和 POLYLINE
- 不支持块引用!
- 额外优势:r12writer 非常快
浏览完 source - 有可能。
DXFEngine.layers 是一个 intern _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”的层最良好的祝愿, 马丁