如何使用ezdxf关闭属性打印设置?

时间:2019-09-26 08:25:04

标签: python python-3.x autocad dxf ezdxf

我想知道如何使用ezdxf关闭属性打印设置。

我可以隐藏,冻结并锁定和锁定。 但是,无法打开或关闭打印。

my_lines.on()
my_lines.off()   # switch layer off, will not shown in CAD programs/viewers
my_lines.lock()  # layer is not editable in CAD programs
my_lines.freeze()

您可以像这样打开和关闭打印吗?

1 个答案:

答案 0 :(得分:2)

该图层的打印(即打印)标记由DXF group 290表示,该标记接受0的值(表示该图层未进行 绘制)或{{ 1}}(表示已绘制 层)。

此DXF组在ezdxf中由plot属性表示-这样,您可以使用以下代码禁用对图层的绘图:

1

要关闭或冻结未设置为绘制的图层,可以使用以下基本的for循环:

my_lines.dxf.plot = 0

但是,由于在为DXF组for lay in dwg.layers: if lay.dxf.plot = 0: # if layer is not plotted lay.off() # turn layer off lay.freeze() # freeze layer 启用位1之前不测试层是否为当前层,因此您可能需要在调用{之前包括此检查{3}}方法,因为当前层无法冻结:

70

显然,将当前图层名称绑定到for lay in dwg.layers: if lay.dxf.plot = 0: # if layer is not plotted lay.off() # turn layer off if dwg.header['$CLAYER'] != lay.dxf.name: # current layer cannot be frozen lay.freeze() # freeze layer 循环的局部变量外部会更有效,因为该值在循环内不会更改,但是我会留给你。