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

时间:2015-05-21 19:32:41

标签: autocad cad autodesk dxf

我们正在构建一个DXF导出器,根据我的阅读,这个非常简单的文件应该是有效的。我们没有任何CAD工具可供测试,所以我的调试能力非常有限。这在this example开启正常,但我从the Proficad online viewer收到错误,说"图纸文件无效,无法查看"。

这是整个文件。任何帮助表示赞赏!

{{1}}

4 个答案:

答案 0 :(得分:4)

您的DXF文件有几个问题。

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

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

  3. 下面显示的是一个功能最小的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
    

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

      0
     POLYLINE
       5
     7C
    

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

答案 1 :(得分:2)

根据Autodesk的官方DXF规范(PDF here),LWPOLYLINE的顶点仅为2D;例如,他们应该只有1020代码,而不是30个代码,因为您的所有30代码都是0.0,所以它不应该是区别。如果您确定LWPOLYLINE需要具有非零的Z值,则可以在第一个38代码对之前指定代码10对(提升)。

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

编辑:虽然DXF规范应该是非常自由形式的,但我发现Autodesk的实现非常特别关于它能读什么。

答案 2 :(得分:1)

确实LWPOLYLINE只是2D ......

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

答案 3 :(得分:0)

那么你的问题是特定于DXF中的特定数据格式问题,它缺少/添加AutoCad不满意的一些值。解决这个问题的最佳机会是尝试从AutoCad创建一个类似的文件,并比较你可能错过/错误添加的内容。在这种情况下,其他人很难为您调试。我已经看过来自Autocad的DXF规范pdf,底部有一些写DXF文件帮助部分,也可以参考它们。