一、引言 Introduction
NETGEN是一個二維/三維自動網格剖分工具,並且遵循LGPL開源協議。即可以作爲一個帶有用戶界面的單獨程序使用,也可以作爲C++的庫文件被其它程序鏈接。Netgen可以跨平臺,支持Unix/Linux和Windows。
Netgen最早爲奧地利科學家Joachim Schoberl編寫的網格剖分程序,是網格劃分技術中極爲先進與完善的,在3D網格劃分領域更是具有極大的優勢。可以從sourceforge上獲取最新版本的Netgen5.1,網址是:http://sourceforge.net/projects/netgen-mesher/files/netgen-mesher/,如下圖所示:
下載5.1版本,然後進行編譯,生成開發需要的庫文件。
二、Netgen的安裝 Installing Netgen
根據機器的配置選擇32位或64位的安裝程序,和普通軟件的安裝一樣,下一步直到完成,安裝好之後就可以使用了。
安裝完成後,在程序的開始菜單中會生成鏈接,如下圖所示:
選擇Netgen 5.1即可啓動程序,測試一下效果,如下圖所示:
安裝完全後,會在環境變量中生成NETGENDIR變量,這個會影響後面編程過程中的post_build的影響,因此建議在編譯之後再安裝,或者卸載以前安裝的文件後編譯。
三、Netgen的編譯 Compiling Netgen
如果需要在程序中使用Netgen,就需要編譯Netgen來生成程序開發使用Netgen的庫nglib。編譯Netgen需要第三方庫的支持,必須的第三方庫有:
l pthread-w32
l TclTkTixTogl
l zlib
其中pthread-w32和TclTkTixTogl的庫都可以從Netgen的SourceForge上的AdditionalFiles中下載得到。
如果需要對IGES或STEP文件的讀寫,還需要安裝OpenCascade,但是在實際安裝過程中法向,編譯occ版本時,會出現ng_occ_init鏈接錯誤,
具體問題還需要進一步解決,這裏主要講解不編譯opencascade的依賴的版本。
第三方庫文件中沒有zlib庫,網上下載zlib,運用cmake編譯運行後會生成zlib需要的include,lib文件等。最終將所有三方庫文件組織如下:
編譯過程中還需要自己設置zlib的頭文件,lib文件以及連接的庫文件,這個自己可以方便的添加。
配置好第三方庫,直接選擇windows文件夾中的Visual Studio解決方案進行編譯基本上沒什麼問題了。
編譯之前,爲了使最後生成完整的程序,還需要修改下後處理的批處理文件:postBuild_netgen.bat,將其中的路徑與機器上的netgen路徑對應:
這樣在編譯鏈接完成後,會自動將所需要的文件複製到一個文件夾,還是很方便的。如圖所示,生成了netgen-instNoOCC_Win32和nglib-instNoOcc-Win32:
庫nglib的編譯和Netgen的方法一樣,也需要修改下後處理的批處理文件postBuild_nglib.bat,會自動把程序開發所需要的庫和頭文件複製到一個文件夾下面,方便程序使用。
使用編譯好的Netgen生成的網格如下圖所示: