Как проверить файл .dxf перед его загрузкой, используя http://www.woutware.com? - PullRequest
0 голосов
/ 05 декабря 2011

Как применить следующую проверку для файла .dxf с использованием библиотеки Cad lib (http://www.woutware.com).

Я хочу загрузить файл .dxf и применить следующие проверки перед его загрузкой.

  • Программа, которую я могу использовать с моими лазерными станками, требует .dxf версии AutoCAD 2000;
  • Чертеж должен быть включен в прямоугольник 1000x700 единиц, потому что программа интерпретирует единицы как миллиметры;
  • блоки или AES-объекты не принимаются;
  • Слой 0 по умолчанию используется для резки и до 7 слоев для гравировки (максимум 8 слоев)
  • Все объекты должны быть 2D, 3D-объекты запрещены (больше всего SPLines)

1 Ответ

0 голосов
/ 24 мая 2012

Возможно, вам следует опубликовать свой вопрос на форуме Wout Ware .Большинство проверок довольно легко выполнить, за исключением того, что проверка трехмерных объектов, вероятно, представляет собой довольно трудоемкую работу, поскольку вам необходимо выполнить некоторую проверку для каждого типа объекта.

  • Версия может быть проверенаиспользование DxfModel.Header.AcadVersion.
  • Прямоугольник сложен, потому что существует много способов нарисовать прямоугольник.Это может быть LWPOLYLINE, 2D POLYLINE, 3D POLYLINE (но без z-координаты), коллекция из 4 LINE и даже другие способы сделать прямоугольник.
  • Блоки можно найти в DxfModel.Блоки, хотя я бы сказал, что присутствие в INSERT действительно важно в DxfModel.Entities.Объекты AES не поддерживаются CadLib, но вы можете проверить, присутствуют ли они в исходном чертеже, проверяя DxfModel.UnsupportedObjects.
  • Для проверки 3D-объекта требуется специальная проверка для каждого объекта.Для этого следует реализовать объект IEntityVisitor и выполнить цикл по всем объектам.Грубая проверка может быть выполнена, если ось z каждого объекта равна (0, 0, 1), а толщина равна нулю (для объектов, имеющих толщину).
...