我正在尝试从 2D dxf 文件中自动获取信息。尺寸类没有像 dxf.dimtm 这样的公差属性。我能找到的这样的属性是 DXF 类型的 Dimstyle,但这不是我想要的。我在 dxf 文件中发现这样的信息看起来像
A01 %%C6.14{\H0.2;\S+0.0030^ -0.0000;}
0.0030 是上限,-0.0000 是下限。如何使用 ezdxf 获得这两个浮点数?
感谢任何帮助
亚历克斯
通常,公差值存储在 DIMSTYLE 实体中,但可以为每个 DIMENSION 实体覆盖,您可以通过DimstyleOverride()
类获取它们,如下例所示:
import ezdxf
from ezdxf.entities import DimStyleOverride
doc = ezdxf.readfile('your.dxf')
msp = doc.modelspace()
for dimension in msp.query('DIMENSION'):
dimstyle_override = DimStyleOverride(dimension)
dimtol = dimstyle_override['dimtol']
if dimtol:
print(f'{str(dimension)} has tolerance values:')
dimtp = dimstyle_override['dimtp']
dimtm = dimstyle_override['dimtm']
print(f'Upper tolerance: {dimtp}')
print(f'Lower tolerance: {dimtm}')
这是一个非常高级的 DXF 主题,DXF 创建者提供的文档很少,因此您需要自己找出所有dim...
属性的含义。在这里你可以看到我的研究结果,但不保证信息的正确性。