Ну,
Для формата файла DXF спецификация доступна онлайн, так что вы можете написать свой собственный анализатор для этого формата файла, документ можно найти здесь:
http://images.autodesk.com/adsk/files/acad_dxf0.pdf
Но если вы не хотите, вы можете использовать libdxf библиотеку с открытым исходным кодом для анализа файлов dxf, но, по словам разработчика, это «незавершенное производство», вы можете найти его здесь:
https://github.com/bert/libdxf
или вы можете установить его в Ubuntu, используя команду:
sudo apt-get install libdxflib-dev
Также другая библиотека, предоставляемая coin3d (может использоваться отдельно), называется dime и, вероятно, та, которая используется freecad, может быть найдена здесь: https://bitbucket.org/Coin3D/dime
Он также может быть установлен в Ubuntu с помощью следующей команды:
sudo apt-get install libdime-dev
Для формата DWG вы можете использовать библиотеку libredwg из фонда с открытым исходным кодом, и вы можете найти ее здесь:
http://www.gnu.org/software/libredwg/
Но учтите, что согласно Википедии у нее есть собственные проблемы с лицензированием.
http://en.wikipedia.org/wiki/LibreDWG
Доступен ветвь libredwg под именем libDWG, он может читать Форматы файлов DWG R13, R14, R2000 и R2004 и находится по адресу: http://libdwg.sourceforge.net/en/
Я протестировал библиотеку, и проблема в том, что большинство примеров файлов в Интернете имеют более новую версию, чем может загрузить библиотека, что не очень удобно.
Другая хорошая страница (с некоторыми примерами кода) о том, как читать файлы autocad, может быть найдена на веб-сайте ibm здесь: http://www.ibm.com/developerworks/opensource/library/os-autocad/
Суть в том, что dxf - лучший вариант, поскольку он открыт и может поддерживаться, поддержка dwg не может быть легко осуществлена.