Проблемы использования формата DWG в LibreCAD и FreeCAD

В связи с появлением материала Установка бесплатного кроссплатформенного 2D CAD (САПР) DraftSight на kubuntu 12.10 x86-64, а также из-за обещания осветить тему, вынесенную в заголовок данного материала, я взял на себя смелость рассказать о происходящем.

Как известно любому инженеру, DWG — собственный формат продуктов Autodesk с 1982 года. За минувшие десятилетия он стал чем-то вроде стандарта де-факто в высокотехнологичных и наукоёмких отраслях, в производстве, строительстве и т.д.

Несмотря на существование форматов типа STEP (ISO 10303), DWG остаётся частью слишком многих технологических процессов. В случае с ними всё очень просто и жёстко: либо вы можете открыть и сохранить DWG, либо вы не можете сделать свою работу. Соответственно, отсутствие поддержки DWG резко снижает пригодность свободных САПР для решения повседневных задач.

Ситуацию с DWG в целом здоровой тоже не назовёшь. Ещё не так давно ведущие разработчики САПР выясняли отношения по поводу прав на торговую марку DWG, и на текущий день они находятся, преимущественно, в двух лагерях.

Лагерь Autodesk не производит никакой публично доступной документации на формат. Лагерь Open Design Alliance публикует спецификацию. Ни одна из этих сторон не производит SDK, совместимый с лицензиями СПО, и это притормаживает работу некоторых разработчиков СПО.

С появлением и мгновенным ростом популярности DraftSight, свободной двухмерной системы проектирования от Dassault Systems, положение вещей заметно улучшилось за счёт поддержки программой DWG и отсутствием у неё ценника. Тем не менее, мы говорим о закрытом софте, контролируемом одной компанией. Некоторых это очень волнует.

В 2008 году, за несколько лет до выхода DraftSight, Фонд СПО (Free Software Foundation, далее FSF) признал важность поддержки DWG в свободном софте и назначил решению этой задачи высокий приоритет. В 2009 году несколько бразильских программистов начали проект LibreDWG, основывающийся на коде libdwg — предыдущей, прекращённой попытки создать библиотеку для работы с файлами в формате DWG.

Проект взял достаточно резвый старт, но в начале 2011 года работа над ним была приостановлена. Причин тому несколько.

Первая — неполная спецификация на формат DWG. Опубликованная Альянсом спецификация в течение долгого времени содержала огромное количество пробелов и документировала формат только до версии 2004. Больше того, в течение некоторого времени в публичном доступе находился повреждённый файл PDF.

Вторая — лицензия GPLv3. Для пользовательского софта это крайне неудачный выбор, поскольку свободные САПР обычно либо наследуют лицензию, либо используют третьесторонние компоненты, лицензия которых не позволяет обновить лицензию самого софта до более новой.

FSF является единственным правообладателем кода LibreDWG и до недавних пор резко возражал против релицензирования LibreDWG. Применительно к проекту FreeCAD и Йорику ван Хавре лично Ричард Столлман публично написал авторам LibreDWG ровно следующее: «Вам не следует менять лицензию библиотеки. Лучше объясните ему [Йорику] условия её использования.»

Фелипе Санчес (один из авторов LibreDWG) прокомментировал ситуацию следующим образом: Задача проекта GNU LibreDWG — дать людям возможность читать файлы в формате DWG, не устанавливая проприетарное ПО. Нам не навится формат DWG, и мы не хотим поощрять его широкое применение, делая возможной поддержку формата где угодно.

Вместо этого мы хотим обеспечить поддержку DWG только в тех приложениях, где она действительно нужна. Главным образом речь идёт о свободных САПР, для которых это во многом определяет способность конкурировать с закрытыми продуктами вроде AutoCAD.

Как видно из комментария разработчика он не питает особо тёплых чувств к формату, но по крайней мере отдаёт себе отчёт в том, что его поддержка необходима для здоровой конкуренции с платным софтом. Но речь идёт о событиях 2011 года. Что же происходит сейчас?

