文档章节

OpenCascade MeshVS Usage

eryar
 eryar
发布于 2014/11/23 12:34
字数 1253
阅读 58
收藏 0

OpenCascade MeshVS Usage

eryar@163.com

Abstract. MeshVS means Mesh Visualization Service. It can be used to representation mesh in different style, such as colored stress patterns mesh, mesh with text and mesh like vector(with arrow). So MeshVS usually used for CAE programming. This paper focus on the MeshVS usage. 

Key words. OpenCascade, Mesh, MeshVS, Colored stress Patterns

1. Introduction

视觉是人类获取外部信息和相互交流的主要手段。科学计算可视化包括曲线曲面拟合、坐标变换、体绘制等,核心是物理场可视化。这是因为研究人员或者工程师主要关心的内容是温度场分布、结构位移、材料变形、流场速度、应力应变分布等。这些工程数据全部是以场的形式存在,构成了数学意义上的标量场、矢量场和张量场。因此,标量场、矢量场和张量场的可视化占据了科学计算可视化技术研究的主导地位。——王成恩《面向科学计算的网格划分与可视化技术》。 

在OpenCascade中的包MeshVS提供了网格的可视化功能。使用包MeshVS提供的类和简单函数可以实现网格的灵活显示: 

l 显示网格,也可以隐藏部分网格及顶点; 

l 使用简单通用的接口来显示计算和分析的结果; 

l 数据有多种视觉效果:彩色云图colors、点图标vectors、带文字texts和变形网格deformed mesh; 

l 网格实体的交互选择; 

本文主要介绍OpenCascade中MeshVS的使用方法。对有需要网格可视化功能的读者,可以直接使用OpenCascade中提供的这个功能。对其实现算法感兴趣的读者,可以结合相关书籍,对其实现原理进行研究。 

2. Test Mesh in Draw Test Harness

在OpenCascade提供的文档《Test Harness User’s Guide》中有一个章节,示例了MeshVS的用法AIS Viewer-Mesh Visualization Service。先通过这些Tcl的命令,来展示一下MeshVS的显示效果。 

wps_clip_image-24339

Figure 2.1 Use meshfromstl Command to Display the Mesh 

wps_clip_image-25495

Figure 2.2 Display the Mesh in Shading Mode 

wps_clip_image-22677

Figure 2.3 Different color for each element of the Mesh 

wps_clip_image-16686

Figure 2.4 Different Color for each node with texture interpolation 

上图所示是彩色云图(Colored Stress Patterns)的可视化。云图是一种应用广泛的标量场可视化方法,云图在颜色与标量数据之间建立某种确定映射关系,在计算机屏幕上绘制一个颜色离散变化的图像来显示科学计算结果。云图将标量场定义域的数据映射成不同的颜色,从而通过颜色变化来反映数据场中数据的变化规律。 

3. MeshVS Usage

在《Visualization User’s Guide》中对MeshVS_Mesh的使用方法进行了详细说明,在此对其简单翻译一下。 

MeshVS_Mesh是一个可交互的表示网格的对象,与AIS_Shape不同的是其几何数据由数据源(Data Source: MeshVS_DataSource)来描述顶点node和元素element。所以,可以自定义数据源。然而,数据源(Data Source)并没有提供任何属性信息,如顶点的颜色(nodal colors),但是可以通过选择不同的显示生成器(Presentation Builder)方式来实现。 

MeshVS_Mesh的显示都是由显示生成器(Presentation Builder: MeshVS_PrsBuilder)来生成。通过选择不同的显示生成器来生成不同样式的网格,甚至可以自定义显示生成器。 

wps_clip_image-797

Figure 3.1 Different Presentation Builder for Different Style 

由上图可知,显示生成器有五种样式: 

l MeshVS_MeshPrsBuilder:基本显示生成器,只可用来显示网格; 

l MeshVS_TextPrsBuilder:文本显示生成器,可以用来在网格中显示文本; 

l MeshVS_VectorPrsBuilder:向量显示生成器,可以用来在网格中显示箭头; 

