Нелегко получить данные только из файла .dwg, но гораздо проще из файла .dxf.Поэтому я решил преобразовать файл .dwg в файл .dxf и просто обработать файл .dxf.Это не быстро, но это также альтернатива, так как нет другого простого способа обработки файлов .dwg.
Конвертер находится в https://www.opendesign.com/guestfiles/TeighaFileConverter.
Моя ОС - CentOS 6.5 (GCC 4.4.7), поэтому я выбираю Teigha File Converter для Linux 64-бит (RPM) .
#Install some qt5 lib
yum install -y qt5*
# If your libstdc++.so.6 has GLIBCXX>=15, you can pass the following three steps (using strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX to find)
mv libstdc++.so.6.0.20 /usr/lib64/libstdc++.so.6.0.20
mv /usr/lib64/libstdc.so.6 /usr/lib64/libstdc.so.6.bk
ln /usr/lib64/libstdc++.so.6.0.20 /usr/lib64/libstdc.so.6
# Install TeighaFileConverter
rpm -i --nodeps TeighaFileConverter_QT5_lnxX64_4.7dll.rpm
Если вы хотите использовать графический интерфейс, вам нужно установить Qt5, или вы можете просто использовать его в терминале или использовать в качестве команд оболочки в вашей программе.
TeighaFileConverter 'input_folder' 'output_folder' "output_version" "output_type" "recurse_folder" "audit" -platform offscreen
# 'input_folder' can't be same with output_folder
# For example, convert dwg to dxf
TeighaFileConverter ./ ./dxf "ACAD10" "DXF" "0" "0" -platform offscreen