2016-05-25 14 views
0

Мне нужно разобрать файлы dxf, чтобы преобразовать их в изображения в .net.Dxf: как узнать, какие слои показывать?

Я использовал DxfLib (https://github.com/mkernel/DXFLib).

У меня есть problème со слоями: У меня есть 3 слоя, и только одна необходимость показать (я загрузил свой файл в какой-то Dxf зрителя, и они показывают только один слой)

Я не знаю, как знать если слой нужно показать или нет. Я не нашел информацию в анализируемом файле dxf.

Знаете ли вы, где я могу это найти? (Может быть, это недостающий элемент из DxfLib)

EDIT: есть Exemple моего файла Dxf: https://github.com/mkernel/DXFLib/files/286112/DIAMOND-R.zip

ответ

2

DXF файл содержит LAYERSстол в HEADER разделе. Вот подробности о таблице слоя запись:

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

Вы заинтересованы в групповой код :

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 

Итак, когда вы обрабатываете объект и проверить значение уровня, LookUp его в СЛОЕВ стол в HEADER разделе. Это начало этого раздела:

0 
TABLE 
    2 
LAYER 

После обнаружения, изучить свойство цвета и если отрицательного, слой выключен.

Я не знаю, какие функции DXFLib доступен для разбора раздела HEADERS файла DXF. Но я надеюсь, что эта деталь поможет вам!

+0

Спасибо за ваш ответ, но в моем случае цвет равен 7 для каждого слоя :( – ROCHEDY

+0

Можете ли вы поделиться своим полным файлом DXF? Возможно, у вас есть только раздел ENTITIES. –

+0

Файл находится здесь: https: // github. com/mkernel/DXFLib/files/286112/DIAMOND-R.zip – ROCHEDY

1

Наконец-то я нашел решение!

Моя проблема заключалась в том, чтобы не показывать/скрывать слой, а как обнаруживать и скрывать нерелевантные объекты.

Я использую DrawingExtendsLowerRight и DrawingExtendsUpperRight свойства в разделе заголовка, чтобы узнать пределы моего чертежа. Я сохраняю только те элементы, которые находятся в пределах.