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/,如下图所示:

Figure 1.1 Netgen Mesh Generator on SourceForge.net

本文主要介绍如何对下载的Netgen源码进行编译生成Netgen程序和程序开发所需要的库nglib。

二、Netgen的安装 Installing Netgen

根据机器的配置选择32位或64位的安装程序,和普通软件的安装一样,下一步直到完成,安装好之后就可以使用了。

Figure 2.1 Netgen 5.1

安装完成后,在程序的开始菜单中会生成链接,如下图所示:

Figure 2.2 Netgen in Start menu

选择Netgen 5.1即可启动程序,测试一下效果,如下图所示:

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。

Figure 3.1 3rdparty library for Netgen

原来没发现Netgen在这里把这些第三方库都提供了,尝试自己编译Tcl、Tk和Togl,前两个已经编译成功了,编译到Togl时也没找到什么资料,就放弃了,浪费了时间。直接根据需要下载Visual Studio对应的第三方库文件,再下载好zlib,很快就可以编译成功了。最好按如下方式来组织这些第三方库:

Figure 3.2 Default location of 3rdparty library for Netgen

配置好第三方库,直接选择windows文件夹中的Visual Studio解决方案进行编译基本上没什么问题了。最多再修改下头文件的目录或库文件的目录。为了使最后生成完整的程序,还需要修改下后处理的批处理文件:postBuild_netgen.bat,将其中的路径与机器上的netgen路径对应:

Figure 3.3 Modify the post build bat file to copy files

这样在编译链接完成后,会自动将所需要的文件复制到一个文件夹,还是很方便的。如图所示,生成了netgen-instNoOCC_Win32和nglib-instNoOcc-Win32:

Figure 3.4 Build Netgen and nglib without OpenCascade

库nglib的编译和Netgen的方法一样,也需要修改下后处理的批处理文件postBuild_nglib.bat,会自动把程序开发所需要的库和头文件复制到一个文件夹下面,方便程序使用。

使用编译好的Netgen生成的网格如下图所示:

Figure 3.5 Shaft mesh generated by Netgen

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

Hello Netgen的更多相关文章

  1. Netgen mesh library : nglib

    Netgen mesh library : nglib eryar@163.com 摘要Abstract:本文主是对Netgen的库nglib的用法进行介绍.主要参考资料是Netgen用户指南.最后给 ...

  2. EasyMesh - A Two-Dimensional Quality Mesh Generator

    EasyMesh - A Two-Dimensional Quality Mesh Generator eryar@163.com Abstract. EasyMesh is developed by ...

  3. Mesh Algorithm in OpenCascade

    Mesh Algorithm in OpenCascade eryar@163.com Abstract. Rendering a generic surface is a two steps pro ...

  4. VHDL生成的ngc文件被verilog的工程调用的问题

    1. 问题的提出 工程a是一个soft core,用VHDL写的,综合的时候去掉了"Add I/O buffers" ,并将-iob(Pack I/O Registers into ...

  5. Surface Normal Averaging

    Surface Normal Averaging eryar@163.com 摘要Abstract:正确设置网格面上点的法向,对几何体在光照等情况下显示得更真实,这样就可以减少顶点数量,提高渲染速度. ...

  6. Tcl Tk Introduction

    Tcl Tk Introduction eryar@163.com 摘要Abstract:Tcl/Tck脚本可以很容易实现用户自定义的命令,方便的创建图形化的用户界面GUI,所以Tcl和Tk的应用领域 ...

  7. 3D建模与处理软件简介

    [前言]自半年前笔者发表博客“什么是计算机图形学”以来,时常有人来向笔者询问3D模型的构建方法与工具.笔者的研究方向是以3D技术为主,具体包括3D建模,3D处理及3D打印三个方面,在3D建模与处理方面 ...

  8. CG&CAD resource

    Computational Geometry The Geometry Center (UIUC) Computational Geometry Pages (UIUC) Geometry in Ac ...

  9. xapp1151_Param_CAM模块安装

    xapp1151_Param_CAM模块安装 所需生成模块 TCAM CAM 下载链接 赛灵思技术支持网站:http://www.xilinx.com/support.html 并在网页中搜索xapp ...

随机推荐

  1. 『TCP/IP详解——卷一:协议』读书笔记——13

    2013-08-24 16:03:39 4.6 ARP代理 ARP代理(Proxy ARP):如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求.这样可 ...

  2. 解决Win7下VC++6.0与Office不兼容的问题

    在Windows7下安装Visual C++ 6.0后,如果同时安装了Microsoft Office就会出现打开文件的时候出现异常,而导致VC6崩溃. 微软已经为我们解决了问题,开发出一个插件(Fi ...

  3. Win7下Eclipse中文字体太小

    http://www.cnblogs.com/newdon318/archive/2012/03/23/2413340.html 最近新装了Win7,打开eclipse3.7中文字体很小,简直难以辨认 ...

  4. mysql 基本操作语句

    mysql 基本操作笔记: 创建表demo:CREATE TABLE `role` ( `role_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMME ...

  5. .Net下的 ORM框架介紹

    在.NET平台下,关于数据持久层框架非常多,本文主要对如下几种做简要的介绍并推荐一些学习的资源: 1.NHibernate 2.NBear 3.Castle ActiveRecord 4.iBATIS ...

  6. [转]Git - 重写历史

    转自http://git-scm.com/book/zh/Git-%E5%B7%A5%E5%85%B7-%E9%87%8D%E5%86%99%E5%8E%86%E5%8F%B2    重写历史 很多时 ...

  7. How to Install JAVA 8 (JDK/JRE 8u111) on Debian 8 & 7 via PPA

    Oracle JAVA 8 Stable release has been released on Mar,18 2014 and available to download and install. ...

  8. python输入输出

    python 如何读取控制台输入的数据 比方说:从控制台读一个人的名字,赋给变量name   如下: name = input("name:") print(name) 如何读取一 ...

  9. PN结的形成

    P型半导体 在纯净的硅晶体中掺入3价元素如硼,使之取代晶格中硅原子的位置,就形成了P型半导体.在P型半导体中,空穴为多字,自由电子为少子,主要靠空穴导电.掺入的杂质越多,空穴的浓度就越大,导电性就越强 ...

  10. linux配置java环境变量(详细) -copy

    一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586.bin 这时会出现一段协议,连继敲回车, ...