zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    [R] read.table的check.names参数防止读入数据时列名前自动加上"X."
    【宏基因组】MEGAN4,MEGAN5和MEGAN6的Linux安装和使用
    洛谷—— P1077 摆花
    洛谷—— P2733 家的范围 Home on the Range
    BZOJ——T 1801: [Ahoi2009]chess 中国象棋
    洛谷—— P1379 八数码难题
    BZOJ——T 1800: [Ahoi2009]fly 飞行棋
    几种outofmemory
    几种常见web攻击手段及其防御方式
    JVM参数
  • 原文地址:https://www.cnblogs.com/opencascade/p/3500977.html
Copyright © 2011-2022 走看看