单位与现实世界

ale*_*nde 1 cad units-of-measurement scale dxf

我有一个带有一些2D工程图的DXF(rev 10)CAD文件,并且正在实现一个阅读器。到目前为止,我已经成功加载了所有内容并使用ImageMagick进行了栅格化。

但关键是,我已手动将坐标缩放设置为对我来说有意义的数字。我怎么知道零件的原始尺寸是多少,以及用来绘制的单位是什么?我要看什么特定的小组吗?

我的标题是这样的:

  0
SECTION
  2
HEADER
  9
$ACADVER
  1
AC1006
  9
$EXTMIN
 10
-14.610075
 20
-14.723197
  9
$EXTMAX
 10
14.556421
 20
15.530217
  9
$LTSCALE
 40
0.000394
  9
$PDMODE
 70
    35
  9
$PDSIZE
 40
0.000315
  0
ENDSEC
Run Code Online (Sandbox Code Playgroud)

我已经阅读了每个部分的内容,但似乎找不到任何可以帮助我的内容。

我想知道单位,因为我希望能够准确地更改绘图,例如将点移动2英寸。

Ste*_*bob 5

在为dxf文件实现查看器时,您实际上不需要了解任何有关单元的信息。当然,除非您打算Measure在查看器中实现一个功能,否则它将变得更加复杂。

在你的浏览器你最初的“缩放”大小可以从报头信息来确定你已经证明:EXTMINEXTMAX是信息的需要2个钥匙碎片。在您的示例中,dxf文件中的最小坐标use3d为-14.610075,-14.723197,最大坐标为14.556421,15.530217。这样一来,您的总图纸大小为29.166496(宽)x 30.253414。

对于简单的查看器,您可以仅假设DXF文件中的单位等于查看器中的单位(像素或点或您使用的任何物体)。

然后,查看器中的基本图形尺寸将为29.166496x30.253414,您可以将该尺寸放大(缩放)以使其填充任何可用的显示区域。

编辑

DXF文件绝不是“无单位”的,因此,在您绝对需要知道单位的情况下,您将需要读取$INSUNITS组代码值,并仔细检查它,您还可以读取$MEASUREMENT组代码值。

R2000 DXF规范,或任何其他形式的,包含你需要什么这些价值观意味着所有的信息。如果您转到“页眉部分组代码”页面,并搜索“单位”,则可以找到所有单位类型的列表。例如:

$INSUNITS
 70
     4
Run Code Online (Sandbox Code Playgroud)

表示dxf文件使用公制单位(特别是毫米)作为基本单位。因此,dxf文件存储的任何尺寸或坐标值都将以毫米为单位。

AutoCAD DesignCenter块的默认图形单位:0 =无单位;1 =英寸 2 =英尺;3 =英里;4 =毫米;5 =厘米; 6 =米 7 =公里 8 =微英寸;9 =密耳;10 =码;11 =埃; 12 =纳米; 13 =微米; 14 =厘米 15 =分米; 16 =厘米 17 =吉米; 18 =天文单位;19 =光年;20 =秒差距

编辑

我只是注意到您使用的是非常旧的dxf格式(R10)。如果我没记错的话,直到R12左右,这些装置才被引入DXF规范。在此之前,图形实体的实际大小不会根据所假定的单位进行更改。只有尺寸标注上的英制单位与公制单位不同。

如果您打算使用旧的R10格式,则只需要对单位是什么做出任意决定即可。假设您的工程图上没有任何尺寸标签,这些尺寸标签将指示所隐含的单位。