一种基于OpenCascade的CAD模型在网页轻量化渲染显示的方法技术

技术编号:36541682 阅读:15 留言:0更新日期:2023-02-01 16:42
本发明专利技术提出一种基于Open Cascade的CAD模型在网页轻量化渲染显示的方法,属于三维软件开发平台Open Cascade、三维可视化和CAD模型渲染技术领域。本发明专利技术解决了生产制造上某些模型在用Open Cascade进行网格生成和渲染显示后出现问题以及查看复杂CAD模型需要安装复杂软件,占用系统资源较大等现实工程问题。占用系统资源较大等现实工程问题。占用系统资源较大等现实工程问题。

【技术实现步骤摘要】
一种基于Open Cascade的CAD模型在网页轻量化渲染显示的方法


[0001]本专利技术属于三维软件开发平台Open Cascade、三维可视化和CAD模型渲染
,具体涉及一种基于Open Cascade和WebGL技术的CAD模型在网页轻量化渲染显示的方法。

技术介绍

[0002]数字化、网络化和智能化是工业4.0的主要特征,将在机械设计中数字化的CAD模型在网站端上实现展示,可以使产品的方案设计、产品制作与应用都显得更加灵活、方便与有效。传统的基于CAD模式的演示都必须配置大量复杂的CAD软件,而且操作繁琐、成本昂贵。同时随着生产力和生产需求的不断进步,图像构造也变得越来越复杂,传统的二维平面数据图已经无法满足公众的需求,数据三维可视化技术通过构建基于现实的三维数字场景,让数据展现更为直观易用。
[0003]Open Cascade是一款为实体建模、数据交换和模型可视化提供服务的软件开发平台,由于其开源特性和强大功能,在诸多领域如车辆、建筑、航空航天等都得到了广泛的应用。三维可视化技术可以提升用户的直观感受、提供精准的数据模型,使用户可以在网页客户端进行产品交互;在模拟仿真技术层面,三维可视化技术能够将仿真效果直观的展现出来,有助于更好地开发产品。三维可视化的处理过程涵盖了大量的图形渲染和交互式控制,需要浏览器插件提供支撑,同时对计算机的配置有一定的要求,依赖CPU的核心渲染速度,在使用过程中会占用大量系统内存。
[0004]WebGL是一个开源的跨平台API,它被用于在浏览器中创建实时的交互图形,通过编写WebGL程序即可完成三维动画的制作,免去了插件;同时它运用底层的图形硬件加速功能执行图像渲染,能够逼真的映现3D效果,为展示复杂机械结构提供了保障。

技术实现思路

[0005]本专利技术针对现有部分模型渲染存在问题和查看CAD模型操作复杂,提出一种基于Open Cascade和WebGL技术的CAD模型在网页渲染显示的方法,解决了生产制造上某些模型在用Open Cascade进行网格生成和渲染显示后出现问题以及查看复杂CAD模型需要安装复杂软件,占用系统资源较大等现实工程问题。
[0006]本专利技术的技术方案为:
[0007]一种基于Open Cascade的CAD模型在网页轻量化渲染显示的方法,该方法应用Open Cascade进行模型读取和网格剖分,基于WebGL进行网页显示;具体包括以下步骤:
[0008]S1:将复杂CAD模型文件导出为特定格式
[0009]采用第三方CAD造型软件将CAD模型导出为STEP或IGES格式。
[0010]S2:基于Open Cascade的数据交换模块和建模算法模块,对CAD模型进行读取并实现网格剖分
[0011]开源软件开发平台Open Cascade(简称OCC)共有六个模块,其中数据交换模块提供了符合各种CAD格式的接口,如IGES、STEP、STL、VRML等,这些接口允许基于Open Cascade的软件与各种CAD软件进行数据交换,并能够查询和检查输入文件,将其内容转换为CAD模型,并对转换后的数据文件进行检查。
[0012]针对步骤S1导出的STEP和IGES文件,Open Cascade提供了特定的方法和函数来实现读取和写入,执行时首先调用Control_Reader功能来加载文件;其次对文件进行一致性检验;接着设置转换参数,包括用户定义精度(precision.val)、形状的最大允许公差(maxprecision.val)、形状单位(cascade.unit)、产品形状的表示类型(step.shape.repr)等;最后执行转换,通过调用Transfer或TransferRoots来检查转换是否正确执行,并获取最终结果——拓扑形状和几何形状。
[0013]基于Open Cascade对所得的拓扑和几何形状进行网格剖分,在剖分时,首先遍历模型的所有表面,对于每个表面,遍历其所有的线,对于每条线遍历其全部的边;再根据边和面得到所需的参数空间曲线。接着对参数空间曲线所围成的参数区域进行三角剖分,通过设置线性偏差和角度偏差的大小来控制三角网格化的精度,将剖分结果通过曲面方程映射到三维空间,最终生成每个面的网格剖分,得到网格数据。
[0014]基于云端的显示需要较少的网格数量,因此为了实现模型网格的轻量化和流畅的网页显示需要减少网格数量,本专利技术在Open Cascade默认剖分算法BRepMesh_IncrementalMesh的基础上进行了改进,具体剖分过程如下:
[0015]首先,采用默认剖分算法遍历模型的拓扑和几何形状得到参数空间曲线;
[0016]其次,在对参数空间曲线所围成区域进行网格剖分时,增加内部节点控制,具体实现为:
[0017]1)创建一个Mesher,并为Mesher指定要划分网格的区域;
[0018]2)创建网格生成控制参数,网格生成控制参数中包括总体的线性偏差和角度偏差(即默认剖分算法的线性偏差和角度偏差)、所增加的内部节点的线性偏差和角度偏差以及考虑模型尺寸、使用并行计算同时控制曲面偏差;其中,内部节点的角度偏差相对简单,使用默认值(12~20度);为了减少网格数量,内部节点的线性偏差应大于总体线性偏差,设置过小网格数量减少不明显,设置过大网格质量会变差,通过大量实验得到内部节点的线性偏差设置为总体线性偏差的10~20倍时效果较好,网格数量大量减少的同时不影响渲染质量;
[0019]3)将设置好的网格生成控制参数传给Mesher;
[0020]4)根据Mesher创建网格生成环境并进行网格剖分。
[0021]S3:编写网格数据转换接口,搭建Open Cascade与WebGL间的桥梁
[0022]编写转换程序,将Open Cascade得到的网格数据转换成方便计算机解析和生成的JSON格式的文件,再将其传到WebGL中进行渲染显示。编写转换程序的过程如下:首先添加第三方依赖库Boost库和rapidjson库;其次在程序中创建一个用来存储数据的树结构,并为树结构中的各个结点添加标签(Lable)和属性(Attribute),标签便于查看双亲,属性用于存放信息;接着调用Boost库中的IOStream的流处理框架对步骤S2得到的Open Cascade网格数据进行解析,首先遍历模型的Compound,其次遍历Solid,接着是Shell,层层递进下去,直到遍历完所有的Vertex,将得到的点、线、面、面的法向量以及拓扑和几何信息通过
Open Cascade的TDF_Label::Add函数存放到树结构中;最后通过调用rapidjson库中的Writer函数,得到JSON格式的文件,完成网格数据的转换。
[0023]S4:搭建CAD模型网页显示环境
[0024]S4.1:采用开源WebGL下的Three.js框架,对场景、光照、相机、渲染器等进行设置:通过THREE.Scene本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Open Cascade的CAD模型在网页轻量化渲染显示的方法,其特征在于,该方法包括以下步骤:S1:将复杂CAD模型文件导出为特定格式采用第三方CAD造型软件将CAD模型导出为STEP或IGES格式;S2:基于Open Cascade的数据交换模块和建模算法模块,进行CAD模型读取和网格剖分S2.1:模型读取针对步骤S1导出的STEP和IGES文件,Open Cascade先调用Control_Reader功能来加载文件;其次对文件进行一致性检验;接着设置转换参数;最后执行转换,通过调用Transfer或TransferRoots来检查转换是否正确执行,并获取最终的拓扑形状和几何形状;S2.2:网格剖分首先,遍历模型的拓扑和几何形状得到参数空间曲线;其次,在对参数空间曲线所围成区域进行网格剖分时,增加内部节点控制;S3:编写网格数据转换接口,搭建Open Cascade与WebGL间的桥梁编写转换程序,将Open Cascade得到的网格数据转换成方便计算机解析和生成的JSON格式的文件,再将其传到WebGL中进行渲染显示;S4:搭建CAD模型网页显示环境S5:检查CAD模型网页显示效果检查模型显示是否完整以及功能是否正常,并对模型各个角度进行拍照,使用MobileNet深度神经网络提取图像特征,与改进之前网格密度较大的图像结果进行相似性比较,验证是否保证了渲染质量,并完成整个网页显示过程。2.根据权利要求1所述的方法,其特征在于,所述步骤S2.2的增加内部节点控制过程,具体实现为:1)创建一个Mesher,并为Mesher指定要划分网格的区域;2)创建网格生成控制参数,网格生成控制参数中包括总体的线性偏差和角度偏差、所增加的内部节点的线性偏差和角度偏差以及考虑模型尺寸、使用并行计算同时控制曲面偏差;3)将设置好的网格生成控制参数传给Mesher;4)根据Mesher创建网格生成环境并进行网格剖分。3.根据权利要求2所述的方法,其特征在于,所述步骤S2.2中,内部节点的角度偏差使用默认值;内部节点的线性偏差设置为总体线性偏差的10~20倍。4.根据权利要求1、2或3所述的方法,其特征在于,所述步骤S3中,编写转换程序的过程如下:首先添加第三方依赖库Boost库和rapidjson库;其次在程序中创建一个用来存储数据的树结构,并为树结构中的各个结点添加标签和属性,标签便于查看双亲,属性用于存放信息;接着调用Boost库中的IOStream的流处理框架对步骤S2得到的Op...

【专利技术属性】
技术研发人员:孙亮吕远行曹聪何彦龙苏潇迪吴星辉
申请(专利权)人:深圳市工之易科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1