CAD图纸绘制方法、装置、存储介质及计算机设备与流程

文档序号:30603635发布日期:2022-07-01 22:07阅读:106来源:国知局
CAD图纸绘制方法、装置、存储介质及计算机设备与流程
cad图纸绘制方法、装置、存储介质及计算机设备
技术领域
1.本技术涉及计算机技术,尤其涉及一种cad图纸绘制方法、装置、存储介质及计算机设备。


背景技术:

2.计算机辅助设计(computer aided design,简称cad)利用计算机及其图形设备帮助设计人员进行设计工作,在建筑行业有着广泛的应用。
3.随着计算机的小型化,在个人桌面和手提电脑上运行三维cad软件已经成为助力工业快速成长的重要手段。工厂为了提高生产效率,提升产品竞争力,降低产品研发试制周期,大量采用三维cad软件,进行模拟仿真。
4.目前cad数据若要被应用程序打开,必须是dwg格式,而且必须要下载到本地设备中才能被打开,且这种方式的传输效率较低。
5.cad图纸中的所有元素(例如线)是一个整体,因而无法对元素进行交互操作,也同样无法表达元素间的包含关系。


技术实现要素:

6.本技术实施例提供一种cad图纸绘制方法、装置、存储介质及计算机设备,有效解决了目前无法对cad图纸中的元素进行交互操作的问题。此外,也解决了打开cad图纸容易受限的问题。
7.根据本技术的一方面,本技术一实施例提供一种cad图纸绘制方法,所述方法包括步骤:获取cad数据;对所述cad数据按多个构件进行分组,以使每一所述构件包含至少一元素,所述至少一元素包括线和文字中的至少一者;解析每一所述构件中包含的所有元素,并生成元素所对应的解析结果;基于所述解析结果并调用具有图形接口的绘图引擎绘制出cad图纸;以及将所述cad图纸所对应的数据编译成可运行于目标平台的应用程序,其中目标平台与图形接口相对应,其中所述图形接口为vulkan图形接口。
8.进一步地,所述线包括线段、圆及弧形。
9.进一步地,所述目标平台包括windows操作系统、android操作系统及linux操作系统中的至少一种。
10.进一步地,所述cad数据为矢量数据交换格式,并通过dwg格式的cad数据转换所得,并且矢量数据交换格式的cad数据具有dwg格式的cad数据中元素的数量、颜色、形状及图层信息。
11.进一步地,在解析每一所述构件中包含的所有元素,并生成元素所对应的解析结果的步骤中,包括:当所述元素为线段时,获取所述线段的起点坐标与终点坐标;以及根据起点坐标与终点坐标确定解析后所述线段的位置。
12.进一步地,在解析每一所述构件中包含的所有元素,并生成元素所对应的解析结果的步骤中,还包括:当所述元素为圆时,通过预设数量的点将圆的边分成多个大小相同圆
弧;将相邻的点用直线连接获得多个线段所组成的目标圆;获取圆的圆心坐标及半径;以及根据所述圆的圆心坐标、半径及预设数量的点,确定解析后组成的目标圆中每一所述线段的位置。
13.进一步地,在解析每一所述构件中包含的所有元素,并生成元素所对应的解析结果的步骤中,还包括:当所述元素为弧形时,通过预设数量的点将弧形的边分成多个大小相同圆弧;将相邻的点用直线连接获得多个线段所组成的目标弧形;获取弧形的圆心坐标及半径;以及根据所述弧形的圆心、半径及预设数量的点,确定解析后组成的目标弧形中每一所述线段的位置。
14.根据本技术的另一方面,本技术一实施例提供一种cad图纸绘制装置,所述装置包括:数据获取单元,用于获取cad数据;数据分组单元,用于对所述cad数据按多个构件进行分组,以使每一所述构件包含至少一元素,所述至少一元素包括线和文字中的至少一者;元素解析单元,用于解析每一所述构件中包含的所有元素,并生成元素所对应的解析结果;图纸绘制单元,用于基于所述解析结果并调用具有图形接口的绘图引擎绘制出cad图纸;以及数据编译单元,用于将所述cad图纸所对应的数据编译成可运行于目标平台的应用程序,其中目标平台与图形接口相对应。
15.根据本技术的又一方面,本技术实施例提供一种存储介质,所述存储介质中存储有多条指令,所述指令适于由处理器加载以执行如本技术任一实施例所提供的cad图纸绘制方法。
16.根据本技术的又一方面,本技术实施例提供一种移动终端,包括处理器和存储器,所述处理器与所述存储器电性连接,所述存储器用于存储指令和数据,所述处理器用于执行如本技术任一实施例所提供的cad图纸绘制方法中的步骤。
17.本发明的优点在于,通过解析每一所述构件中包含的所有元素,并生成解析结果;基于所述解析结果并调用具有图形接口的绘图引擎绘制出cad图纸。由于将构件中所包含的元素解析成相应的线段,使得用户更加方便地对cad图纸中的构件进行点选操作,以增强交互性。另外,所述cad数据为矢量数据交换格式,能够方便用户可以在线对cad图纸进行预览。另外,通过vulkan图形接口将所述cad图纸所对应的数据编译成可运行于windows操作系统、android操作系统及linux操作系统中的应用程序,使得绘制出的cad图纸可以应用于多个系统中的应用程序。
附图说明
18.下面结合附图,通过对本技术的具体实施方式详细描述,将使本技术的技术方案及其它有益效果显而易见。
19.图1为本发明一实施例提供的一种cad图纸绘制方法的步骤流程图。
20.图2为图1所示步骤s130的子步骤的一实施例的流程图。
21.图3为图1所示步骤s130的子步骤的另一实施例的流程图。
22.图4为图3所示实施例所提供的解析圆时所建立的平面坐标系图。
23.图5为图1所示步骤s130的子步骤的又一实施例的流程图。
24.图6为本发明一实施例提供的一种cad图纸绘制装置的结构示意图。
25.图7为本发明一个实施例提供的计算机设备的内部结构图。
具体实施方式
26.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
27.在本技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本技术中的具体含义。在本实施例中,所述模拟显示屏触摸单元与所述头部追踪单元连接,用于获取所述显示设备中的感应光标的移动路径。
28.如图1所示,为本技术实施例一提供的图纸绘制方法的步骤流程图。该方法包括步骤:
29.步骤s110:获取cad数据.
30.所述cad数据为矢量数据交换格式,例如可以为json(javascript object notation,即爪哇脚本对象表示法)格式。具体地,json格式的cad数据通常是由服务器对dwg格式(其为autocad公司创立的一种图纸保存格式)的cad数据转换所得。其中dwg格式为辅助设计软件autocad以及基于autocad的软件保存设计数据所用的一种专有文件格式。当服务器对dwg格式的cad数据进行转换时,所生成json格式的cad数据中具有dwg格式的cad数据中元素的数量、颜色、形状及图层信息。服务器对dwg格式的cad数据转换成json格式后,用户可以在不下载cad图纸对应的数据的情况下在线预览cad图纸,从而方便用户快速查看cad图纸。
31.步骤s120:对所述cad数据按多个构件进行分组,以使每一所述构件包含至少一元素。
32.其中构件一般为一个基础图形,cad图纸可以由多个基础图形构成。例如在一个建筑模型的cad图纸中,基础图形可以是一个楼梯等等。每一所述元素包括线和文字中的至少一者。通常情况下为了便于后续步骤中解析操作,每一所述元素仅包括文字或线。其中,线按照不同的形状可分为线段、圆和弧形。
33.步骤s130:解析每一所述构件中包含的所有元素,并生成元素所对应的解析结果。
34.针对元素所包含的不同线和文字,下文中将详细描述不同的线和文字如何进行解析。
35.如图2所示,图2为步骤s130的子步骤的一实施例的流程图。
36.步骤s210:当所述元素为线段时,获取所述线段的起点坐标与终点坐标。
37.步骤s220:根据起点坐标与终点坐标确定解析后所述线段的位置。
38.在本实施例中,当所述元素为线段时,由于线段是cad图纸各元素中最基础的形状,因此在对线段进行解析时,只需获取所述线段的起点坐标与终点坐标,即可确定线段的位置。
39.除此之外,若线段具有一定的宽度,在对具有一定宽度的线段进行解析时,需将线
段看作四边形。例如,假设线段的两个端点坐标分别为(x,y),(a,b),两边的宽度分别为m,n,那么四边形的四个点的坐标分别为(x,y+m/2),(x,y-w/2),(a,b-n/2),(a,b+n/2)。由这四个点即可确定四边形的位置。
40.如图3和图4所示,其中图3为步骤s130的另一实施例的流程图。图4为图3所示实施例所提供的解析圆时所建立的平面坐标系图。
41.步骤s310:当所述元素为圆时,通过预设数量的点将圆的边分成多个大小相同圆弧。
42.步骤s320:将相邻的点用直线连接获得多个线段所组成的目标圆。
43.步骤s330:获取圆的圆心坐标及半径。
44.步骤s340:根据所述圆的圆心坐标、半径及预设数量的点,确定解析后组成的目标圆中每一所述线段的位置。
45.在本实施例中,当所述元素为圆时,假设圆的圆心为p,p的坐标为(x,y),圆的半径为r,以p点为原点建立平面直角坐标系。预设数量的点为n,在一实施例中n=30(n为整数,表示圆上点的个数)。首先获取单位圆(单位圆即圆心p的坐标为(0,0)在坐标原点上,半径r为1)上30个点的坐标。假设第一个点在坐标系x轴上,即第一点a的坐标为(1,0),由于通过预设数量的点将圆的边分成多个大小相同圆弧,因此每个点按照逆时针排序到原点的连线与x轴的夹角是一个等差数列。具体地,对每个点按照逆时针排序,则按照逆时针排序的每个点与x轴的夹角比前一个点大12度(360除以30),也即等差数列的公差为12度。通过三角函数可求得每个点的坐标,例如第二点b的坐标为(r*cosine(12)+x,r*sine(12)+y)。
46.另外,在解析的过程中,圆是由多个线段近似拼接而成,圆的精度越高,则要求线段的数量越多,每个线段的长度越短。因此n值越大则表示圆的精度越高。
47.除此之外,解析具有一定的宽度的线所构成的圆,则可认为是由内圆和外圆组成的圆环,通过上述实施例中的方法同样可求得内圆和外圆上的各点的坐标,然后分别使用内圆和外圆上的相邻的两个点构成四边形,依次求得所有的四边形的位置。
48.如图5所示,其中图5为步骤s130的子步骤的又一实施例的流程图。
49.步骤s410:当所述元素为弧形时,通过预设数量的点将弧形的边分成多个大小相同圆弧。
50.步骤s420:将相邻的点用直线连接获得多个线段所组成的目标弧形。
51.步骤s430:获取弧形的圆心坐标及半径。
52.步骤s440:根据所述弧形的圆心、半径及预设数量的点,确定解析后组成的目标弧形中每一所述线段的位置。
53.在本实施例中,当所述元素为弧形时,弧形可认为是圆上截取的一部分,与上述实施例中解析圆方法相同。因此,此处不再赘述,通过解析弧形到弧形上的所有线段的位置。
54.除此之外,解析具有一定的宽度的线所构成的弧形时,与上述实施例中解析具有一定的宽度的线所构成的圆方法相同。因此,此处不再赘述,通过解析具有一定的宽度的线所构成的弧形得到弧形上的所有的四边形的位置。
55.另外,当元素为文字时,从cad数据中,能直接获取各段文字的属性,所述属性包括内容、大小、颜色、旋转角度及位置等信息。
56.继续参阅图1,步骤s140:基于所述解析结果并调用具有图形接口的绘图引擎绘制
出cad图纸。
57.所述解析结果包括线段的位置、文字属性及四边形的位置。具体地,绘制cad时,调用vulkan图形接口进行绘制。对于线段(即没有线宽),每次传入线段的颜色和线段两个端点的坐标。对于带线宽的线段(即四边形),每次传入线段的颜色和四个顶点的坐标。而对于文字,直接使用界面设计(即ui设计)进行绘制,设置好显示的文字内容、大小、颜色、旋转角度和位置,其中绘图引擎可以采用unity引擎。其支持vulkan图形接口,并且vulkan图形接口支持3d和2d场景。
58.步骤s150:将所述cad图纸所对应的数据编译成可运行于目标平台的应用程序。
59.为了使绘制出的cad图纸可以应用于多个系统中的应用程序。通过vulkan图形接口将所述cad图纸所对应的数据编译成一应用程序,该应用程序可运行于windows操作系统、android操作系统及linux操作系统中的任意一种操作系统。
60.在实际操作中(即与cad图纸进行互动),例如点选操作的时候,对于线段(即没有线宽,例如没有线宽的圆),计算点击屏幕上的点与构件包含的线段的最近距离,当距离小于某个阈值的时候,判定当前选中了构件,通过改变构件所有线段的颜色并对线段加宽来高亮显示。对于带线宽的线段(即四边形例如有线宽的圆),判断点击屏幕上的点是否位于构件包含的四边形的区域内,以判定是否选中构件,若选中,直接改变构件所有线段的颜色。
61.本发明的优点在于,通过解析每一所述构件中包含的所有元素,并生成解析结果;基于所述解析结果并调用具有图形接口的绘图引擎绘制出cad图纸。由于将构件中所包含的元素解析成相应的线段,使得用户更加方便地对cad图纸中的构件进行点选操作,以增强交互性。另外,所述cad数据为矢量数据交换格式,能够方便用户可以在线对cad图纸进行预览。另外,通过vulkan图形接口将所述cad图纸所对应的数据编译成可运行于windows操作系统、android操作系统及linux操作系统中的应用程序,使得绘制出的cad图纸可以应用于多个系统中的应用程序。
62.如图6所示,为本技术一实施例提供的cad图纸绘制装置结构示意图,所述装置包括:数据获取单元10、数据分组单元20、元素解析单元30、图纸绘制单元40及数据编译单元50。
63.数据获取单元10用于获取cad数据。所述cad数据为矢量数据交换格式,例如可以为json格式。具体地,json格式的cad数据通常是由服务器对dwg格式的cad数据转换所得。其中dwg格式为辅助设计软件autocad以及基于autocad的软件保存设计数据所用的一种专有文件格式。当服务器对dwg格式的cad数据进行转换时,所生成json格式的cad数据中具有dwg格式的cad数据中元素的数量、颜色、形状及图层信息。服务器对dwg格式的cad数据转换成json格式后,用户可以在不下载cad图纸对应的数据的情况下在线预览cad图纸,从而方便用户快速查看cad图纸。
64.数据分组单元20用于对所述cad数据按多个构件进行分组,以使每一所述构件包含至少一元素,所述至少一元素包括线和文字中的至少一者。其中构件一般为一个基础图形,cad图纸可以由多个基础图形构成。例如在一个建筑模型的cad图纸中,基础图形可以是一个楼梯等等。每一所述元素包括线和文字中的至少一者。通常情况下为了便于后续步骤中解析操作,每一所述元素仅包括文字或线。其中,线按照不同的形状可分为线段、圆和弧
形。
65.元素解析单元30用于解析每一所述构件中包含的所有元素,并生成元素所对应的解析结果。在一实施例中,当所述元素为线段时,由于线段是cad图纸各元素中最基础的形状,因此在对线段进行解析时,只需获取所述线段的起点坐标与终点坐标,即可确定线段的位置。除此之外,若线段具有一定的宽度,在对具有一定宽度的线段进行解析时,需将线段看作四边形。例如,假设线段的两个端点坐标分别为(x,y),(a,b),两边的宽度分别为m,n,那么四边形的四个点的坐标分别为(x,y+m/2),(x,y-w/2),(a,b-n/2),(a,b+n/2)。由这四个点即可确定四边形的位置。
66.如图4所示,在一实施例中,当所述元素为圆时,假设圆的圆心为p,p的坐标为(x,y),圆的半径为r,以p点为原点建立平面直角坐标系。预设数量的点为n,在一实施例中n=30(n为整数,表示圆上点的个数)。首先获取单位圆(单位圆即圆心p的坐标为(0,0)在坐标原点上,半径r为1)上30个点的坐标。假设第一个点在坐标系x轴上,即第一点a的坐标为(1,0),由于通过预设数量的点将圆的边分成多个大小相同圆弧,因此每个点按照逆时针排序到原点的连线与x轴的夹角是一个等差数列。具体地,对每个点按照逆时针排序,则按照逆时针排序的每个点与x轴的夹角比前一个点大12度(360除以30),也即等差数列的公差为12度。通过三角函数可求得每个点的坐标,例如第二点b的坐标为(r*cosine(12)+x,r*sine(12)+y)。
67.另外,在解析的过程中,圆是由多个线段近似拼接而成,圆的精度越高,则要求线段的数量越多,每个线段的长度越短。因此n值越大则表示圆的精度越高。
68.除此之外,解析具有一定的宽度的线所构成的圆,则可认为是由内圆和外圆组成的圆环,通过上述实施例中的方法同样可求得内圆和外圆上的各点的坐标,然后分别使用内圆和外圆上的相邻的两个点构成四边形,依次求得所有的四边形的位置。
69.在本实施例中,当所述元素为弧形时,弧形可认为是圆上截取的一部分,与上述实施例中解析圆方法相同。因此,此处不再赘述,通过解析弧形到弧形上的所有线段的位置。
70.除此之外,解析具有一定的宽度的线所构成的弧形时,与上述实施例中解析具有一定的宽度的线所构成的圆方法相同。因此,此处不再赘述,通过解析具有一定的宽度的线所构成的弧形得到弧形上的所有的四边形的位置。
71.另外,当元素为文字时,从cad数据中,能直接获取各段文字的属性,所述属性包括内容、大小、颜色、旋转角度及位置等信息。
72.图纸绘制单元40用于基于所述解析结果并调用具有图形接口的绘图引擎绘制出cad图纸。所述解析结果包括线段的位置、文字属性及四边形的位置。具体地,绘制cad时,调用vulkan图形接口进行绘制。对于线段(即没有线宽,例如没有线宽的圆),每次传入线段的颜色和线段两个端点的坐标。对于带线宽的线段(即四边形,例如有线宽的圆),每次传入线段的颜色和四个顶点的坐标。而对于文字,直接使用界面设计(即ui设计)进行绘制,设置好显示的文字内容、大小、颜色、旋转角度和位置。
73.数据编译单元50用于将所述cad图纸所对应的数据编译成可运行于目标平台的应用程序,其中目标平台与图形接口相对应。为了使绘制出的cad图纸可以应用于多个系统中的应用程序。通过vulkan图形接口将所述cad图纸所对应的数据编译成可运行于windows操作系统、android操作系统及linux操作系统中的应用程序。
74.在实际操作中(即与cad图纸进行互动),例如点选操作的时候,对于线段(即没有线宽,例如没有线宽的圆),计算点击屏幕上的点与构件包含的线段的最近距离,当距离小于某个阈值的时候,判定当前选中了构件,通过改变构件所有线段的颜色并对线段加宽来高亮显示。对于带线宽的线段(即四边形例如有线宽的圆),判断点击屏幕上的点是否位于构件包含的四边形的区域内,以判定是否选中构件,若选中,直接改变构件所有线段的颜色。
75.本发明的优点在于,通过解析每一所述构件中包含的所有元素,并生成解析结果;基于所述解析结果并调用具有图形接口的绘图引擎绘制出cad图纸。由于将构件中所包含的元素解析成相应的线段,使得用户更加方便地对cad图纸中的构件进行点选操作,以增强交互性。另外,所述cad数据为矢量数据交换格式,能够方便用户可以在线对cad图纸进行预览。另外,通过vulkan图形接口将所述cad图纸所对应的数据编译成可运行于windows操作系统、android操作系统及linux操作系统中的应用程序,使得绘制出的cad图纸可以应用于多个系统中的应用程序。
76.在一个实施例中,提供了一种计算机设备400,其内部结构图可以如图7所示。该计算机设备400包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备400的处理器用于提供计算和控制能力。该计算机设备400的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的计算机设备通过网络连接通信。该计算机程序被处理器执行时以实现一种cad图纸绘制方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
77.本领域技术人员可以理解,图7中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
78.在一个实施例中,提供了一种计算机设备400,其包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
79.获取cad数据;
80.对所述cad数据按多个构件进行分组,以使每一所述构件包含至少一元素,所述至少一元素包括线和文字中的至少一者;
81.解析每一所述构件中包含的所有元素,并生成元素所对应的解析结果;
82.基于所述解析结果并调用具有图形接口的绘图引擎绘制出cad图纸;以及
83.将所述cad图纸所对应的数据编译成可运行于目标平台的应用程序,其中目标平台与图形接口相对应。
84.在另一个实施例中,提供了一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
85.获取cad数据;
86.对所述cad数据按多个构件进行分组,以使每一所述构件包含至少一元素,所述至少一元素包括线和文字中的至少一者;
87.解析每一所述构件中包含的所有元素,并生成元素所对应的解析结果;
88.基于所述解析结果并调用具有图形接口的绘图引擎绘制出cad图纸;以及
89.将所述cad图纸所对应的数据编译成可运行于目标平台的应用程序,其中目标平台与图形接口相对应。
90.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
91.本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1