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中实现,我的想法是先构造出螺旋线,再将螺旋线投影到面上. ...
随机推荐
- [Leetcode] Repeated DNA Sequences
All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: "ACG ...
- hdu1532网络流
(双倍经验题) 第二次写dinic模板,居然一遍写对了,而且短了不少O(∩_∩)O~ #include <cstdio> #define INF 2147483647 int n,m,an ...
- 基础2.通过Ajax获得servlet数据(最基础)
案列一:从服务器的得到输出的数据 Jsp界面 <script type="text/javascript" src="test.js"></s ...
- linux 字符设备驱动写法
字符设备,块设备书 一.register_chrdev_region, register_chrdev, misc_register misc device(杂项设备) 在 Linux 内核的incl ...
- web前端笔试选择题
1. 要动态改变层中内容可以使用的方法有(AB ) a)innerHTML b)innerText c)通过设置层的隐藏和显示来实现 d)通过设置层的样式属性的display属性 2. 当按键盘A时, ...
- Windows下ADT环境搭建
1.JDK安装 下载JDK(点我下载),安装成功后在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量: JAVA_HOME值为C:\Program Files ...
- Openssl生成证书三板斧
证书创建三步曲: 一.密钥文件 二.请求文 三.根证书签名 最后看需要是否合并证书文件 1. 创立根证书密钥文件(自己做CA)root.key: [kk@test ~]$ openssl genrsa ...
- Spring之注入的几种方式
普通注入 在配置文件里 <!-- 构造注入 --> <bean id="user1" class="entity.User"> < ...
- C#用扩展方法进行自动生成添加删除对象转换的功能
public static class ExtendedModel { #region 实体类的增删改查 #region 添加 public static string AddStr(this obj ...
- HDU1039-Easier Done Than Said?(字符串处理)
一,题意: 判断三个条件 1:有元音字母 2:不能三个连续元音或辅音 3:不能连续两个相同的字母,除非ee或oo二,思路 写函数一个条件一个条件去判断 #include<iostream> ...