gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 00:31:55 25 4
gpt4 key购买 nike

我想知道如何使用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()

你能像这样打开和关闭打印吗?

最佳答案

图层的绘图(即打印)标志由 DXF group 290 表示,它接受值 0(表示图层绘制)或 1(表示图层绘制)绘制)。

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

my_lines.dxf.plot = 0

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

for lay in dwg.layers:
if lay.dxf.plot = 0: # if layer is not plotted
lay.off() # turn layer off
lay.freeze() # freeze layer

但是,自从 在为 DXF 组 70 启用位 1 之前不会测试图层是否为当前图层,您可能需要在调用 freeze 之前包含此检查。方法,因为当前图层无法卡住:

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

显然,将当前层名称绑定(bind)到 for 循环外部的局部变量会更有效,因为该值在循环内不会改变,但是我会把这个留给你。

关于python - 如何使用ezdxf关闭属性打印设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58112546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com