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/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
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來對形狀進行網格化;
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
顯示效果以下圖所示:
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