OpenCASCADE Performance Test
OpenCASCADE Performance Test
Abstract. Use the Draw Test Harness to test the performance of OpenCASCADE by Tcl scripts. From the test result, you will check whether the OpenCASCADE meet your need.
Key Words. OpenCASCADE, Performance Test, Draw Test Harness, Tcl/Tk
1. Introduction
OpenCASCADE开发平台提供了3D曲面和实体造型,CAD数据交换及可视化的功能。作为C++的开发库,OpenCASCADE最适于处理3D造型的CAD,制造、测量(CAM)及数值仿真(CAE)等软件的开发。
Draw Test Harness使用Tcl封装了OpenCASCADE的很多命令,通过编写Tcl脚本,可以方便地测试OpenCASCADE相应的功能。
本文主要介绍使用Tcl/Tk脚本在Draw Test Harness中测试OpenCASCADE的网格及可视化的性能。
![]()
Figure 1.1 Test 1000 Spheres
2.Mesh Test
实体形状显示需要被网格化,网格化速度的快慢直接影响显示的速度。所以先测试一下OpenCASCADE的网格剖分算法的速度。相应的Tcl脚本如下所示:
#
# Copyright (c) 2014 eryar All Rights Reserved.
#
# File : testocc.tcl
# Author : eryar@163.com
# Date : 2014-09-25 18:10
# Version : 1.0v
#
# Description : Test the OpenCASCADE performance.
# pload MODELING VISUALIZATION set shapeCount
set count
set distance #psphere s 3.0
#restore data/occ/CrankArm.brep s
#restore data/occ/Moto.brep s
restore data/occ/F1.brep s puts "\nMeshing the $shapeCount shapes..."
chrono aTimer start
for {set i } {$i < $shapeCount} {incr i } {
copy s s$i set dx [expr ($i%$count)*$distance]
set dy [expr ($i/$count)*$distance]
set dz 0.0 ttranslate s$i $dx $dy $dz # mesh the shape
incmesh s$i
}
chrono aTimer show
下面对上述代码进行简单分析:
v 用pload命令加载所需要的建模及可视化模块;
v 用restore命令加载一个brep文件到形状变量s;
v 用chrono打开一个计时器aTimer;
v 用ttranslate来阵列复制形状s得到的形状;
v 用incmesh来对形状进行网格化;
![]()
Figure 2.1 Mesh 100 F1
上述Tcl测试了网格化100辆F1赛车的时间如上图所示。可以修改上述Tcl脚本代码,来测试网格化10000个球所需要的时间。
3.Display Test
网格化之后可以显示出形状了。下面的Tcl脚本测试了OpenCASCADE的显示性能:
puts "\nDisplaying the $shapeCount shapes..."
chrono aTimer start
for {set i } {$i < $shapeCount} {incr i } {
vdisplay s$i
}
chrono aTimer show
chrono aTimer stop vsetdispmode
vfit puts "\nShow the frame rate..."
vfps
显示效果如下图所示:
![]()
Figure 3.1 Hundreds of F1
其中命令vfps是显示当前视图的帧频数的。100辆F1的帧数有26,速度还行,稍有卡滞。
4. Conclusion
根据上述Tcl脚本可以看出OpenCASCADE的网格及可视化的性能还可以。可以修改上述代码,来测试显示10000个球体所需要的时间。
最后给出上述Tcl测试用的模型数据及Tcl脚本完整代码供下载使用。
PDF Version and Tcl Script: OpenCASCADE Performance Test
OpenCASCADE Performance Test的更多相关文章
- Building OpenCASCADE on Debian
Building OpenCASCADE on Debian eryar@163.com Abstract. When you are familiar with OpenCASCADE on Win ...
- OpenCASCADE BRepTools
OpenCASCADE BRepTools eryar@163.com Abstract. OpenCASCADE BRepTools provides utilities for BRep data ...
- A Simple OpenCASCADE Qt Demo-occQt
A Simple OpenCASCADE Qt Demo-occQt eryar@163.com Abstract. OpenCASCADE have provided the Qt samples ...
- Bounding Volume Hierarchy BVH in OpenCASCADE
Bounding Volume Hierarchy BVH in OpenCASCADE eryar@163.com Abstract. Bounding Volume Hierarchy(BVH) ...
- Use PSO to find minimum in OpenCASCADE
Use PSO to find minimum in OpenCASCADE eryar@163.com Abstract. Starting from OCCT6.8.0 will include ...
- OpenCASCADE AIS Manipulator
OpenCASCADE AIS Manipulator eryar@163.com Abstract. OpenCASCADE7.1.0 introduces new built-in interac ...
- Convert BSpline Curve to Arc Spline in OpenCASCADE
Convert BSpline Curve to Arc Spline in OpenCASCADE eryar@163.com Abstract. The paper based on OpenCA ...
- OpenCASCADE Shape Location
OpenCASCADE Shape Location eryar@163.com Abstract. The TopLoc package of OpenCASCADE gives resources ...
- OpenCASCADE BRep Projection
OpenCASCADE BRep Projection eryar@163.com 一网友发邮件问我下图所示的效果如何在OpenCASCADE中实现,我的想法是先构造出螺旋线,再将螺旋线投影到面上. ...
随机推荐
- 【BZOJ】3997: [TJOI2015]组合数学
题意 \(N \times M\)的网格,一开始在\((1, 1)\)每次可以向下和向右走,每经过一个有数字的点最多能将数字减1,最终走到\((N, M)\).问至少要走多少次才能将数字全部变为\(0 ...
- 试用avalon2.0
一直从事后端开发,对于前端的html+css+js,不熟不熟的.前面写了一个比较复杂的操作界面,我只能说,误工费时.花了一周研究avalonjs2,大神的确就是大神,解决了我很多的问题, 请参考htt ...
- Android 无标题 全屏设置
标题栏和状态栏 Android程序默认情况下是包含状态栏和标题栏的. 在Eclipse中新建一个Android程序,运行后显示如下: 图中标出了状态栏(显示时间.电池电量.网络等)和标题栏(显示应用的 ...
- Project 'king.commons' is missing required library: 'lib/plweb.jar' Build path Build Path Problem
问题描述:之前在项目里引用一个jar 包,后来不用了删掉 ,但是没有删干净,然后报以下错误. 解决方案: 1.删除libraries 2.找到该项目下的 .classpath 文件,用记事本打开 ,删 ...
- HTML5 WebSocket
在WebSocket API中,浏览器和服务器只需要做一个握手动作,然后,浏览器和服务器之间就形成一条快速通道,两者之间就可以直接进行数据传送,这一个功能可以应用到"字幕",自己做 ...
- MongoDB aggregate 运用篇
基础知识 操作符介绍: $project:包含.排除.重命名和显示字段 $match:查询,需要同find()一样的参数 $limit:限制结果数量 $skip:忽略结果的数量 $sort:按照给定的 ...
- rinetd
1.安装 tar zxvf rinetd.tar.gz make make install 2.设置 vi /etc/rinetd.conf 0.0.0.0 8080 172.19.94. ...
- HOW TO RUN A SPRINT PLANNING MEETING (THE WAY I LIKE IT)
This is a sample agenda for a sprint planning meeting. Depending on your context you will have to ch ...
- IDEA插件
Key Promoter 快捷键提示插件,帮助你快速记住快捷键.当你用鼠标完成某功能时,它会指示有相应的快捷键来完成刚才的功能,同时指导你为经常重复的操作建立快捷键. SerialVersionUID ...
- JavaScript鼠标经过图片的放大镜效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...