DXF文件 - 无法在Autodesk Viewer中打开

jen*_*mm2 5 cad autocad dxf autodesk

我们正在构建一个DXF导出器,根据我的阅读,这个非常简单的文件应该是有效的.我们没有任何CAD工具可供测试,因此我的调试能力非常有限.这在Proficad在线查看器中打开正常但我从Autodesk查看器收到错误,说"图形文件无效且无法查看".

这是完整的文件.任何帮助表示赞赏!

  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
Run Code Online (Sandbox Code Playgroud)

Ste*_*bob 5

您的 DXF 文件存在几个问题。

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

  2. 您需要 AutoCAD 的 HEADER 部分来打开 DXF 文件。您不必在标头中输入太多内容,基本上只是版本信息。

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

  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
Run Code Online (Sandbox Code Playgroud)

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

  0
 POLYLINE
   5
 7C
Run Code Online (Sandbox Code Playgroud)

以上5是指示后面将要处理的句柄(ID 号)的代码。这7C是实际的句柄。如果添加更多实体,则需要增加每个实体的句柄,因此每个实体都有一个唯一的句柄。