1

我正在尝试从 2D dxf 文件中自动获取信息。尺寸类没有像 dxf.dimtm 这样的公差属性。我能找到的这样的属性是 DXF 类型的 Dimstyle,但这不是我想要的。我在 dxf 文件中发现这样的信息看起来像

A01 %%C6.14{\H0.2;\S+0.0030^ -0.0000;}

0.0030 是上限,-0.0000 是下限。如何使用 ezdxf 获得这两个浮点数?

感谢任何帮助

亚历克斯

4

1 回答 1

2

通常,公差值存储在 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...属性的含义。在这里你可以看到我的研究结果,但不保证信息的正确性。

于 2020-03-19T04:45:18.133 回答