我必须解析 dxf 文件以将其转换为 .net 中的图像。
我使用了DxfLib(https://github.com/mkernel/DXFLib)。
我的图层有问题:我有 3 层,只需要显示一层(我在某些 dxf 查看器中上传了我的文件,它们只显示一层)
我不知道如何知道是否需要显示某个图层。我在 dxf 解析文件中没有找到该信息。
你知道我在哪里可以找到这个吗? (也许这是 DxfLib 中缺少的元素)
编辑:有一个我的 dxf 文件的示例:https://github.com/mkernel/DXFLib/files/286112/DIAMOND-R.zip
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部分。但我希望这个细节对你有帮助!
终于找到解决办法了!
我的问题不是显示/隐藏图层,而是如何检测和隐藏不相关的对象。
我在标题部分使用
DrawingExtendsLowerRight
和 DrawingExtendsUpperRight
属性来了解我的绘图的限制。我只保留限制内的元素。