CAD中的dxf文件解析(二):dxflib的使用

1.前言

         上一篇中對dxf文件及文件中常見的需要解析的直線,圓,圓弧,橢圓,多段線的說明,對dxf文件有了初步的瞭解,並做好了下載dxflib,dxf幫助文檔的準備(沒有準備的可以回到上一篇)。

https://blog.csdn.net/weixin_40196271/article/details/106411836

2.dxflib中文件說明

        下載好dxflib後,我們可以試運行它的demo,發現:

         dl_entities.h:這裏面是定義點,線,圓,圓弧,多段線,角點等的結構體的文件(DL_CircleData,DL_PointData等)

         dl_dxf.h,dl_dxf.cpp:這裏面是具體的對點,線,圓,圓弧,多段線等的解析,如果需要導出需要的點,線,圓,圓弧,多段線的信息(具體可以看addpoint, addline, addcircle, addpolyline, addarc等函數),可以從這裏增加容器等導出數據。

         dl_wirter_ascii.cpp:這裏是要寫入dxf時用到的文件,具體的我還在研究。

         測試demo時,我發現demo並不能直接用,比如我的dxf文件在cad中進行修改後,會輸出一些多餘的信息。所以要在上一篇說的那樣,從ENTITIES中入手,在ENTITIES的部分去尋找,可以在dl_dxf.cpp的processDXFGroup函數中入手修改去進行查找。

         另外一個就是塊的問題,如果插入塊,ENTITIES中會有INSERT,並且下面還有塊名,而真正的塊信息還在BLOCKS中。所以塊的信息需要去BLOCKS中找到對應的塊名再進一步進行解析,並且解析完塊要記得與後面的ENTITIES中的數據分離開來,不然會出現二次解析。

         具體的層,點,線,圓,圓弧等解析代碼就不放出來了,建議自己去demo裏面看。還需要提醒的是,圓弧的角度單位爲角度制,而橢圓的爲弧度制。

3.總結

這篇簡要的說明了一下dxflib中的一些文件的情況,以及實際應用中遇到的問題。下一篇中將主要對多段線解析成線和圓弧進行說明。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章