现在的位置: 首页 > 综合 > 正文

netgen.5.0.0下载地址与Windows下编译方法

2013年11月25日 ⁄ 综合 ⁄ 共 5203字 ⁄ 字号 评论关闭
文章目录

1 综述

Netgen 为奥地利科学家Joachim Schoeberl负责编写的格网(曲面和实体)剖分程序。是格网划分技术中极为先进与完善的,在3D格网划分领域更是具有极大的优势。

2 Netgen5.0.0下载地址

相关下载列表页包括:

http://sourceforge.net/projects/netgen-mesher/files/netgen-mesher/5.0/

Netgen-5.0.0_x64.exe 64位安装程序

Netgen-5.0.0_Win32.exe 32位安装程序

netgen-5.0.0.zip netgen源码

netgen-5.0.0.tar.gz 

Netgen-5.0-dev_x64.exe 

Netgen-5.0-dev_Win32.exe

3 Netgen5.0.0安装

安装Netgen-5.0.0_Win32.exe和普通软件安装一下,双击Netgen-5.0.0_Win32.exe,点点点就安装上了。

4 源码编译

4.1 环境配置和所需三方库文件

源码使用的第三方库

1) POSIX Thread Library多线程库。

编译netgen必须有,编译nglib必须有

2) Tcl库、Tk库、Tix库、Togl库 生成NETGEN的图形用户界面不可缺少的库。

编译netgen必须有

3) OpenCascade Library OpenCascade Library。OpenCascade 是一个非常有名的开源几何图形软件,在这里用来为NETGEN提供STEP、IGES、BREP三种格式的输入功能。

编译netgen时可以不使用该库

4.2 三方库文件下载地址

MSVC2010_libs 

pthreads-w32_x64.zip

TclTkTixTogl_x64.zip 包括Tcl库、Tk库、Tix库、Togl库与界面相关的库。

pthreads-w32_Win32.zip

TclTkTixTogl_Win32.zip

MSVC2008_libs 

pthread-w64.zip

TclTkTixTogl-w64.zip

pthread-w32.zip

TclTkTixTogl-w32.zip

OpenCascade Library OpenCascade Library

Open CASCADE Technology, 3D modeling & numerical simulation注意:请下载6.2或6.3版本,因为NETGEN已经为这两个版本做过测试,用别的可能会出错。

4.3 VS2008下编译Win32版本

官方目前提供为VS2008编译的工程,所以先来说明一下VS2008下编译过程。

4.3.1 Netgen-5.0编译

解压源码netgen-5.0.0.zip和第三方库文件pthread-w32.zipTclTkTixTogl-w32.zip,不使用Open CASCADE Library。

解压文件按照下图组织文件夹结构(也可以修改包含文件和库文件路径,为了方便最好这样):

使用Microsoft Visual Studio 2008 打开windows文件夹下netgen-5.0.sln编译。选择Debug或者Release版本编译,如果安装的Open CASCADE Library库可以选择Debug(OCC)或者Release(OCC)编译,(这里没有测试OCC版)。

编译失败!为什么,下面找一些原因。

但在windows/debug文件夹下成功生成了netgen-5.0.exe,为什么还会提示失败那,这是由于解决方案属性里面的[生成事件]选项卡中[生成后事件]中设置了命令行:

$(ProjectDir)\postBuild_netgen.bat $(ProjectName) $(TargetFileName) $(ConfigurationName) $(PlatformName) $(ProjectDir) nginterface 

解决方法

方案一:在[生成后事件]下[从项目中排除]选择是[是]。编译成功后手动将所需文件到指定文件夹中,dll文件与netgen-5.0.exe放在同一个文件夹下,tcl/lib文件拷贝到netgen-5.0.exe上级目录下lib文件夹下。

方案二:建议使用这种方案,修改windows文件夹下的postBuild_netgen.bat文件,使用记事本打开:

删除下面代码:

if defined NETGENDIR (

   echo Environment variable NETGENDIR found: %NETGENDIR%

   set INSTALL_FOLDER=%NETGENDIR%\..

) else (

   echo Environment variable NETGENDIR not found.... using default location!!!

   if /i "%W_WO_OCC%" == "OCC" (

      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instOCC_%BUILD_ARCH%

   ) else (

      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instNoOCC_%BUILD_ARCH%

   )   

)

替换为

set INSTALL_FOLDER=G:\netgen5.0

在文件末尾添加

REM *** Copy the 3rd Library files into the Install Folder ***

set TCL_LIB_DIR=%INSTALL_FOLDER%\ext_libs\tcl\lib

