1. 程式人生 > >基於C++的開源庫dxflib讀取dxf檔案上手筆記

基於C++的開源庫dxflib讀取dxf檔案上手筆記

dxflib is an open source C++ library mainly for parsing DXFTM files. QCAD, CAM Expert and vec2web all use dxflib to import DXF files. dxflib can also write DXF files, but you need to have good knowledge of the DXF format to produce valid output.

dxflib是一個開源的C++庫,用於處理dxf檔案。dxf檔案是一種通用的CAD資料交換格式,使用廣泛。

首先在官網下載的原始碼,很小隻有98KB。

http://www.ribbonsoft.com/en/dxflib-downloads

由於第一次使用這種開源的包,所以讀完手冊之後,經歷了曲折的過程。按照手冊,先是下載CYGWIN,折騰好之後編譯出現各種許可權等問題,然後下載MinGW32,結果線上安裝包每次在最後網路連不上,準備用第三方包嘗試的。

網上的資料有的是把官方手冊直譯的一遍,有的主要是介紹了dxf檔案格式,而對於如何呼叫這個原始檔沒有細緻的說明,對於第一次使用開源庫的人來說,很容易摸不著頭腦。後來發現沒有make檔案,不用編譯,直接帶入工程稍微除錯修改就可以使用,下面我給出詳細過程。

軟體環境:VS2013、dxflib-3.17.0-src

1.新建專案:選擇Visual C++的空專案。

2.將dxflib-3.17.0-src\src下的cpp與h檔案分別新增進原始檔和標頭檔案,編譯可能會報錯:

錯誤         1       error C4996: 'fopen': This function orvariable may be unsafe. Consider using fopen_s instead. To disable deprecation,use _CRT_SECURE_NO_WARNINGS. See online help for details.   c:\users\hao\desktop\project1\dxflib-3.17.0-src\src\dl_dxf.cpp         115  1       Project1


這是因為開啟安全開發生命週期(SDL)的原因,在專案屬性->配置屬性->C/C++裡將SDL檢查關掉,如圖:


3.將dxflib-3.17.0-src\examples\readwrite中的test_creationclass和main函式分別新增進工程,主函式中對命令是以輸入命令引數的方式進行的,這裡我們註釋掉第一個引數的檢測,將第二個引數直接修改為要讀取的dxf檔案的路徑,生成之後執行即可得到讀取到的實體資訊。


得到的實體資訊,四條直線:


對應的dxf原圖形: