1

我必须解析 dxf 文件才能将其转换为 .net 中的图像。

我使用了 DxfLib(https://github.com/mkernel/DXFLib)。

我的图层有问题:我有 3 个图层,只需要显示一个(我在一些 dxf 查看器中上传了我的文件,它们只显示一个图层)

我不知道如何知道是否需要显示图层。我没有在我的 dxf 解析文件中找到信息。

你知道我在哪里可以找到这个吗?(也许它是 DxfLib 中缺少的元素)

编辑:我的 dxf 文件有一个例子:https ://github.com/mkernel/DXFLib/files/286112/DIAMOND-R.zip

4

2 回答 2

3

DXF文件在HEADER部分包含一个LAYERS 。以下是有关层表记录的详细信息:

http://www.autodesk.com/techpubs/autocad/acad2000/dxf/layer_dxf_04.htm

您对组码62感兴趣:

组码 62

如您所见,如果图层颜色为,则图层已关闭。这是一个例子:

  0
LAYER
  5
242
330
2
100
AcDbSymbolTableRecord
100
AcDbLayerTableRecord
  2
LAYER2
 70
     0
 62
    -3
  6
Continuous
370
    -3
390
F
347
EE
348
0
  0
ENDTAB

因此,当您处理实体并检查层值时,请在HEADER部分的LAYERS表中查找它。这是该部分的开始:

  0
TABLE
  2
LAYER

找到后,检查颜色属性,如果为,则关闭图层。

我不知道DXFLib有哪些功能可用于解析 DXF 文件的 HEADERS 部分。但我希望这个细节对你有帮助!

于 2016-05-25T20:45:49.427 回答
1

最后我找到了解决方案!

我的问题不是显示/隐藏图层,而是如何检测和隐藏不相关的对象。

我在标题部分使用 DrawingExtendsLowerRight 和 DrawingExtendsUpperRight 属性来了解我的绘图的限制。我只保留限制范围内的元素。

于 2016-06-06T09:06:12.953 回答