set TCL_BIN_DIR=%PROJ_DIR%..\..\ext_libs\tcl\bin

set PTHREAD_LIB_DIR=%PROJ_DIR%..\..\ext_libs\pthread-w32\lib

echo Installing 3rd Library files into %INSTALL_FOLDER%\bin ....

xcopy  "%TCL_BIN_DIR%\*.dll" "%INSTALL_FOLDER%\bin\" /i /d /y

xcopy  "%PTHREAD_LIB_DIR%\*.dll" "%INSTALL_FOLDER%\bin\" /i /d /y

xcopy  "%TCL_LIB_DIR%" "%INSTALL_FOLDER%\lib\" /e /i /d /y

if errorlevel 1 goto ThreerdLibraryFailed

echo Installing 3rd Library Files: Completed OK!!

:ThreerdLibraryFailed

echo POSTBUILD Script for %TCL_LIB_DIR% FAILED.....

编译生成成功。

运行G:netgen5.0\bin\netgen-5.0.exe见下图

红色标记的地方和安装程序相比,缺少了一些按钮和菜单,查看cmd窗口发现提示这样几句话:

cannot load ngsolve

error: couldn't load library "libngsolve.dll": this library or a dependent library could not be found in library path

loading demo-application

cannot load demoapp

error: couldn't load library "libdemoapp.dll": this library or a dependent library could not be found in library path

奥,原来是没有libngsolve.dll和libdemoapp.dll动态库的原因,没关系这个问题以后在讨论。下面来看一下nglib编译如何。

4.3.2 Nglib编译

使用Microsoft Visual Studio 2008 打开windows文件夹下nglib.sln编译。选择Debug或者Release版本编译,如果安装的Open CASCADE Library库可以选择Release(OCC)编译(这里没有测试OCC版)。

在编译之前修改windows文件夹下的postBuild_nglib.bat文件,使用记事本打开:

删除下面代码:

if defined NETGENDIR (

   echo Environment variable NETGENDIR found: %NETGENDIR%

   set INSTALL_FOLDER=%NETGENDIR%\..

) else (

   echo Environment variable NETGENDIR not found.... using default location!!!

   if /i "%W_WO_OCC%" == "OCC" (

      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instOCC_%BUILD_ARCH%

   ) else (

      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instNoOCC_%BUILD_ARCH%

   )   

)

替换为

set INSTALL_FOLDER=G:\netgen5.0

编译!

4.4 VS2005下编译Win32版本

4.4.1 netgen-5.0编译

由于源码中是VS2008编译的解决方案和工程文件,所以使用记事本修改netgen-5.0.slnnetgen-5.0.vcproj文件,netgen-5.0.sln文件中第二行:

 Microsoft visual studio Solution File, Format Version 10.0 修改为  Microsoft visual studio Solution File, Format Version 9.0

netgen-5.0.sln文件中第三行:(这是一个注释行可以不修改,还是修改了好) # Visual studio 2008 修改为 #Visual studio 2005

修改netgen-5.0.vcproj文件中第四行:Version=”9,00” 修改为Version=”8,00”

使用VS2005打开编译netgen-5.0.sln,编译过程同VS2008

4.4.2 nglib编译

同样使用记事本修改nglib.slnnglib.vcproj文件,修改内容同上。

使用VS2005打开编译nglib.sln,编译过程同VS2008

4.5 VS2010下编译Win32版本

解压源码netgen-5.0.0.zip和第三方库文件pthreads-w32_Win32.zipTclTkTixTogl_Win32.zip(注意:这俩个必须是vs2010的库文件),不使用Open CASCADE Library

解压文件按照下图组织文件夹结构(也可以修改包含文件和库文件路径,为了方便最好这样):

注意:pthreads-w32_Win32.zip解压出来的文件夹名称和内部文件夹结构不一样。

4.5.1 netgen-50编译

使用vs2010打开netgen-5.0.sln文件,修改工程属性中[连接器]项下[输入]项下的[添加依赖项]修改 pthreadVC2.lib 为 pthreadVC2_Win32.lib;修改Togl17.lib 为 Togl-1.7.lib

开始编译,可能会遇到和2008一样的错误,按上述方法解决就可以啦。

4.5.2 nglib编译

编译nglib时也要修改依赖项 pthreadVC2.lib 为 pthreadVC2_Win32.lib。

5 相关资料

NETGEN用户手册

http://netgen-mesher.sourceforge.net/docs/ng4.pdf

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

抱歉!评论已关闭.