Из-за несовместимости лицензий несколько активно развиваемых свободных САПР не могут напрямую использовать LibreDWG. Это, в свою очередь, демотивировало одного из авторов LibreDWG, который прекратил работу над проектом. Чтобы решить сложившуюся проблему, авторы LibreDWG в январе 2012 года обратились с просьбой релицензировать код к Free Software Foundation как владельцу авторских прав на библиотеку. Это позволило бы достаточно легко реализовать поддержку DWG в таких САПР как LibreCAD и FreeCAD. На конец января сотрудники FSF были не в состоянии дать однозначный ответ.

К марту месяцу текущего (2012) года официального заявления от FSF не было (и сейчас я его тоже найти не могу). Что касается LibreDWG, в феврале была кратковременная вспышка активности в ветке R2007, где ведётся работа по реализации одноимённой версии формата. Этим дело и ограничилось.

За это время авторам САПР было не раз указано на возможность реализации поддержки DWG через модуль, лицензируемый под GPLv2+, что позволило бы обойти ограничение.

Соавтор LibreCAD Рис ван Твиск (Ries van Twisk) прокомментировал ситуацию таким образом:

Да, мы действительно можем написать плагин. Но на это нужно положить массу времени и сил из-за того, как устроен LibreCAD. Все классы LibreCAD лицензированы строго под GPLv2, и для того, чтобы сделать доступ модулей к ним возможным, нам пришлось бы написать множество прокси-объектов. Это означает создание довольно корявой архитектуры модулей, что нас в принципе не устраивает.

Поэтому мы назначили поддержке DWG низкий приоритет и вынуждены говорить пользователям, что не можем сейчас это реализовать из-за огромного объёма работы, которую надо проделать, чтобы с лицензионной точки зрения всё было гладко.

Лично я расстроен из-за того, что FSF не связались с нами. У меня неплохие отношения с одним из разработчиков [LibreDWG], но абсолютно никаких с FSF. Такова жизнь.

Вместе с тем, мы не отказались от идеи реализовать поддержку DWG. У нас есть некоторые идеи, но пока что это всё на стадии проектирования, показывать пока нечего.

Йорик ван Хавре (Yorik van Havre) из команды FreeCAD посчитал нужным сказать следующее:

Для нас тема, по большому счёту, закрыта. Однако если в LibreCAD будет реализована поддержка DWG, мы можем передумать. Конечно, тут сразу же возникнет очевидная проблема: LibreCAD является двухмерной САПР, а наши пользователи сразу начнут просить 3D. 3D в DWG/DXF — это огромные куски двоичных данных ACIS, т.е. ещё один формат.

Словом, если они обеспечат поддержку DWG, мы можем попробовать один вариант. Сейчас на нашем форуме идёт обсуждение возможности использовать новую архитектуру модулей LibreCAD для обеспечения двухсторонней коммуникации между нашими приложениями. Это пока только разговоры, но если LibreCAD справится с поддержкой DWG, дело может получить новый оборот.

Иными словами, даже если FSF и дальше будет затягивать с решением или откажется релицензировать код (а это весьма вероятно), надежда ещё не потеряна. В конце прошлой недели (речь идёт о середине апреля 2012 года) к обсуждению был подключен Ричард Столлман, но никаких официальных заявлений он пока не сделал.

Вот такая, если вкратце, ситуация с поддержкой формата DWG в открытых САПР.

Источники: 1, 2, 3.

Надеюсь, я удовлетворил любопытство коллектива относительно версий лицензий, проблем с написанием и т.д. :-)

Комментарии (41)

0
a4_necromant - 21 Ноябрь, 2012 - 18:16
Изображение пользователя a4_necromant.

А драфтсайт после того как обновился с альфы на бетту попросил переактивацию.
Мне уже страшно стало.

0
Vlad_W_1999 - 22 Ноябрь, 2012 - 11:30

Не бойся. Это их нормальное поведение. :-) А вот когда перейдут на релиз, тогда стоит начинать бояться: могут попросить денежку.

0
nockdown - 21 Ноябрь, 2012 - 18:37
Изображение пользователя nockdown.

Да уж, как-то не весело. Никогда раньше не думал, что внутри свободного ПО могут так друг другу палки в колеса ставить. Спасибо за статью.

