发明内容
本发明的主要目的在于解决当前gerber文件和钻孔文件的在三维仿真上通用性不足的技术问题。
本发明第一方面提供了一种三维仿真方法,所述三维仿真方法包括:
读取待仿真数据;
判断所述待仿真数据是否为gerber格式或钻孔文件格式;
若是gerber格式或钻孔文件格式,则当所述待仿真数据为gerber格式时,基于所述待仿真数据的操作命令和坐标,生成节点数据,以及根据所述节点数据,生成PCB仿真数据;
当所述待仿真数据为钻孔文件格式时,则基于所述待仿真数据的钻孔尺寸和钻孔坐标,生成钻孔预览数据,以及根据所述钻孔预览数据,生成PCB仿真数据;
基于webgl协议,对所述PCB仿真数据进行三维建模成像处理,得到三维仿真数据。
可选的,在本发明第一方面的第一种实现方式中,所述基于所述待仿真数据的操作命令和坐标,生成节点数据包括:
基于正则匹配算法,识别所述待仿真数据的文件后缀,得到gerber图层识别数据;
根据所述gerber图层识别数据,对所述待仿真数据的操作命令和坐标进行分层运算处理,得到节点数据。
可选的,在本发明第一方面的第二种实现方式中,所述基于所述待仿真数据的钻孔尺寸和钻孔坐标,生成钻孔预览数据包括:
按照预置排序模板数据,对所述待仿真数据分类进行提取处理,得到钻孔尺寸和钻孔坐标;
将所述钻孔尺寸和所述钻孔坐标进行组合显示处理,得到钻孔预览数据。
可选的,在本发明第一方面的第三种实现方式中,在所述基于webgl协议,对所述PCB仿真数据进行三维建模成像处理,得到三维仿真数据之后,还包括:
对所述三维仿真数据进行空间碰撞检测处理,得到碰撞结果数据;
当所述碰撞结果数据不为合格数据时,则根据所述碰撞结果数据,对所述三维仿真数据进行碰撞结构标记处理,得到带预警标记的三维仿真数据。
可选的,在本发明第一方面的第四种实现方式中,所述根据所述钻孔预览数据,生成PCB仿真数据包括:
利用所述钻孔预览数据,在预置PCB基础仿真板上进行钻孔模拟处理,得到PCB仿真数据。
可选的,在本发明第一方面的第五种实现方式中,所述基于webgl协议,对所述PCB仿真数据进行三维建模成像处理,得到三维仿真数据包括:
基于webgl协议,对所述PCB仿真数据进行三维建模成像处理,得到初始仿真数据;
基于所述初始仿真数据的仿真形状,对所述初始仿真数据进行染色处理,得到三维仿真数据。
可选的,在本发明第一方面的第六种实现方式中,所述判断所述待仿真数据是否为gerber格式或钻孔文件格式包括:
读取所述待仿真数据的语法参数;
判断所述语法参数是否为gerber格式或钻孔文件格式。
本发明第二方面提供了一种三维仿真装置,所述三维仿真装置包括:
读取模块,用于读取待仿真数据;
判断模块,用于判断所述待仿真数据是否为gerber格式或钻孔文件格式;
第一仿真生成模块,用于若是gerber格式或钻孔文件格式,则当所述待仿真数据为gerber格式时,基于所述待仿真数据的操作命令和坐标,生成节点数据,以及根据所述节点数据,生成PCB仿真数据;
第二仿真生成模块,用于当所述待仿真数据为钻孔文件格式时,则基于所述待仿真数据的钻孔尺寸和钻孔坐标,生成钻孔预览数据,以及根据所述钻孔预览数据,生成PCB仿真数据;
三维成像模块,用于基于webgl协议,对所述PCB仿真数据进行三维建模成像处理,得到三维仿真数据。
本发明第三方面提供了一种三维仿真设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述三维仿真设备执行上述的三维仿真方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的三维仿真方法。
在本发明实施例中,采用对待仿真数据的结构与文本识别,判断出gerber格式和钻孔文件格式,对gerber格式和钻孔文件格式分别采用不同的解析方式,并对gerber格式文件的数据后缀进行识别,避开gerber文件命名不同导致通用性降低的缺点,解出最终的仿真数据参数,实现三维仿真数据的生成,解决前gerber文件和钻孔文件的在三维仿真上通用性不足的问题。
具体实施方式
本发明实施例提供了一种三维仿真方法、装置、设备及存储介质。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中三维仿真方法的一个实施例包括:
101、读取待仿真数据;
在本实施例中,待仿真数据可以是采用压缩包zip、rar等数据,利用H5网页或者是软件页面中获得待仿真数据,之后读取待仿真数据中的数据内容。
102、判断所述待仿真数据是否为gerber格式或钻孔文件格式;
在本实施例中,gerber格式或钻孔文件是一种采用的了RS-274X格式的数据文本,RS-274X是一种7位ASCII码格式文件,本质上就是一种脚本文件,用于指示光绘机实现各种绘制或运动行为。通过对待仿真数据的文本识别,最终确定gerber格式或钻孔文件格式。
进一步的,在102可以执行以下步骤:
1021、读取所述待仿真数据的语法参数;
1022、判断所述语法参数是否为gerber格式或钻孔文件格式。
在1021-1022步骤中,读取所述待仿真数据的语法参数,判断语法参数是否符合以下规范:
参数的语法为:%参数指令<必选修饰符>[可选修饰符]%。
参数指令(parameter code)是两个字符的指令,如AD、AM、FS等,必选修饰符(required modifiers)必须是完整的定义,可选修饰符(optionalmodifiers)是依赖必选修饰符的定义。
103、若是gerber格式或钻孔文件格式,则当所述待仿真数据为gerber格式时,基于所述待仿真数据的操作命令和坐标,生成节点数据,以及根据所述节点数据,生成PCB仿真数据;
在本实施例中,在待仿真数据为gerber格式或钻孔文件格式时,如果待仿真数据为gerber格式的情况,由于gerber格式的数据文本具有多个图层内容,需要一一读取,并且按照顺序执行操作命令和坐标,得到节点数据。然后再根据节点数据转换格式得到PCB仿真数据。这里的仿真数据是CAD格式的二维数据,还不能直接得到三维仿真数据。
进一步的,在“基于所述待仿真数据的操作命令和坐标,生成节点数据”可以执行以下步骤:
1031、基于正则匹配算法,识别所述待仿真数据的文件后缀,得到gerber图层识别数据;
1032、根据所述gerber图层识别数据,对所述待仿真数据的操作命令和坐标进行分层运算处理,得到节点数据。
在1031-1032步骤中,gerber文件具有不同的图层,而不同软件导出的gerber文件命名都不是不同的,只有文件后缀是唯一识别标识,基于正则匹配的规则,直接将gerber文件的后缀进行识别,然后依据设置好的图层顺序依次执行gerber文件的数据指令,得到节点数据。
104、当所述待仿真数据为钻孔文件格式时,则基于所述待仿真数据的钻孔尺寸和钻孔坐标,生成钻孔预览数据,以及根据所述钻孔预览数据,生成PCB仿真数据;
在本实施例中,在待仿真数据是钻孔文件格式时,利用钻孔文件的数据生成预览数据,也即是将钻孔文件的钻孔操作在二维CAD的平面上执行,得到一个二维CAD钻孔的多个图层预览数据,将该钻孔预览数据组合出PCB仿真数据。
进一步的,在“基于所述待仿真数据的钻孔尺寸和钻孔坐标,生成钻孔预览数据”可以执行以下步骤:
1041、按照预置排序模板数据,对所述待仿真数据分类进行提取处理,得到钻孔尺寸和钻孔坐标;
1042、将所述钻孔尺寸和所述钻孔坐标进行组合显示处理,得到钻孔预览数据。
在1041-1042步骤中,排序模板数据中,会执行程序头部、单位、工具信息、钻孔尺寸、钻孔坐标等详细数据,然后对钻孔尺寸、钻孔坐标进行提取。知晓了钻孔尺寸、钻孔坐标后,在二维CAD平面上,依次多个钻孔数据进行执行操作,然后图层显示钻孔预览数据进行叠加显示,得到钻孔预览数据。
进一步的,在“根据所述钻孔预览数据,生成PCB仿真数据”执行以下步骤:
1043、利用所述钻孔预览数据,在预置PCB基础仿真板上进行钻孔模拟处理,得到PCB仿真数据。
在本实施例中,钻孔预览数据是一种二维CAD平面图像数据,PCB基础仿真板上显示,PCB仿真板是带有PCB大小的二维CAD数据,与普通CAD格式不同,因为要依据PCB大小进行三维建模,不能是一个无尺寸范围的三维数据。
105、基于webgl协议,对所述PCB仿真数据进行三维建模成像处理,得到三维仿真数据。
在本实施例中,webgl协议一种3D绘图协议,通用计算规范OpenCL一样来自Khronos Group,而且免费开放。因此,采用该协议数据对PCB仿真数据进行三维构建,实现三维仿真数据的显示。
进一步的,105可以执行以下步骤:
1051、基于webgl协议,对所述PCB仿真数据进行三维建模成像处理,得到初始仿真数据;
1052、基于所述初始仿真数据的仿真形状,对所述初始仿真数据进行染色处理,得到三维仿真数据。
在1051-1052步骤中,基于webgl协议对PCB仿真数据进行了三维建模成像处理后,有一个无染色的仿真数据,后续根据初始仿真数据的仿真形状,对PCB板、钻孔、以及PCB上涉及到的不同元器件进行染色处理,以表现出不同的结构数据进行染色处理,方便用户更好的查看三维仿真数据的结构与连接关系。
还有一种实施方式,在105之后,可以执行以下步骤:
106、对所述三维仿真数据进行空间碰撞检测处理,得到碰撞结果数据;
107、当所述碰撞结果数据不为合格数据时,则根据所述碰撞结果数据,对所述三维仿真数据进行碰撞结构标记处理,得到带预警标记的三维仿真数据。
在106-107步骤中,可以对三维仿真数据的空间碰撞进行检测,如果出现了碰撞结果则会对碰撞的结构进行标记,若三维仿真数据板中出现两个孔位的碰撞,或者是多个元器件与PCB板进行了碰撞,则对碰撞区域进行标记,并显示在旁边的专栏中,得到带预警标记的三维仿真数据。
在本发明实施例中,采用对待仿真数据的结构与文本识别,判断出gerber格式和钻孔文件格式,对gerber格式和钻孔文件格式分别采用不同的解析方式,并对gerber格式文件的数据后缀进行识别,避开gerber文件命名不同导致通用性降低的缺点,解出最终的仿真数据参数,实现三维仿真数据的生成,解决前gerber文件和钻孔文件的在三维仿真上通用性不足的问题。
上面对本发明实施例中三维仿真方法进行了描述,下面对本发明实施例中三维仿真装置进行描述,请参阅图2,本发明实施例中三维仿真装置一个实施例,所述三维仿真装置包括:
读取模块201,用于读取待仿真数据;
判断模块202,用于判断所述待仿真数据是否为gerber格式或钻孔文件格式;
第一仿真生成模块203,用于若是gerber格式或钻孔文件格式,则当所述待仿真数据为gerber格式时,基于所述待仿真数据的操作命令和坐标,生成节点数据,以及根据所述节点数据,生成PCB仿真数据;
第二仿真生成模块204,用于当所述待仿真数据为钻孔文件格式时,则基于所述待仿真数据的钻孔尺寸和钻孔坐标,生成钻孔预览数据,以及根据所述钻孔预览数据,生成PCB仿真数据;
三维成像模块205,用于基于webgl协议,对所述PCB仿真数据进行三维建模成像处理,得到三维仿真数据。
在本发明实施例中,采用对待仿真数据的结构与文本识别,判断出gerber格式和钻孔文件格式,对gerber格式和钻孔文件格式分别采用不同的解析方式,并对gerber格式文件的数据后缀进行识别,避开gerber文件命名不同导致通用性降低的缺点,解出最终的仿真数据参数,实现三维仿真数据的生成,解决前gerber文件和钻孔文件的在三维仿真上通用性不足的问题。
请参阅图3,本发明实施例中三维仿真装置的另一个实施例,所述三维仿真装置包括:
读取模块201,用于读取待仿真数据;
判断模块202,用于判断所述待仿真数据是否为gerber格式或钻孔文件格式;
第一仿真生成模块203,用于若是gerber格式或钻孔文件格式,则当所述待仿真数据为gerber格式时,基于所述待仿真数据的操作命令和坐标,生成节点数据,以及根据所述节点数据,生成PCB仿真数据;
第二仿真生成模块204,用于当所述待仿真数据为钻孔文件格式时,则基于所述待仿真数据的钻孔尺寸和钻孔坐标,生成钻孔预览数据,以及根据所述钻孔预览数据,生成PCB仿真数据;
三维成像模块205,用于基于webgl协议,对所述PCB仿真数据进行三维建模成像处理,得到三维仿真数据。
其中,所述第二仿真生成模块204具体用于:
利用所述钻孔预览数据,在预置PCB基础仿真板上进行钻孔模拟处理,得到PCB仿真数据。
其中,所述三维成像模块205具体用于:
基于webgl协议,对所述PCB仿真数据进行三维建模成像处理,得到初始仿真数据;
基于所述初始仿真数据的仿真形状,对所述初始仿真数据进行染色处理,得到三维仿真数据。
其中,所述判断模块202具体用于:
读取所述待仿真数据的语法参数;
判断所述语法参数是否为gerber格式或钻孔文件格式。
其中,所述第一仿真生成模块203具体用于:
基于正则匹配算法,识别所述待仿真数据的文件后缀,得到gerber图层识别数据;
根据所述gerber图层识别数据,对所述待仿真数据的操作命令和坐标进行分层运算处理,得到节点数据。
其中,所述第二仿真生成模块204具体用于:
按照预置排序模板数据,对所述待仿真数据分类进行提取处理,得到钻孔尺寸和钻孔坐标;
将所述钻孔尺寸和所述钻孔坐标进行组合显示处理,得到钻孔预览数据。
其中,所述三维仿真装置还包括碰撞检测模块206,所述碰撞检测模块206具体用于:
对所述三维仿真数据进行空间碰撞检测处理,得到碰撞结果数据;
当所述碰撞结果数据不为合格数据时,则根据所述碰撞结果数据,对所述三维仿真数据进行碰撞结构标记处理,得到带预警标记的三维仿真数据。
在本发明实施例中,采用对待仿真数据的结构与文本识别,判断出gerber格式和钻孔文件格式,对gerber格式和钻孔文件格式分别采用不同的解析方式,并对gerber格式文件的数据后缀进行识别,避开gerber文件命名不同导致通用性降低的缺点,解出最终的仿真数据参数,实现三维仿真数据的生成,解决前gerber文件和钻孔文件的在三维仿真上通用性不足的问题。
上面图2和图3从模块化功能实体的角度对本发明实施例中的三维仿真装置进行详细描述,下面从硬件处理的角度对本发明实施例中三维仿真设备进行详细描述。
图4是本发明实施例提供的一种三维仿真设备的结构示意图,该三维仿真设备400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)410(例如,一个或一个以上处理器)和存储器420,一个或一个以上存储应用程序433或数据432的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器420和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对三维仿真设备400中的一系列指令操作。更进一步地,处理器410可以设置为与存储介质430通信,在三维仿真设备400上执行存储介质430中的一系列指令操作。
基于400还可以包括一个或一个以上电源440,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口460,和/或,一个或一个以上操作系统431,例如Windows Serve,Mac OS X,Unix,Linux,Free BSD等等。本领域技术人员可以理解,图4示出的三维仿真设备结构并不构成对基于三维仿真设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述三维仿真方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。