我想知道如何使用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()
您可以像这样打开和关闭打印吗?
答案 0 :(得分:2)
该图层的打印(即打印)标记由DXF group 290表示,该标记接受0
的值(表示该图层未进行 绘制)或{{ 1}}(表示已绘制 层)。
此DXF组在ezdxf中由plot
属性表示-这样,您可以使用以下代码禁用对图层的绘图:
1
要关闭或冻结未设置为绘制的图层,可以使用以下基本的for循环:
my_lines.dxf.plot = 0
但是,由于ezdxf在为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
循环的局部变量外部会更有效,因为该值在循环内不会更改,但是我会留给你。