0
a4_necromant - 21 Ноябрь, 2012 - 20:59
Изображение пользователя a4_necromant.

да не без помощи автодеска все это....

+1
Vlad_W_1999 - 22 Ноябрь, 2012 - 11:33

Сомневаюсь. У нас такое дружное сообщество, что с задачей напакостить ближнему своему справится без посторонней помощи. :-)

0
Vlad_W_1999 - 22 Ноябрь, 2012 - 11:32

Люди везде люди. Кто-то кому-то персонально не нравится. И именно из этого иррационального чувства возникают такие бездарные ситуации. Плохо только то, что Столлман изначально повёл себя как законченный дурак. Ну так это для него не в первый раз.

0
a4_necromant - 22 Ноябрь, 2012 - 17:20
Изображение пользователя a4_necromant.

у каждого свои тараканы)))

0
Vlad_W_1999 - 23 Ноябрь, 2012 - 00:45

Это да. :-)

0
DarkneSS - 21 Ноябрь, 2012 - 19:20
Изображение пользователя DarkneSS.

Хм, я представлял задачу качественно, но не количественно. Возможно, не зря я перелицензировал свой выкидыш под LGPL2+ =)
Спасибо за интересную и познавательную статью. Хотело бы надеяться, что FSF пойдёт на встречу, но думается мне, что это маловероятно =(

0
Vlad_W_1999 - 22 Ноябрь, 2012 - 11:36

Я же говорил, что там всё достаточно "весело"? Надеюсь, в следующий раз мне не придётся писать развёрнутую статью, чтобы доказывать очевидное? ;-)

Надежда на то, что в FSF одумаются ещё есть. Ровно как и есть возможность обхода. Но как-то новостей с этого фронта пока не поступает. Поживём — увидим.

+1
DarkneSS - 22 Ноябрь, 2012 - 14:02
Изображение пользователя DarkneSS.

Кому очевидное, а кому и нет :P Но данную тему можно считать закрытой.

0
Vlad_W_1999 - 23 Ноябрь, 2012 - 00:49

Я не считаю, что презумпция невиновности не работает. Наоборот: если считаешь необходимым что-то опровергнуть, то материалы должен искать ты.

Если я что-то утверждаю, то это означает только то, что я в теме.

0
DarkneSS - 23 Ноябрь, 2012 - 08:05
Изображение пользователя DarkneSS.

Какбэ и я был в теме про прослойку для обеспечения совместимости. Что ж, авторы данной программы считают такое решение неприемлемым и могут это обосновать.

0
Vlad_W_1999 - 23 Ноябрь, 2012 - 11:53

Меня одно поражает: явное отсутствие смысла в лицензировании по GPL3 (ведь прикрутить библиотеку к двум основным свободным CAD-пакетам становится проблематично) и нежелание данную ситуацию исправить. Как-то сразу же начинает тянуть в конспирологию. :-) С другой стороны, может быть человеческая глупость. Или подлость — месть тем, кто персонально не нравится. Бредовая ситуация...

0
DarkneSS - 23 Ноябрь, 2012 - 14:50
Изображение пользователя DarkneSS.

Исправить - это получить согласие всех контрибьюторов и/или переписать проблемные участки. Смысла лицензировать библиотеку под чистой гпл я смысла не вижу, но знаю, что фсф любит так поступать.

0
Vlad_W_1999 - 24 Ноябрь, 2012 - 21:29

Я так понял, что всё принадлежит исключительно FSF и потому проблем, кроме явного нежелания, я не вижу.

0
DarkneSS - 25 Ноябрь, 2012 - 00:23
Изображение пользователя DarkneSS.

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

0
Vlad_W_1999 - 25 Ноябрь, 2012 - 02:23

Понятия не имею, если честно. Хочешь провести исследование и поделиться с нами результатами? ;-)

0
DarkneSS - 25 Ноябрь, 2012 - 12:17
Изображение пользователя DarkneSS.

Бггг.
Upd. По результат исследования нужно получить согласие как минимум всех этих товарищей. При большом желании можно заломиться к каждому в личку.

