OpenCASCADE Performance Test
eryar@163.com
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開發(fā)平臺提供了3D曲面和實(shí)體造型,CAD數(shù)據(jù)交換及可視化的功能。作為C++的開發(fā)庫,OpenCASCADE最適于處理3D造型的CAD,制造、測量(CAM)及數(shù)值仿真(CAE)等軟件的開發(fā)。
Draw Test Harness使用Tcl封裝了OpenCASCADE的很多命令,通過編寫Tcl腳本,可以方便地測試OpenCASCADE相應(yīng)的功能。
本文主要介紹使用Tcl/Tk腳本在Draw Test Harness中測試OpenCASCADE的網(wǎng)格及可視化的性能。
Figure 1.1 Test 1000 Spheres
2.Mesh Test
實(shí)體形狀顯示需要被網(wǎng)格化,網(wǎng)格化速度的快慢直接影響顯示的速度。所以先測試一下OpenCASCADE的網(wǎng)格剖分算法的速度。相應(yīng)的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 100
set count 10
set distance 5000
#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 0} {$i < $shapeCount} {incr i 1} {
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 1 1
}
chrono aTimer show
下面對上述代碼進(jìn)行簡單分析:
v 用pload命令加載所需要的建模及可視化模塊;
v 用restore命令加載一個brep文件到形狀變量s;
v 用chrono打開一個計時器aTimer;
v 用ttranslate來陣列復(fù)制形狀s得到的形狀;
v 用incmesh來對形狀進(jìn)行網(wǎng)格化;
Figure 2.1 Mesh 100 F1
上述Tcl測試了網(wǎng)格化100輛F1賽車的時間如上圖所示。可以修改上述Tcl腳本代碼,來測試網(wǎng)格化10000個球所需要的時間。
3.Display Test
網(wǎng)格化之后可以顯示出形狀了。下面的Tcl腳本測試了OpenCASCADE的顯示性能:
puts "\nDisplaying the $shapeCount shapes
"
chrono aTimer start
for {set i 0} {$i < $shapeCount} {incr i 1} {
vdisplay s$i
}
chrono aTimer show
chrono aTimer stop
vsetdispmode 1
vfit
puts "\nShow the frame rate
"
vfps
顯示效果如下圖所示:
Figure 3.1 Hundreds of F1
其中命令vfps是顯示當(dāng)前視圖的幀頻數(shù)的。100輛F1的幀數(shù)有26,速度還行,稍有卡滯。
4. Conclusion
根據(jù)上述Tcl腳本可以看出OpenCASCADE的網(wǎng)格及可視化的性能還可以。可以修改上述代碼,來測試顯示10000個球體所需要的時間。
最后給出上述Tcl測試用的模型數(shù)據(jù)及Tcl腳本完整代碼供下載使用。