Hello Netgen


Hello Netgen

eryar@163.com

摘要Abstract:本文主要介紹如何對下載的Netgen源碼進行編譯生成Netgen程序和程序開發所需要的庫nglib。

關鍵字Key Words:Netgen, nglib, Mesh Generator, OpenCascade, Triangulation

一、引言 Introduction

NETGEN是一個二維/三維自動網格剖分工具,並且遵循LGPL開源協議。即可以作為一個帶有用戶界面的單獨程序使用,也可以作為C++的庫文件被其它程序鏈接。Netgen可以跨平台,支持Unix/Linux和Windows。

Netgen最早為奧地利科學家Joachim Schoberl編寫的網格剖分程序,是網格划分技術中極為先進與完善的,在3D網格划分領域更是具有極大的優勢。可以從sourceforge上獲取最新版本的Netgen5.1,網址是:http://sourceforge.net/projects/netgen-mesher/,如下圖所示:

wps_clip_image-25141

Figure 1.1 Netgen Mesh Generator on SourceForge.net

本文主要介紹如何對下載的Netgen源碼進行編譯生成Netgen程序和程序開發所需要的庫nglib。

二、Netgen的安裝 Installing Netgen

根據機器的配置選擇32位或64位的安裝程序,和普通軟件的安裝一樣,下一步直到完成,安裝好之后就可以使用了。

wps_clip_image-10040

Figure 2.1 Netgen 5.1

安裝完成后,在程序的開始菜單中會生成鏈接,如下圖所示:

wps_clip_image-12057

Figure 2.2 Netgen in Start menu

選擇Netgen 5.1即可啟動程序,測試一下效果,如下圖所示:

wps_clip_image-16360

Figure 2.3 Mesh generated by Netgen

三、Netgen的編譯 Compiling Netgen

如果需要在程序中使用Netgen,就需要編譯Netgen來生成程序開發使用Netgen的庫nglib。編譯Netgen需要第三方庫的支持,必須的第三方庫有:

l pthread-w32

l TclTkTixTogl

l zlib

其中pthread-w32和TclTkTixTogl的庫都可以從Netgen的SourceForge上的AdditionalFiles中下載得到。若需要對IGES或STEP文件的讀寫,還需要安裝OpenCascade。

wps_clip_image-19601

Figure 3.1 3rdparty library for Netgen

原來沒發現Netgen在這里把這些第三方庫都提供了,嘗試自己編譯Tcl、Tk和Togl,前兩個已經編譯成功了,編譯到Togl時也沒找到什么資料,就放棄了,浪費了時間。直接根據需要下載Visual Studio對應的第三方庫文件,再下載好zlib,很快就可以編譯成功了。最好按如下方式來組織這些第三方庫:

wps_clip_image-5

Figure 3.2 Default location of 3rdparty library for Netgen

配置好第三方庫,直接選擇windows文件夾中的Visual Studio解決方案進行編譯基本上沒什么問題了。最多再修改下頭文件的目錄或庫文件的目錄。為了使最后生成完整的程序,還需要修改下后處理的批處理文件:postBuild_netgen.bat,將其中的路徑與機器上的netgen路徑對應:

wps_clip_image-21838

Figure 3.3 Modify the post build bat file to copy files

這樣在編譯鏈接完成后,會自動將所需要的文件復制到一個文件夾,還是很方便的。如圖所示,生成了netgen-instNoOCC_Win32和nglib-instNoOcc-Win32:

wps_clip_image-21172

Figure 3.4 Build Netgen and nglib without OpenCascade

庫nglib的編譯和Netgen的方法一樣,也需要修改下后處理的批處理文件postBuild_nglib.bat,會自動把程序開發所需要的庫和頭文件復制到一個文件夾下面,方便程序使用。

使用編譯好的Netgen生成的網格如下圖所示:

wps_clip_image-15922

Figure 3.5 Shaft mesh generated by Netgen

wps_clip_image-32345

Figure 3.6 Box and sphere mesh generated by Netgen

四、結論 Conclusion

通過編譯Netgen並結合OpenCascade來學習網格剖分在幾何造型中可視化的應用。

五、參考資料 References

1. Netgen User Manual,

2. Netgen 算法說明

NETGEN An advancing front 2D/3D-mesh generator based on abstract rules

http://www.asc.tuwien.ac.at/~schoeberl/wiki/publications/netgen_org.pdf

3. zhouschina的博客http://blog.csdn.net/zhouschina/article/details/9050373

 

PDF Version: Hello Netgen


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM