我必须解析dxf文件,将其转换为.net中的图像。
我使用了DxfLib(https://github.com/mkernel/DXFLib)。
我对图层有一个问题:我有3层,只需要显示一个(我在一些dxf查看器上传了我的文件,它们只显示了一层)
我不知道如何知道是否需要显示某个图层。我在dxf解析文件中找不到该信息。
你知道我在哪里可以找到这个吗? (也许它是DxfLib缺少的元素)
编辑:有一个我的dxf文件的例子:https://github.com/mkernel/DXFLib/files/286112/DIAMOND-R.zip
答案 0 :(得分:2)
DXF 文件在 HEADER 部分中包含 LAYERS 表。以下是有关图层表记录:
的详细信息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
找到后,检查颜色属性,如果否定,则关闭图层。
我不知道 DXFLib 有哪些功能可用于解析DXF文件的HEADERS部分。但我希望这个细节可以帮到你!
答案 1 :(得分:1)
最后我找到了解决方案!
我的问题不是显示/隐藏图层,而是如何检测和隐藏不相关的对象。
我在标题部分使用DrawingExtendsLowerRight和DrawingExtendsUpperRight属性来了解绘图的限制。我只保留极限的元素。