Dxf:如何知道要显示哪些图层?

时间:2016-05-25 09:48:25

标签: .net layer dxf dxflib

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:2)

DXF 文件在 HEADER 部分中包含 LAYERS 。以下是有关图层表记录

的详细信息

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

您对群组代码 62

感兴趣

Group code 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部分。但我希望这个细节可以帮到你!

答案 1 :(得分:1)

最后我找到了解决方案!

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

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