Posted on 2022-01-09 12:10
eryar 阅读(1191)
评论(0) 编辑 收藏 引用 所属分类:
2.OpenCASCADE
OpenCASCADE DRAW Command Source
eryar@163.com
OpenCASCADE Draw Harness是基于Tcl脚本命令语言的工具,可以用来演示OCCT中的造型功能。Draw Harness中提供的命令基本包含了OCCT中所有的功能:
- 执行OCCT中的造型功能;
- 执行OCCT中的数据交换功能;
- 显示和三维交互功能;
- 学习、评估及原型算法验证;
- 为OCCT提供自动化测试功能;
- 也可以扩展Draw Harness,增加自定义命令;
因为Draw Harness是基于Tcl脚本语言开发的,所以可以运行在支持Tcl的平台上,如Windows,macOS, Linux,甚至是浏览器上。
Tcl是命令脚本语言,如我们使用如下两行命令,即可以显示一个长方体:
box b 1 2 3
vdisplay b

原来一直建议在对OCCT有个基本了解后,可以熟悉一下Draw Harness。因为在Draw Harness中可以测试一下算法,通过Draw Harness验证后,可以通过Draw Harness的命令找到对应的C++源码,算是官方的代码示例。原来根据命令查找C++源码的办法不太优雅,没想到OCCT已经提供了一个命令getsourcefile
可以直接返回命令所在的C++源码文件,这样可以大大提高查找效率。这个命令也是用Tcl脚本实现的,在src/DrawResources中的StandardCommands.tcl文件:

这个命令用法很简单,参数就是需要查询的命令。如查询上面创建长方体并显示用到的两个命令box和vdisplay:

这样我们就可以直接在相关的C++源码文件中查找到相关的命令:

使用getsourcefile可以快速查找到Tcl命令对应的C++源文件,是比较优雅的方式。
最近看到OCCT的活跃开发者KGV将Draw Harness移植到了Web上,大家可以去化验一下。体验地址是:https://gkv311.github.io/occt-draw/

并且在https://draw.sview.ru 给出很多测试案例:
