
LibreDWG
Библиотека C с открытым исходным кодом для управления файлами AutoCAD DWG
Создавайте, редактируйте, читайте, обрабатывайте и конвертируйте модели AutoCAD DWG в файлы SVG с помощью API CAD с открытым исходным кодом C++.
Что такое LibreDWG?
LibreDWG — удобная бесплатная библиотека на языке C, которая невероятно полезна при работе с чертежами AutoCAD DWG. DWG — популярный формат файлов, созданный компанией AutoDesk ещё в 1970-х годах для только появляющихся САПР. Несмотря на то, что DWG — проприетарный формат, он по-прежнему остаётся выбором многих подрядчиков. Эта библиотека удобна в использовании и предоставляет API, помогающий разработчикам программного обеспечения создавать приложения, работающие с файлами DWG.
Библиотека предлагает множество полезных функций для работы с файлами AutoCAD DWG. Вы можете открывать и просматривать чертежи DWG, создавать новые файлы DWG, конвертировать их в различные форматы, преобразовывать в DXF и JSON, преобразовывать DWG в SVG и Postscript, использовать dwggrep для поиска текста, dwglayer для отображения слоёв и многое другое.
В библиотеке разработчики программного обеспечения могут включить или отключить поддержку записи в формате DWG. Изначально эта функция отключена, но после активации вы сможете использовать её для записи в формате DWG. Конвертация большинства DWG-файлов в формат r2000 обычно проходит без проблем. Программа для чтения DWG поддерживает различные форматы файлов, включая JSON, DXF, DXFB, GeoJSON, YAML, XML/OGR, GPX, SVG и PS.
Начало работы с LibreDWG
Вам необходимо установить базовые инструменты разработки (компилятор C99, например, gcc/clang, make, autoconf, automake и libtool). Создайте клон библиотеки с помощью следующей команды.
Клонировать библиотеку с помощью следующей команды
git clone git://git.sv.gnu.org/libredwg.git
Теперь измените каталог на папку libredwg, созданную git (cd libredwg), и выполните следующие команды в терминале.
Измените каталог на папку libredwg
$ sh autogen.sh
$ ./configure --enable-trace # (this will enable debugging messages)
$ make
$ sudo make install
$ make check
Создание DWG-файлов AutoCAD с помощью библиотеки C
Бесплатная библиотека LibreDWG C позволяет разработчикам программного обеспечения создавать новые DWG-файлы AutoCAD в своих собственных приложениях C. После создания файла вы можете вставлять в чертежи DWG различные типы объектов, такие как таблицы, фигуры, штриховки, камеры, источники света, линии, сетки, многострочный текст, 2D- и 3D-полилинии, текст, таблицы, трассировки и многое другое. Библиотека также поддерживает выравнивание объектов, доступ к ним и лёгкое обновление их свойств. Редактор DWG поддерживает различные форматы входных данных, такие как DXF, DXFB и JSON.
Чтение файлов AutoCAD DWG через библиотеку C
Библиотека LibreDWG с открытым исходным кодом обеспечивает полную поддержку программного доступа и чтения файлов AutoCAD DWG в приложениях .NET всего парой строк кода на C. Программа чтения DWG поддерживает различные форматы вывода, такие как JSON, DXF, DXFB, GeoJSON. Позже также будут добавлены форматы файлов YAML, XML/OGR, GPX, SVG и PS.
Как читать AutoCAD DWG через библиотеку C?
int error;
Dwg_Data dwg;
error = dwg_read_file(filename, &dwg);
if (!error)
{
model_xmin = dwg_model_x_min(&dwg);
model_ymin = dwg_model_y_min(&dwg);
double dx = (dwg_model_x_max(&dwg) - dwg_model_x_min(&dwg));
double dy = (dwg_model_y_max(&dwg) - dwg_model_y_min(&dwg));
double scale_x = dx / (dwg_page_x_max(&dwg) - dwg_page_x_min(&dwg));
double scale_y = dy / (dwg_page_y_max(&dwg) - dwg_page_y_min(&dwg));
//...
}
dwg_free(&dwg);
Преобразование DWG-файла в SVG с помощью библиотеки C
SVG — это очень популярный стандарт W3C для двухмерной векторной графики. Библиотека LibreDWG с открытым исходным кодом позволяет разработчикам программного обеспечения преобразовывать чертежи AutoCAD DWG в файлы формата SVG с помощью команд C. Для преобразования файла SVG (масштабируемая векторная графика) необходимо открыть файл DWG и вывести его в формате SVG. Обратите внимание, что библиотека обрабатывает как двухмерные данные, так и трёхмерное содержимое DWG, поскольку SVG поддерживает только двухмерные изображения.