0

我正在为 android 开发 Autocad 文件阅读器,现在我只使用 Kabeja 库读取 DXF 文件,它工作得很好,但是当我在 Autocad 中绘制简单的形状并尝试在 Android 上绘制它时,当我查看 Autocad 坐标时它不会出现我发现它们太大了我已经做了很多搜索以找出任何解决方案,我尝试的一个方法是阅读

EXTMIN 和 EXTMAX

标头值,但它们返回 {30=0.0, 20=1015.620062425179, 10=1624.318980044965} 用于 EXTMIN 和 {30=0.0, 20=2134.42060268589, 10=3716.108222970341} 用于 EXTMAX

这是我的代码

DXFHeader dxfHeader = dxfDoc.getDXFHeader();
DXFVariable dxfVariableMin = dxfHeader.getVariable("$EXTMIN");
DXFVariable dxfVariableMax = dxfHeader.getVariable("$EXTMAX");

我不知道如何使用这些值来正确绘制我的形状

4

1 回答 1

3

EXTMIN 和 EXTMAX 定义包含几何图形(实体)的 dxf 绘图区域。

显示 dxf 文件时,您将使用 EXTMIN 值作为偏移量。

在您的示例中,包含几何图形的 dxf 文件区域的左下角是:

1624.318980044965, 1015.620062425179

而右上角是:

3716.108222970341, 2134.42060268589

这意味着您的有效画布尺寸实际上是 2091 宽 x 1118 高。

如果你有一个实体,比如一个圆,它的 x,y 中心坐标是 2000,1500;然后,您可以减去 EXTMIN 坐标并在 375.68、484.38 处显示圆圈

只要您从所有实体的 x 和 y 坐标(10 和 20 组代码)中减去 EXTMIN 坐标,您就可以显示一个较小的区域,其中仅包括包含几何图形的区域。

于 2014-05-27T20:44:58.273 回答