Экспорт чертежа из Компас-график 2D в SVG

от автора

В "Чертежи в SVG формате. Часть 1 — Черновик стандарта (обновляется)" приведён пример объектной модели чертежа, задания масштаба и стилей линий.
Опираясь на основные принципы создания чертежа, для Компас-график 2D создали тестовую альфа версию библиотеки экспорта в SVG.

Библиотека работает в версии Компас-график 9 и выше. Подключается как и все обычные библиотеки.
архив с библиотекой и тестовым примером

Перечень предусмотренных возможностей:

  • тип документа — чертёж стандартный или нестандартного формата,
  • оформление по умолчанию только — Чертёж конструкторский. Первый лист
  • экспорт видов с указанием цвета и масштаба
  • экспорт слоёв с указанием цвета
  • экспорт графических элементов: линия, дуга, окружность, точка, NURBS, элипс, прямоугольник, полилиния.

Тестовый файл чертежа, более 3000 элементов.

При экспорте выбираются параметры как для настройки печати:

  • чёрный (чёрно-белое)
  • установленный для вида (используются цвет вида)
  • установленный для слоя (используются цвет слоя)
  • установленный для объекта (как обычно отображается в Компас-график)

Можно вывести всё тонкими линиями.

Сравнительная таблица размера файла в разных форматах

Файл Результат, байт
Чертеж.cdw (Компас-график 9) 182 828
Zip фай с Чертеж.cdw (Компас-график 9) 69 274
Результат экспорта файла Чертеж.cdw в unnamet.svg 306 678
Zip фай с unnamet.svg 55 763

Примечание: При экспорте заносились комментарии и класс для элементов задавался в виде «line-type-1» вместо короткого «lt1». Для Компас-график не использовалась последняя версия.

В тесте пока нет графических элементов как размеры и другие сложные элементы чертежа для полного сравнения размеров файла бинарного и текстового для описания чертежа. Но уже видно что в текстовый формат SVG не так уж и плох. При описании чертежа в формате функции JavaScript может значительно сократить текстовый файл и не уступать бинарному.

ссылка на оригинал статьи http://habrahabr.ru/post/187026/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *