OpenCascade MeshVS Usage
OpenCascade MeshVS Usage
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的显示效果。
Figure 2.1 Use meshfromstl Command to Display the Mesh
Figure 2.2 Display the Mesh in Shading Mode
Figure 2.3 Different color for each element of the Mesh
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)来生成。通过选择不同的显示生成器来生成不同样式的网格,甚至可以自定义显示生成器。
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);
Figure 3.2 Mesh Text by MeshVS_TextPrsBuilder
Figure 3.3 Mesh Vector by MeshVS_VectorPrsBuilder
4. Conclusion
本文对OpenCascade的网格显示包MeshVS进行了介绍,并使用不同的显示生成器(Presentation Builder)生成不同的显示效果。对科学计算可视化感兴趣的读者可以结合其源程序分析其实现。
因为XSDRAWSTLVRML_DataSource只能读取STL格式文件中的网格,且依赖Tcl,所以如果需要自己的网格数据源(Data Source)可以参考源程序,根据需求自己实现一个数据源。
5. References
1. 王成恩. 面向科学计算的网格划分与可视化技术. 科学出版社. 2011
PDF Version: OpenCascade MeshVS Usage
OpenCascade MeshVS Usage的更多相关文章
- OpenCASCADE Interpolation - Lagrange
OpenCASCADE Interpolation - Lagrange eryar@163.com Abstract. Power basis polynomial is the most simp ...
- OpenGL Shader in OpenCASCADE
OpenGL Shader in OpenCASCADE eryar@163.com Abstract. As implementation of one of the strategic steps ...
- OpenCASCADE Hidden Line Removal
OpenCASCADE Hidden Line Removal eryar@163.com Abstract. To provide the precision required in industr ...
- A Simple OpenCASCADE Qt Demo-occQt
A Simple OpenCASCADE Qt Demo-occQt eryar@163.com Abstract. OpenCASCADE have provided the Qt samples ...
- OpenCASCADE Root-Finding Algorithm
OpenCASCADE Root-Finding Algorithm eryar@163.com Abstract. A root-finding algorithm is a numerical m ...
- OpenCASCADE DataExchange DWG
OpenCASCADE DataExchange DWG eryar@163.com Abstract. DWG is a file format created in the 70’s for th ...
- OpenCASCADE Color Scale
OpenCASCADE Color Scale eryar@163.com Abstract. The color scale is a specialized label object that d ...
- OpenCASCADE Gauss Integration
OpenCASCADE Gauss Integration eryar@163.com Abstract. Numerical integration is the approximate compu ...
- OpenCascade Chinese Text Rendering
OpenCascade Chinese Text Rendering eryar@163.com Abstract. OpenCascade uses advanced text rendering ...
随机推荐
- 2019年台积电进军AR芯片,将用于下一代iPhone
近日,有报道表示台积电10nm 芯片可怜的收益率可能会对 2017 年多款高端移动设备的推出产生较大的影响,其中自然包括下一代 iPhone 和 iPad 机型.不过,台积电正式驳斥了这一说法,表明1 ...
- 常用的107条Javascript
1. document.write( " "); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document- >html- >( ...
- highchart 添加新的series
code: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" c ...
- python 函数之day3
一 函数的语法及特性 什么是函数? 定义:函数是一个功能通过一组语句的集合,由名字(函数名)将其封装起来的代码块,要想执行这个函数,只要调用其函数名即可. 特性: 减少重复代码 使程序变的可扩展 使程 ...
- php中htmlspecialchars()函数和addslashes()函数的使用和区别
在防止被注入攻击时,常会用到两个函数:htmlspecialchars()和addslashes()函数.这两个函数都是对特殊字符进行转义. 1)addslashes()作用及使用 addslashe ...
- Lua源代码阅读分析问题列表(转)
最近正在阅读lua源码,遇到座灯塔,转载如下: 我个人的习惯是带着问题去研究一个新题目,比如这次阅读Lua代码,暂列下面这些问题. 1)什么是基于栈.基于寄存器的虚拟机(VM)设计?Lua如何实现基于 ...
- CentOS6.4安装JDK1.7
安装说明 1.安装环境: CentOS6.4 64位系统 2.安装方式:rpm安装 3.软 件 包:jdk-7u71-linux-x64.rpm 4.下载地址:http://www.oracle.co ...
- 一个防止误删MSSQL数据库的方法
一个防止误删MSSQL数据库的方法 环境:Windows2008 R2 .SQL 2012 今天发现一个有趣的现象,之前数据库服务器的其中几个数据库做过镜像,不过现在已经删除了,今天又要在那台服务器上 ...
- [开源]C#二维码生成解析工具,可添加自定义Logo
二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字 ...
- 实现Div拖拽
直观的理解div拖拽:当鼠标对着可拖拽部分按住后并拖动,div会跟着鼠标一起运动,并且其运动空间限制在浏览器内部,当放开鼠标时,则div停止运动. 实现div拖拽需要三个重要的事件: (1)onmou ...