opencascade学习简介


前言

随着数控系统行业发展越来越迅速,随着硬件的性能更新迭代对机械仿真,三维编程越来越重视,本文介绍了使用opencascade来实现三维仿真的原因和处理内容。

一、opencascade是什么?

opencascade(简称OCCT),是一个处理三维模型的C++开源库。具体功能有模型导入(文件格式:step,iges,stl),基本模型实体生成(正方体,棱柱体,球,圆柱体,圆锥体),实体布尔运算(非常重要:可用于碰撞检测,雕刻机雕刻效果显示,通过三视图生成三维模型,使用基本模型实体通过布尔运算构成复杂模型),三角剖分(非常重要),模型显示(看个人需求,本人使用Qt开发项目,QT显示三维模型有两种方式Qt3D和Opengl,所以不用OCCT的显示)。

二、个人选择opencascade的原因

1.项目

开发一个三维五轴雕刻仿真模拟要有碰撞检测和切割效果

2.编程语言

我筛选过适合项目的开源库有两个opencascade和CadQuery。其实从使用效率和难度来说CadQuery比opencascade更好,因为CadQuery是基于opencascade二次开发的,把很多引用性的功能直接封装好,但opencascade很多功能得自己造马车,说的好听点就是自由性更高可以应对各种复杂情况。但是由于本人使用编程语言是C++所以只能用opencascade,而CadQuery用的是python。

3.使用感想

opencascade提供了各种三维图形的基础工具算法,但要实现一个功能就像在没有说明书的情况下砌乐高积木一样,全靠自己摸索。第一次查各种资料互拼乱凑,功能实现了,然后就开始优化bug,优化效率。
说起优化效率最让我崩溃的就是stl文件的读取,和实体布尔运算。stl的读取函数读复杂图形很慢加上三角剖分后效率更是一言难尽而且复杂有缺陷的模型(不闭合残缺面等等)还不一定能读出百分之三十,我不知道是不是我的用法不对的原因,如果有读者知道原因,我们讨论讨论,我目前stl模型读取是自己写函数读的。实体布尔运算对模型的完整度要求非常高,对于有曲面的复杂图形误判机率还是比较大的,而且直接使用运行起来效率非常低,做实时仿真的时候就像吃了那个一样。我目前的做法是只要不涉及模型形状改变的的操作(移动,旋转,放大缩小)全交给着色器(通俗说就是显卡,效率提升真的快)。仿真过程中尽量减少用OCCT的布尔运算和三角剖分运算(我被这两个东西折磨得怀疑人生但这两个算法又是项目的关键),总的来说要做得非常抠门,感觉这东西对配置要求比较高。


总结

综上所述,对仿真技术和CAD技术有兴趣的兄弟不要错过opencascade,opencascade有各种非常强大的三维图形处理算法,虽然某些算法的效率有点低,但我认为其他库也会有同样的问题,优化的尽头只能堆硬件配置了。总之非常好用就是了,欢迎大家入坑,哦不,欢迎大家一起共同学习进步,不要被一开始的动态库编译劝退了,我开发项目使用的是5.14.2,我的上传资源QT5.14使用的mingw(32位)和(64位)编译器预编译的库,需要的话可以在下载用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值