l MeshVS_NodalColorPrsBuilder:顶点颜色生成器,可以给网格中每个顶点设置不同颜色; 

l MeshVS_ElementalColorPrsBuilder:元素颜色生成器,可以给网格中每个三角面片设置不同的颜色; 

可以通过如下函数来添加、删除的显示生成器:

MeshVS_Mesh::AddBuilder(const Handle_MeshVS_PrsBuilder& theBuilder, 
                        Standard_Boolean TreatAsHilighter);
MeshVS_Mesh::RemoveBuilder(const Standard_Integer& Index);
MeshVS_Mesh::RemoveBuilderById(const Standard_Integer& Id);

如下程序所示可以显示通过STL读取的网格: 

// read the data and create a data source.
Handle(StlMesh_Mesh) aSTLMesh = RWStl::ReadFile (aFile, aProgress);
Handle( XSDRAWSTLVRML_DataSource ) aDS = new XSDRAWSTLVRML_DataSource( aSTLMesh );

// create mesh.
Handle( MeshVS_Mesh ) aMesh = new MeshVS_Mesh();
aMesh->SetDataSource( aDS );

// use default presentation builder.
Handle_MeshVS_MeshPrsBuilder aBuilder = new MeshVS_MeshPrsBuilder(aMesh);
aMesh->AddBuilder(aBuilder, Standard_True);

wps_clip_image-4815

Figure 3.2 Mesh Text by MeshVS_TextPrsBuilder  

wps_clip_image-18727

Figure 3.3 Mesh Vector by MeshVS_VectorPrsBuilder 

4. Conclusion

本文对OpenCascade的网格显示包MeshVS进行了介绍,并使用不同的显示生成器(Presentation Builder)生成不同的显示效果。对科学计算可视化感兴趣的读者可以结合其源程序分析其实现。 

因为XSDRAWSTLVRML_DataSource只能读取STL格式文件中的网格,且依赖Tcl,所以如果需要自己的网格数据源(Data Source)可以参考源程序,根据需求自己实现一个数据源。 

5. References

1. 王成恩. 面向科学计算的网格划分与可视化技术. 科学出版社. 2011

© 著作权归作者所有

eryar
粉丝 22
博文 127
码字总数 227012
作品 0
武汉
私信 提问
Building OpenCascade on Windows with Visual Studio

Building OpenCascade on Windows with Visual Studio eryar@163.com 摘要Abstract:详细说明OpenCascade的编译配置过程,希望对你编译OpenCascacde有所帮助。本文内容来自OCCT的Overview文档...

eryar
2013/09/23
519
0
OpenCASCADE Make Primitives-Box

OpenCASCADE Make Primitives-Box eryar@163.com Abstract. By making a simple box to demonstrate the BRep data structure of the OpenCASCADE. The construction method is different fr......

eryar
2014/11/23
243
0
如何将openCASCADE和c++结合起来,哪位牛人能不能给我指点指点啊.

如何将openCASCADE和c++结合起来,哪位牛人能不能给我指点指点啊.我现在正想用openCASCADE和c++结合起来做一个像cad软件的东西。

chenchenxixi
2012/07/09
1K
2
FreeCAD 0.16 和 0.17 修正版发布

FreeCAD 0.16 和 0.17 修正版发布,FreeCAD是一个基于OpenCASCADE的开源CAD/CAE工具。 OpenCASCADE是一套开源的CAD/CAM/CAE几何模型核心,来自法国Matra Datavision公司,是著名的CAD软件EUC...

周其
2017/12/11
1K
4
编译时的冲突问题

我现在希望同时使用两套开源的图形学方面的软件包,他们是openCASCADE和CGAL。 但我在使用中发现下面的问题: openCASCADE定义了下面的宏 # define Handle(ClassName) Handle_##ClassName --...

梁全
2009/07/25
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
6
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
4
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
7
0
从零基础到拿到网易Java实习offer,我做对了哪些事

作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间。本文将会讲到...

Java技术江湖
昨天
7
0
程序性能checklist

程序性能checklist

Moks角木
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部