DXF 文件 - 无法在 Autodesk 查看器中打开

DXF File - Won't Open in Autodesk Viewer

我们正在构建一个 DXF 导出器,据我所知,这个极其简单的文件应该是有效的。我们没有任何可用于测试的 CAD 工具,因此我的调试能力非常有限。这在 the Proficad online viewer but I get an error from the Autodesk viewer 中打开很好,说 "The drawing file is invalid and cannot be viewed"。

这是完整的文件。感谢您的帮助!

  0
SECTION
  2
ENTITIES
  0
LWPOLYLINE
  90
5
  70
0
  43
0.0
  10
-8.75
  20
-11.75
  30
0.0
  10
-8.75
  20
11.75
  30
0.0
  10
8.75
  20
11.75
  30
0.0
  10
8.75
  20
-11.75
  30
0.0
  10
-8.75
  20
-11.75
  30
0.0
  0
ENDSEC 
  0
EOF

根据 Autodesk 的官方 DXF 规范 (PDF here),LWPOLYLINE 的顶点仅是二维的;例如,它们应该只有 1020 代码,而不是任何 30 代码,并且由于您所有的 30 代码都是 0.0,因此不应该制作区别。如果您确定 LWPOLYLINE 需要具有非零的 Z 值,您可以在第一个 10 代码对之前指定一个代码 38 对(高程)。

如果每个点都需要不同的 Z 值,请考虑使用 POLYLINE 和许多 VERTEX 实体,后跟一个 SEQEND。

编辑:虽然 DXF 规范应该是非常自由形式的,但我发现它的 Autodesk 实现对它可以读取的内容非常特别。

事实上,LWPOLYLINE 只是二维的...

还有一个建议:继续使用 AutoCAD 并创建一个类似的绘图,然后导出为 DXF,这样您就可以与您正在设计的进行比较。

您的 DXF 文件存在一些问题。

  1. LWPOLYLINE 需要大量额外开销才能使用。您需要一个 TABLES 部分,然后您必须处理 AcDbEntity 和 AcDbPolyline 条目。它很快变得复杂。切换到 POLYLINE 实体会让您省去很多麻烦。

  2. 您需要 AutoCAD 的 HEADER 部分才能打开 DXF 文件。你不必在 HEADER 中放太多,基本上只是版本信息。

下面显示的是可以在 AutoCAD 中成功打开的功能最少的 DXF 文件(以 R12 格式保存):

  0
SECTION
  2
HEADER
  9
$ACADVER
  1
AC1009
  0
ENDSEC
  0
SECTION
  2
ENTITIES
  0
POLYLINE
  5
7C
  8
0
 66
     1
 10
0.0
 20
0.0
 30
0.0
  0
VERTEX
  5
174
  8
0
 10
-8.75
 20
-11.75
 30
0.0
  0
VERTEX
  5
175
  8
0
 10
-17.5
 20
0.0
 30
0.0
  0
VERTEX
  5
176
  8
0
 10
-8.75
 20
11.75
 30
0.0
  0
VERTEX
  5
177
  8
0
 10
0.0
 20
0.0
 30
0.0
  0
VERTEX
  5
178
  8
0
 10
-8.75
 20
-11.75
 30
0.0
  0
SEQEND
  5
179
  8
0
  0
ENDSEC
  0
EOF

如果这就是您要放入文件中的全部内容,它应该可以正常工作。请记住,所有 DXF 实体都需要一个句柄(基本上是一个 ID 号)。

  0
 POLYLINE
   5
 7C

上面的5是表示句柄(身份证号码)的代码。 7C 是实际句柄。如果您添加更多实体,则需要为每个实体增加句柄,因此每个实体都有一个唯一的句柄。

好吧,您的问题特定于 DXF 中的特定数据格式问题,即 missing/adding AutoCad 不满意的一些值。解决此问题的最佳机会是尝试从 AutoCad 创建一个类似的文件并比较您可能 missed/added 错误的文件。在这种情况下,其他人很难为您调试。我看过 Autocad 的 DXF 规范 pdf,底部有一些编写 DXF 文件的帮助部分,也可以参考一下。