OpenCASCADE Performance Test

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/Tkspa

1. Introduction rest

OpenCASCADE開發平臺提供了3D曲面和實體造型,CAD數據交換及可視化的功能。做爲C++的開發庫,OpenCASCADE最適於處理3D造型的CAD,製造、測量(CAM)及數值仿真(CAE)等軟件的開發。 code

Draw Test Harness使用Tcl封裝了OpenCASCADE的不少命令,經過編寫Tcl腳本,能夠方便地測試OpenCASCADE相應的功能。 orm

本文主要介紹使用Tcl/Tk腳本在Draw Test Harness中測試OpenCASCADE的網格及可視化的性能。 blog

wps_clip_image-27844

Figure 1.1 Test 1000 Spheresip

2.Mesh Test ci

實體形狀顯示須要被網格化,網格化速度的快慢直接影響顯示的速度。因此先測試一下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 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

下面對上述代碼進行簡單分析: 

v 用pload命令加載所須要的建模及可視化模塊; 

v 用restore命令加載一個brep文件到形狀變量s; 

v 用chrono打開一個計時器aTimer; 

v 用ttranslate來陣列複製形狀s獲得的形狀; 

v 用incmesh來對形狀進行網格化; 

wps_clip_image-31088

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 0} {$i < $shapeCount} {incr i 1} {
    vdisplay s$i
}
chrono aTimer show
chrono aTimer stop

vsetdispmode 1
vfit

puts "\nShow the frame rate..."
vfps

 顯示效果以下圖所示: 

wps_clip_image-18679

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

相關文章
相關標籤/搜索