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

问题描述 投票:0回答:2

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

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

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

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

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

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

.net layer dxf dxflib
2个回答
5
投票

DXF 文件在 HEADER 部分包含一个 LAYERS table。这是图层表的详细信息记录:

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

您对群组代码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

找到后,检查 colour 属性,如果 negative,则该图层将关闭。

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


1
投票

终于找到解决办法了!

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

我在标题部分使用

DrawingExtendsLowerRight
DrawingExtendsUpperRight
属性来了解我的绘图的限制。我只保留限制内的元素。

© www.soinside.com 2019 - 2024. All rights reserved.