
LibreDWG
Biblioteka Open Source C do zarządzania plikami AutoCAD DWG
Generuj, edytuj, odczytaj, manipuluj i konwertuj modele AutoCAD DWG do plików SVG za pomocą otwartego interfejsu API CAD C++.
Czym jest LibreDWG?
LibreDWG to poręczna, darmowa biblioteka języka C, niezwykle przydatna podczas pracy z rysunkami AutoCAD DWG. DWG to popularny format plików stworzony przez firmę AutoDesk w latach 70. XX wieku dla aplikacji CAD, które dopiero zaczynały się pojawiać. Mimo że DWG jest formatem zastrzeżonym, nadal jest najczęściej wybieranym przez wielu wykonawców. Ta biblioteka jest przyjazna dla użytkownika i została zaprojektowana w celu zapewnienia interfejsu API, który może pomóc programistom w tworzeniu aplikacji obsługujących pliki DWG.
Biblioteka oferuje wiele przydatnych funkcji do pracy z plikami AutoCAD DWG. Możesz otwierać i przeglądać rysunki DWG, tworzyć nowe pliki DWG, konwertować je do różnych formatów, zmieniać na DXF i JSON, konwertować pliki DWG do SVG i Postscript, używać programu dwggrep do wyszukiwania tekstu, programu dwglayer do wyświetlania warstw i wiele więcej.
W bibliotece programiści mogą włączać i wyłączać obsługę zapisu w formacie DWG. Początkowo ta funkcja jest wyłączona, ale po jej aktywacji można jej używać do zapisu w formacie DWG. Konwersja większości plików DWG do formatu r2000 zazwyczaj przebiega bezproblemowo. Czytnik plików DWG obsługuje wiele formatów plików, w tym JSON, DXF, DXFB, GeoJSON, YAML, XML/OGR, GPX, SVG i PS.
Rozpoczęcie pracy z LibreDWG
Musisz zainstalować podstawowe narzędzia programistyczne (kompilator C99, taki jak gcc/clang, make, autoconf, automake i libtool). Następnie utwórz klon biblioteki za pomocą następującego polecenia.
Klonuj bibliotekę za pomocą następującego polecenia
git clone git://git.sv.gnu.org/libredwg.git
Now change dir to libredwg folder created by git ( cd libredwg ) and issue following commands in terminal
Zmień katalog na folder libredwg
$ sh autogen.sh
$ ./configure --enable-trace # (this will enable debugging messages)
$ make
$ sudo make install
$ make check
Tworzenie plików DWG w programie AutoCAD za pomocą biblioteki C
Bezpłatna biblioteka LibreDWG w języku C umożliwia programistom tworzenie nowych plików DWG programu AutoCAD w ich własnych aplikacjach C. Po utworzeniu pliku można wstawiać do rysunków DWG różne typy obiektów, takie jak tabele, kształty, kreskowania, kamery, światła, linie, siatki, wielowiersze, polilinie 2D, polilinie 3D, tekst, tabele, ślady i wiele innych. Biblioteka obsługuje również ustawianie wyrównania obiektów, dostęp do nich i łatwą aktualizację ich właściwości. Program do zapisu plików DWG obsługuje różne formaty wejściowe, takie jak DXF, DXFB i JSON.
Odczyt plików AutoCAD DWG za pomocą biblioteki C
Biblioteka LibreDWG o otwartym kodzie źródłowym oferuje pełne wsparcie programowego dostępu i odczytu plików AutoCAD DWG w aplikacjach .NET za pomocą zaledwie kilku linijek kodu C. Czytnik plików DWG obsługuje różne formaty wyjściowe, takie jak JSON, DXF, DXFB, GeoJSON. Później również formaty plików YAML, XML/OGR, GPX, SVG i PS.
Jak odczytać plik DWG programu AutoCAD za pomocą biblioteki 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);
Konwertuj plik DWG do SVG za pomocą biblioteki C
SVG to standard W3C dla grafiki wektorowej 2D i cieszy się dużą popularnością. Biblioteka LibreDWG o otwartym kodzie źródłowym umożliwia programistom konwersję rysunków AutoCAD DWG do formatów SVG za pomocą poleceń języka C. Aby przekonwertować plik SVG (Scalable Vector Graphics), należy otworzyć plik DWG i utworzyć plik SVG. Należy pamiętać, że biblioteka obsłuży zarówno dane 2D, jak i zawartość 3D z formatu DWG, ponieważ format SVG obsługuje tylko obrazy dwuwymiarowe.