使用EZDXF Python查找DXF文件的大小

时间:2018-11-28 10:39:15

标签: python dxf

我正在使用Python软件包ezdxf从dxf文件中提取信息。有没有一种方法可以找出文件的高度和宽度,所以我可以创建相同大小的图像并在其上绘制实体以供参考。我尝试使用以下命令从DXF标头中提取信息 `

max_children

如本link中所述。

但是我不清楚它们是什么意思。还要求提供一些有关Python ezdxf的详细信息的链接。

2 个答案:

答案 0 :(得分:2)

系统变量EXTMINEXTMAX存储最小矩形框的左下角和右上角,该矩形框将图形或您所用的DXF中的所有几何图形包围起来。

这些系统变量的值是相对于图形的世界坐标系(WCS)表示的3D点。点的坐标值将以DXF单位表示(例如,由INSUNITS系统变量给定),或者可以是无单位的。

您可以分别使用EXTMAXEXTMIN系统变量给定的点的X和Y坐标值之差来获取DXF的尺寸(并由此获得纵横比),从而启用您可以创建缩放到相同宽高比的图像。


LIMMINLIMMAX还存储与矩形区域的左下角和右上角相对应的3D WCS点,但是,该区域仅仅是用户对可用图形的限制启用限制检查(LIMCHECK = 1)后创建新对象时的区域。

尽管LIMMINLIMMAX系统变量在理论上提供了包围DXF中所有几何体的包围盒尺寸的上限,但这是不可靠的度量,因为可以使用禁用限制检查,启用限制检查后不会删除此类对象。

答案 1 :(得分:2)

除了回答Lee Mac以外,如果您通过 ezdxf 创建或修改DXF绘图,则:

ezdxf 不会维护或更新标头变量EXTMAX和EXTMIN。

DXF实体,块或模型空间的范围必须由应用程序计算,因此应用程序必须渲染实体,这对于CAD应用程序来说不是问题,但是 ezdxf 并不是CAD应用程序也没有渲染引擎,并且DXF参考文献通常没有定义DXF实体的扩展,有问题的实体是:

  • 文本和MText取决于字体渲染和字体可用性,这在不同的应用程序之间以及计算机与计算机之间都不同。

  • 通过拟合点进行样条绘制,AutoCAD从拟合点计算控制点的算法尚不清楚,在互联网上记录的“全局插值”并不常见

  • 嵌入的ACIS数据(例如3DSOLID,BODY,REGION或SURFACE)的几何不适用于ezdxf

通过 ezdxf 计算范围通常是错误的或仅是猜测,因此未实现,也许我有一天会为近似范围添加一个附加组件,但这不太可能,因为它对于诸如INSERT(带有嵌套INSERT),HATCH(复杂的边界路径和孤岛)或MTEXT(复杂的字体呈现)之类的实体来说,它的工作量很大,如果您不能依靠它,则只有很小的好处。为此,我不为牺牲自己的空闲时间而感到兴奋。

仅供参考,因为您使用的是Python2: ezdxf 的 Python 2 支持将在下一版本v0.9.0

中被删除