2012年4月20日 星期五

Blender與CAD檔的問題

最近因為工作關係,我需要處理別人提供的DWG檔,這是一種商業CAD軟體廣泛使用的存檔格式,而大部分商業3D軟體也可以直接匯入DWG進行處理。但我在Blender理卻找不到任何匯入的選項,上網找也找不到太多的解答,後來我看到這兩篇文章(連結一連結二)。才大概了解了狀況。所以在這裡大概做個分享筆記。



基本上目前Open Source界對DWG是無解的狀況,只有一個希望就是LibreDWG這個專案,但這個專案進行遲緩並且難以被使用,主要原因有兩個。

首先公開對於DWG這個檔案格式的解說文件非常不完整,少了很多關鍵的部分,導致LibreDWG的開發者難以重建出一個可以讀取DWG的API。

再來是LibreDWG的版權問題,LibreDWG由於是基於其他專案上架構的,所以承襲了使用GPL v3這種版權,但也導致與其他Open Source軟體的版權不合而無法被使用,LibreDWG的目標並不是讓Open Source軟體可以支援DWG這個格式,他們討厭DWG,不希望助長這種格式的使用率,但是太多的CAD流程需要使用DWG,所以他們的目標是讓少數非常需要支援DWG格式的軟體能做到基本的讀取。

以上兩個困難,導致Open Source裡沒有一套可用的Library,關於第一點,文件現在雖然有漸漸的完善,但離商業等級的功能還是有些距離,關於第二點,LibreDWG的版權所有者FSF(Free Software Foundation)有在評估重新申請LibreDWG授權的可行性,但因牽扯因素很多,所以進度非常緩慢。

至於另外一個檔案DXF,是一個大部分CAD軟體都支援的格式,在Open Source軟體理也有很好的支援,就成了優先的替代方案。所以若要用Open Source工具處理DWG檔,第一件事就是先想辦法把DWG轉成DXF。如何轉? 上面的文章有提到一個軟體DraftSight,這是一個免費軟體,可以讀取DWG檔,並轉存成DXF。可能是目前唯一解決方案。

另外一個做法就是我這次用的,直接連絡提供DWG檔的那一端,請他們幫你先轉成DXF,通常所有能存DWG的CAD軟體一定都也能存DXF,所以可以直接幫你省下一堆麻煩。

那當你成功得到DXF檔之後呢?  Blender有一個外掛支援匯入DXF檔,但是這個外掛許久沒更新了,導致我使用時基本上是無法匯入的,在Wiki上寫說由於需要使用這功能的使用者較少,所以他們沒有繼續開發更新這項外掛。

怎麼辦勒?還好InkScape的DXF支援做得很好,所以可以用InkScape打開DXF檔(請用Open不要Import,否則會喪失圖層資訊),然後再直接存成SVG,就可以用Blender成功匯入了。

以上是我這次學到的一些經驗,真的煩了我好一陣子,所以希望這些資訊可以幫助到其他人。

沒有留言:

張貼留言