0
Vlad_W_1999 - 25 Ноябрь, 2012 - 12:46

Полагаю, что можно. Если есть желание, то давай соберём коллектив и подолбим этих товарищей – гуртом, как известно, и батька бить легче. :-)

0
DarkneSS - 25 Ноябрь, 2012 - 12:58
Изображение пользователя DarkneSS.

Да чо тут коллектив. Надо составить им послание, обрисовать ситуацию и разослать. Предложи авторам проги.

0
Vlad_W_1999 - 25 Ноябрь, 2012 - 13:34

Можно подумать и самим. В какой-то период времени можно подключить авторов LibreCAD (выходы на них есть). Короче, давай подумаем.

+1
DarkneSS - 25 Ноябрь, 2012 - 13:35
Изображение пользователя DarkneSS.

Здравствуйте, я Вася Пупкин, перелицензируйтесь, пожалуйста ;)

0
Vlad_W_1999 - 25 Ноябрь, 2012 - 13:38

Нет. "Здравствуйте, мы коллектив заинтересованных пользователей". Да ещё и тысячи полторы подписей... Да ещё и подключить ряд известных ребят, занимающихся переводом... Да ещё и ссылки на ряд публикаций по теме...

Ты до сих пор считаешь, что от тебя ничего не зависит? Ошибаешься.

0
a4_necromant - 25 Ноябрь, 2012 - 15:29
Изображение пользователя a4_necromant.

от одного ничего не зависит. Нужно собрать тысяси, тогда прислушаються, т.к. бунт на корабле никому не нужен.....

0
Vlad_W_1999 - 25 Ноябрь, 2012 - 17:32

Я знаю (по личному опыту), что и от одного много зависит.

0
Cyber100 - 23 Ноябрь, 2012 - 21:47
Изображение пользователя Cyber100.

чем я смогу реально без костылей и вайна открыть dwg?
редактирование не интересно.

0
a4_necromant - 23 Ноябрь, 2012 - 22:50
Изображение пользователя a4_necromant.

draftsight

0
Cyber100 - 24 Ноябрь, 2012 - 12:17
Изображение пользователя Cyber100.

32bit only...(

0
DarkneSS - 24 Ноябрь, 2012 - 12:37
Изображение пользователя DarkneSS.

skype тоже, что не мешает им пользоваться.

0
Cyber100 - 24 Ноябрь, 2012 - 21:48
Изображение пользователя Cyber100.

битность не мешает пользоваться. удручает сам факт существования токма такой разрядности интересуемой утилити.

0
a4_necromant - 24 Ноябрь, 2012 - 18:35
Изображение пользователя a4_necromant.

там можно ручками дописать дебку о перепаковать, тогда заработает. У меня 64 битка, и я пользуюсь драфтсайтом....

0
boskor - 26 Ноябрь, 2012 - 10:10

вот ссыль на пересбор дебки с добавлением 64 битной архитектуры. сюды
от себя добавлю, что draftsight для меня интересен скорее как открыватель закрытого формата. Рисовать в нем мне не очень удобно. Librecad мне кажется гораздо более привлекательным и удобным, + открытость формата. Правда, у последнего очень большие траблы с печатью напрямую из программы и экспорт в .pdf также некорректен.
а так, если что - на мою подпись можете рассчитывать, если дело дойдет до письма.

0
a4_necromant - 26 Ноябрь, 2012 - 10:50
Изображение пользователя a4_necromant.

лучше в архитектуры напмсать просто all....

0
boskor - 26 Ноябрь, 2012 - 18:31

именно это там и советуется

0
Vlad_W_1999 - 24 Ноябрь, 2012 - 21:29

Поиск по сайту рулит. :-)

0
Гость - 14 Январь, 2013 - 11:10

ну вот и дождалися - драфтзайт теперь платный для контор

0
Vlad_W_1999 - 16 Январь, 2013 - 13:01

Пруфлинк?

0
Гость - 25 Январь, 2013 - 18:26

"я взял на себя смелость рассказать о происходящем."

s/рассказать/перепечатать/

:)

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры