一种基于CAD文件自动生成3D模型的方法及装置与流程

文档序号:20770441发布日期:2020-05-15 19:37阅读:3074来源:国知局
一种基于CAD文件自动生成3D模型的方法及装置与流程

本发明涉及3d建模技术领域,尤其涉及一种基于cad文件自动生成3d模型的方法及装置。



背景技术:

很多产品、建筑等在开始生产制造或施工之前,均会设计出其cad图纸,一般情况下,cad图纸为二维平面图,二维平面图在理解上存在一定难度,而且视觉效果较差,容易产生理解偏差;3d模型更利于生产人员或施工人员的理解。但是3d模型需要通过专门的建模软件来建模生成,当用户手里只有cad文件,而又不懂3d建模时,无法生成3d化的模型。



技术实现要素:

为了克服现有技术的不足,本发明的目的之一在于提供一种基于cad文件自动生成3d模型的方法,其能够自动识别cad文件的图形信息,根据图形信息获取所有点的坐标并对所有点进行合并排序得到包含有所有点的坐标的数组,进而根据所得到的数组确定图形的横截面数据从而通过3d放样技术自动绘制出3d模型。

本发明的目的之二在于提供一种电子设备,其能够自动识别cad文件的图形信息,根据图形信息获取所有点的坐标并对所有点进行合并排序得到包含有所有点的坐标的数组,根据数组确定图形的横截面数据从而通过3d放样技术自动绘制出3d模型。

本发明的目的之三在于提供一种计算机可读存储介质,该存储介质中的程序运行时能够自动识别cad文件的图形信息,根据图形信息获取所有点的坐标并对所有点进行合并排序得到包含有所有点的坐标的数组,根据数组确定图形的横截面数据从而通过3d放样技术自动绘制出3d模型。

本发明的目的之一采用如下技术方案实现:

一种基于cad文件自动生成3d模型的方法,包括以下步骤:

对cad文件进行解析以得到cad文件的图形信息;

对所述图形信息进行数据运算处理以获取图形的所有点的坐标以生成一个包含有所有点的坐标的数组;

将所述数组中的具有相同坐标的点进行合并之后,根据逆时针排序算法对所述数组中的所有点进行逆时针排序;

根据进行逆时针排序后的所述数组确定cad文件中的图形的横截面数据,根据所述横截面数据以及用户所设定的放样路径,通过3d放样技术绘制出对应的3d模型并显示。

进一步地,所述逆时针排序算法具体为:

通过排序得出数组中位于坐标系左下方的点,再获取与该点相邻的两个点,计算排序在前的两点所确定的向量逆时针旋转至排序在后的两点所确定的向量的方向相同时所经过的角度θ,如果角度θ小于180度,则此时为逆时针顺序,不需要重新排序;否则为顺时针顺序,则将数组倒序成逆时针顺序。

进一步地,所述对所述图形信息进行数据运算处理以获取图形的所有点的坐标具体为:

针对所述图形信息中的不同的线条类型进行不同的数据运算处理以获取图形的所有点的坐标;

其中,各个线条类型对应的数据运算处理方式如下:

直线和矩形:根据图形信息中对应的各个点的位置信息直接得到各个点的坐标;

圆弧和圆形:根据图形信息中对应的圆心坐标、半径、精度、起始角度以及角度长度计算得到各个点的坐标;

椭圆弧和椭圆形:根据图形信息中对应的中心坐标、x轴半径、y轴精度、起始角度以及终止角度计算得到各个点的坐标;

b样条:根据图形信息中对应的控制点权重、控制点的数量、节点坐标以及角度步长计算得到各个点的坐标。

进一步地,在对cad文件进行解析以得到cad的图形信息之后,还包括步骤:

根据所述图形信息判断所述cad文件中的图形是否为封闭的单个图形;

若是,则对所述图形信息进行数据运算处理以获取图形的所有点的坐标;

若否,则结束流程。

进一步地,在结束流程的同时,通过提示框进行报错。

进一步地,在对cad文件进行解析以得到cad的图形信息之前,还包括步骤:通过three-dxf.js插件导入cad文件。

进一步地,还包括步骤:当监听到鼠标拖动事件时,根据鼠标的移动位置来调整所述3d模型的位置。

进一步地,还包括步骤:根据用户所输入的旋转角度,旋转所述3d模型。

本发明的目的之二采用如下技术方案实现:

一种电子设备,包括处理器和存储器,所述存储器存储有可执行计算机程序,所述处理器可读取所述存储器中的计算机程序并运行以实现如上所述的基于cad文件自动生成3d模型的方法。

本发明的目的之三采用如下技术方案实现:

一种计算机可读存储介质,所述计算机可读存储介质存储有可执行计算机程序,所述计算机程序运行时可实现如上所述的基于cad文件自动生成3d模型的方法。

相比现有技术,本发明的有益效果在于:

该基于cad文件自动生成3d模型的方法能够自动识别cad文件的图形信息,根据图形信息获取所有点的坐标并对所有点进行合并排序得到包含有所有点的坐标的数组,进而根据所得到的数组自动绘制出3d模型。

附图说明

图1为本发明提供的一种基于cad文件自动生成3d模型的方法的流程示意图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。

请参阅图1,其为一种基于cad文件自动生成3d模型的方法的流程示意图,包括以下步骤:

对cad文件进行解析以得到cad文件的图形信息;

对所述图形信息进行数据运算处理以获取图形的所有点的坐标以生成一个包含有所有点的坐标的数组;

将所述数组中的具有相同坐标的点进行合并之后,根据逆时针排序算法对所述数组中的所有点进行逆时针排序;

根据进行逆时针排序后的所述数组确定cad文件中的图形的横截面数据,根据所述横截面数据以及用户所设定的放样路径,通过3d放样技术绘制出对应的3d模型并显示。

该基于cad文件自动生成3d模型的方法能够自动识别cad文件的图形信息,根据图形信息获取所有点的坐标并对所有点进行合并排序得到包含有所有点的坐标的数组,进而根据所得到的数组确定图形的横截面数据,从而根据横截面数据和放样路径,通过3d放样技术自动绘制出3d模型。特别地,放样路径可以由用户自行设定,用户可根据自身需要来调整放样路径的长短从而调整3d模型的大小。

所述逆时针排序算法具体为:

通过排序得出数组中位于坐标系左下方的点,再获取与该点相邻的两个点,计算排序在前的两点所确定的向量逆时针旋转至排序在后的两点所确定的向量的方向相同时所经过的角度θ,如果角度θ小于180度,则此时为逆时针顺序,不需要重新排序;否则为顺时针顺序,则将数组倒序成逆时针顺序。

作为一种优选的实施方式,所述对所述图形信息进行数据运算处理以获取图形的所有点的坐标具体为:

针对所述图形信息中的不同的线条类型进行不同的数据运算处理以获取图形的所有点的坐标;

其中,各个线条类型对应的数据运算处理方式如下:

直线和矩形:根据图形信息中对应的各个点的位置信息直接得到各个点的坐标;

圆弧和圆形:根据图形信息中对应的圆心坐标、半径、精度、起始角度以及角度长度计算得到各个点的坐标;

椭圆弧和椭圆形:根据图形信息中对应的中心坐标、x轴半径、y轴精度、起始角度以及终止角度计算得到各个点的坐标;

b样条:根据图形信息中对应的控制点权重、控制点的数量、节点坐标以及角度步长计算得到各个点的坐标。

cad文件中的图形中可能会包含不同的线条类型,如直线与弧线绘制出的半圆,而通过解析cad文件所得到的数据信息中并不包含整个图形的所有点的坐标信息,例如图形中的一个圆弧,所解析得到的原始数据(即图形信息)仅具有该圆弧的半径、圆心坐标、精度、起始角度以及角度长度等信息,需要通过这部分信息进行运算之后才得到该圆弧上所有的点的坐标。因此,通过针对不同的线条类型采用不同的处理手段,逐一获取整个图形的所有点的坐标数据。

作为一种优选的实施方式,在对cad文件进行解析以得到cad的图形信息之后,还包括步骤:

根据所述图形信息判断所述cad文件中的图形是否为封闭的单个图形;

若是,则对所述图形信息进行数据运算处理以获取图形的所有点的坐标;

若否,则结束流程。优选地,在结束流程的同时,还通过提示框进行报错。

当该方法用于生成石膏线等建筑材料的3d模型的话,需要要求导入的cad文件必须是封闭的单个图形,因此通过上述方式来判断cad文件中的图形是否是单一图形,并且判断其是否是封闭的图形,如果不是的话则会提示报错,无法绘制3d模型。

作为一种优选的实施方式,在对cad文件进行解析以得到cad的图形信息之前,还包括步骤:通过three-dxf.js插件导入cad文件。利用three-dxf.js插件导入cad文件,可以得到cad文件的原始数据,诸如精度,圆心坐标等信息。

作为一种优选的实施方式,还包括步骤:当监听到鼠标拖动事件时,根据鼠标的移动位置来调整所述3d模型的位置。还可包括:根据用户所输入的旋转角度,旋转所述3d模型。如此一来,在自动生成3d模型之后,用户还可对3d模型进行简单的调整,例如通过鼠标拖动来调整3d模型的位置,通过输入旋转角度来实现3d模型旋转对应的角度。

本发明还提供了一种电子设备,包括处理器和存储器,所述存储器存储有可执行计算机程序,所述处理器可读取所述存储器中的计算机程序并运行以实现如上所述的基于cad文件自动生成3d模型的方法。

此外,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有可执行计算机程序,所述计算机程序运行时可实现如上所述的基于cad文件自动生成3d模型的方法。

该计算机可读存储介质存储有计算机程序,本发明的方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在该计算机存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机存储介质不包括电载波信号和电信信号。

上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1