CN114637732A - 一种dwg图纸数据的转换方法及系统 - Google Patents

一种dwg图纸数据的转换方法及系统 Download PDF

Info

Publication number
CN114637732A
CN114637732A CN202210334239.7A CN202210334239A CN114637732A CN 114637732 A CN114637732 A CN 114637732A CN 202210334239 A CN202210334239 A CN 202210334239A CN 114637732 A CN114637732 A CN 114637732A
Authority
CN
China
Prior art keywords
drawing data
primitive
dwg
dwg drawing
text
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210334239.7A
Other languages
English (en)
Inventor
左昌煜
徐东江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Bozhilin Robot Co Ltd
Original Assignee
Guangdong Bozhilin Robot Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Bozhilin Robot Co Ltd filed Critical Guangdong Bozhilin Robot Co Ltd
Priority to CN202210334239.7A priority Critical patent/CN114637732A/zh
Publication of CN114637732A publication Critical patent/CN114637732A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1794Details of file format conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本申请实施例提供一种DWG图纸数据的转换方法及系统,涉及数据处理技术领域。该DWG图纸数据的转换方法包括:获取DWG图纸数据;对所述DWG图纸数据中的文本图元进行字体矢量化处理,生成第二DWG图纸数据;根据预设拆分条件对所述第二DWG图纸数据进行拆分,生成DWG图纸文件集;根据预设ODA转换库对所述DWG图纸文件集进行转换处理,生成SVG文件。该DWG图纸数据的转换方法可以实现提高DWG图纸数据的转换效率和转换便捷性的技术效果。

Description

一种DWG图纸数据的转换方法及系统
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种DWG图纸数据的转换方法、系统、电子设备及计算机可读存储介质。
背景技术
目前,DWG是电脑辅助设计软件AutoCAD以及基于AutoCAD的软件保存设计数据所用的一种专有文件格式,广泛应用于制造业、工程建设和房地产行业中;但因其数据格式不对外公开,在浏览器等前端显示和使用DWG一直是业内的一个难点;而可缩放矢量图形(SVG,Scalable Vector Graphics)是一种基于可扩展标记语言(XML,Extensible MarkupLanguage)开发出的矢量图形语言,可以随时插入到超文本标记语言(HTML,Hyper TextMarkup Language)中并通过WEB端进行查看,同时SVG数据格式是明文的,可以作为生成其他二、三维数据(如gltf等)的基础数据,具有很强的扩展性。
现有技术中,基于开放设计联盟(ODA,Open Design Alliance)提供的转换库进行二次开发,可以将DWG文件转换为SVG文件;其中,ODA是一个非盈利的组织,致力于促进开放的、工业标准的CAD数据和CAD数据的格式交换。ODA的转换库能将DWG图纸转换为SVG文件,但其存在一些问题导致转换出的SVG文件难以直接、方便的应用于前端应用开发中,如只能将DWG图纸转换为一个SVG文件,导致有大体量图元的图纸转换出的SVG会非常大,在数据处理时会占用电脑很大的内存资源;图纸中的文本图元(MText、Text图元)以Text标签输出至SVG,导致前端应用开发中将SVG转为其他数据格式(如gltf等)存在困难;转换出的SVG没有图层、文本标识等信息,满足不了前端应用开发对此方面的实际需求。
发明内容
本申请实施例的目的在于提供一种DWG图纸数据的转换方法、系统、电子设备及计算机可读存储介质,可以实现提高DWG图纸数据的转换效率和转换便捷性的技术效果。
第一方面,本申请实施例提供了一种DWG图纸数据的转换方法,包括:
获取DWG图纸数据;
对所述DWG图纸数据中的文本图元进行字体矢量化处理,生成第二DWG图纸数据;
根据预设拆分条件对所述第二DWG图纸数据进行拆分,生成DWG图纸文件集;
根据预设ODA转换库对所述DWG图纸文件集进行转换处理,生成SVG文件。
在上述实现过程中,该DWG图纸数据的转换方法通过对DWG图纸数据中的文本图元进行字体矢量化处理并生成相应的第二DWG图纸数据,使文本图元可以输出至SVG;对第二DWG图纸数据预设拆分条件(如:按图层、文本进行拆分),形成拆分后的DWG图纸文件集,再调用预设ODA转换库,对DWG图纸文件集中的各图纸转换输出其对应的SVG文件;从而,该DWG图纸数据的转换方法使前端应用能对大体量图元的图纸进行分别(如:分图层)加载,减轻了加载时内存占用压力,能识别文本图元,避免此类图元参与鼠标吸附的计算,从而减小了计算量,提升了浏览流畅度,可以实现提高DWG图纸数据的转换效率和转换便捷性的技术效果。
进一步地,在所述获取DWG图纸数据的步骤之后,所述方法还包括:
根据所述DWG图纸数据提取图纸模型空间中的第一角点坐标和第二角点坐标;
判断所述第一角点坐标和所述第二角点坐标形成的坐标范围是否大于预设范围;
若是,对所述DWG图纸数据中图元的坐标进行缩小处理,生成第三DWG图纸数据;
若否,执行所述对所述DWG图纸数据中的文本图元进行字体矢量化处理,生成第二DWG图纸数据的步骤。
在上述实现过程中,在第一角点坐标和第二角点坐标形成的坐标范围大于预设范围时,对DWG图纸数据中图元的坐标进行缩小处理,以使其在SVG所支持的坐标范围内;从而,解决了大坐标图纸的DWG图纸数据导不出SVG的问题。
进一步地,在所述对所述DWG图纸数据中图元的坐标进行缩小处理,生成第三DWG图纸数据的步骤之后,所述方法还包括:
对所述第三DWG图纸数据中的文本图元进行字体矢量化处理,生成所述第二DWG图纸数据。
在上述实现过程中,在对DWG图纸数据中图元的坐标进行缩小处理后,对相应的第三DWG图纸数据进行文字矢量化处理。
进一步地,所述对所述DWG图纸数据中图元的坐标进行缩小处理,生成第三DWG图纸数据的步骤,包括:
对所述DWG图纸数据中图元的坐标进行缩小处理,判断缩小后的所述第一角点坐标和缩小后的所述第二角点坐标形成的坐标范围是否大于预设范围;
若是,继续执行所述对所述DWG图纸数据中图元的坐标进行缩小处理,判断缩小后的所述第一角点坐标和缩小后的所述第二角点坐标形成的坐标范围是否大于预设范围的步骤;
若否,生成所述DWG图纸数据的坐标缩小倍数数据;
根据坐标缩小倍数数据生成图元转换矩阵;
遍历所述DWG图纸数据中图纸模型空间的所有图元,根据所述图元转换矩阵对所述DWG图纸数据中的每个图元的坐标进行缩小处理,生成所述第三DWG图纸数据。
进一步地,所述图元转换矩阵为:
Figure BDA0003573973460000041
其中,s为所述坐标缩小倍数数据,x、y、z为所述图元的原始坐标、x′、y′、z′为所述图元缩小后的坐标,X、Y、Z为图纸坐标系原点在世界坐标系中的坐标。
进一步地,所述对所述DWG图纸数据中的文本图元进行字体矢量化处理,生成第二DWG图纸数据的步骤,包括:
遍历所述DWG图纸数据中图纸模型空间的所有文本图元,并对遍历到的每个文本图元执行以下处理:判断所述文本图元的字体是否为预设字体,若否,则将所述文本图元的字体转换处理为所述预设字体并保存;
根据转换字体后的所述DWG图纸数据生成所述第二DWG图纸数据。
在上述实现过程中,通过遍历DWG图纸数据中图纸模型空间的所有文本图元,将将文本图元的字体同意转换为预设字体,可输出字体矢量化后的SVG文件。
进一步地,所述DWG图纸文件集包括至少一个子DWG图纸数据,所述根据预设拆分条件对所述第二DWG图纸数据进行拆分,生成DWG图纸文件集的步骤,包括:
遍历所述第二DWG图纸数据的所有图层,对每个所述图层新建两个图元集,其中一个图元集为文本图元集,用于存放文本图元;另一个图元集为非文本图元集,用于存放非文本图元;
遍历所述第二DWG图纸数据的图纸模型空间中的所有图元,并对遍历到的每个图元执行以下处理:
判断所述图元是否为块图元,若所述图元为块图元,则将所述图元分成两个子块图元,其中一个子块图元只包含文本图元,将其存入所述图元所属图层的文本图元集中,另一子块图元只包含非文本图元,将其存入所述图元所属图层的非文本图元集中;若所述图元为非块图元,判断所述图元是否为文本图元,若是,则存入所述图元所属图层的文本图元集中,若否,则存入所述图元所属图层的非文本图元集中;
基于所述第二DWG图纸数据中每个图层的文本图元集、非文本图元集,生成一个对应的子DWG图纸数据;
根据所有的子DWG图纸数据生成所述DWG图纸文件集;
所述根据预设ODA转换库对所述DWG图纸文件集进行转换处理,生成SVG文件的步骤,包括:
对所述DWG图纸文件集中每个所述子DWG图纸数据,调用所述预设ODA转换库生成对应的SVG文件,所述SVG文件的信息包括所述DWG图纸数据的名称、对应的图层名称、是否为文本集中的一种或多种。
在上述实现过程中,对子DWG图纸数据输出其对应的SVG文件;多个SVG文件可形成最后的SVG数据包,转换出的SVG文件具有图层、文本标识等信息,可以满足前端应用开发对此方面的实际需求。
第二方面,本申请实施例提供了一种DWG图纸数据的转换系统,包括:
获取模块,用于获取DWG图纸数据;
字体矢量化处理模块,用于对所述DWG图纸数据中的文本图元进行字体矢量化处理,生成第二DWG图纸数据;
拆分模块,用于根据预设拆分条件对所述第二DWG图纸数据进行拆分,生成DWG图纸文件集;
转换模块,用于根据预设ODA转换库对所述DWG图纸文件集进行转换处理,生成SVG文件。
进一步地,所述DWG图纸数据的转换系统还包括:
角点提取模块,用于根据所述DWG图纸数据提取图纸模型空间中的第一角点坐标和第二角点坐标;
范围判断模块,用于判断所述第一角点坐标和所述第二角点坐标形成的坐标范围是否大于预设范围;
缩小处理模块,用于若是,对所述DWG图纸数据中图元的坐标进行缩小处理,生成第三DWG图纸数据。
进一步地,所述字体矢量化处理模块还用于对所述第三DWG图纸数据中的文本图元进行字体矢量化处理,生成所述第二DWG图纸数据。
进一步地,所述缩小处理模块包括:
缩小判断单元,用于对所述DWG图纸数据中图元的坐标进行缩小处理,判断缩小后的所述第一角点坐标和缩小后的所述第二角点坐标形成的坐标范围是否大于预设范围;若是,继续执行所述对所述DWG图纸数据中图元的坐标进行缩小处理,判断缩小后的所述第一角点坐标和缩小后的所述第二角点坐标形成的坐标范围是否大于预设范围的步骤;
缩小倍数单元,用于若否,生成所述DWG图纸数据的坐标缩小倍数数据;
转换矩阵单元,用于根据坐标缩小倍数数据生成图元转换矩阵;
图元缩小单元,用于遍历所述DWG图纸数据中图纸模型空间的所有图元,根据所述图元转换矩阵对所述DWG图纸数据中的每个图元的坐标进行缩小处理,生成所述第三DWG图纸数据。
进一步地,所述字体矢量化处理模块包括:
字体遍历单元,用于遍历所述DWG图纸数据中图纸模型空间的所有文本图元,并对遍历到的每个文本图元执行以下处理:判断所述文本图元的字体是否为预设字体,若否,则将所述文本图元的字体转换处理为所述预设字体并保存;
生成单元,用于根据转换字体后的所述DWG图纸数据生成所述第二DWG图纸数据。
进一步地,所述DWG图纸文件集包括至少一个子DWG图纸数据,所述拆分模块具体用于:
遍历所述第二DWG图纸数据的所有图层,对每个所述图层新建两个图元集,其中一个图元集为文本图元集,用于存放文本图元;另一个图元集为非文本图元集,用于存放非文本图元;
遍历所述第二DWG图纸数据的图纸模型空间中的所有图元,并对遍历到的每个图元执行以下处理:
判断所述图元是否为块图元,若所述图元为块图元,则将所述图元分成两个子块图元,其中一个子块图元只包含文本图元,将其存入所述图元所属图层的文本图元集中,另一子块图元只包含非文本图元,将其存入所述图元所属图层的非文本图元集中;若所述图元为非块图元,判断所述图元是否为文本图元,若是,则存入所述图元所属图层的文本图元集中,若否,则存入所述图元所属图层的非文本图元集中;
基于所述第二DWG图纸数据中每个图层的文本图元集、非文本图元集,生成一个对应的子DWG图纸数据;
根据所有的子DWG图纸数据生成所述DWG图纸文件集;
所述转换模块具体用于对所述DWG图纸文件集中每个所述子DWG图纸数据,调用所述预设ODA转换库生成对应的SVG文件,所述SVG文件的信息包括所述DWG图纸数据的名称、对应的图层名称、是否为文本集中的一种或多种。
第三方面,本申请实施例提供的一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的方法的步骤。
第四方面,本申请实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如第一方面任一项所述的方法。
第五方面,本申请实施例提供的一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行如第一方面任一项所述的方法。
本申请公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本申请公开的上述技术即可得知。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种DWG图纸数据的转换方法的流程示意图;
图2为本申请实施例提供的另一种DWG图纸数据的转换方法的流程示意图;
图3为本申请实施例提供的坐标缩小处理的流程示意图;
图4为本申请实施例提供的字体矢量化处理的流程示意图;
图5为本申请实施例提供的图纸数据拆分及转换处理的流程示意图;
图6为本申请实施例提供的DWG图纸数据的转换系统的结构框图;
图7为本申请实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请实施例提供了一种DWG图纸数据的转换方法、系统、电子设备及计算机可读存储介质,可以应用于将DWG图纸数据转换为SVG文件;该DWG图纸数据的转换方法通过对DWG图纸数据中的文本图元进行字体矢量化处理并生成相应的第二DWG图纸数据,使文本图元可以输出至SVG;对第二DWG图纸数据预设拆分条件(如:按图层、文本进行拆分),形成拆分后的DWG图纸文件集,再调用预设ODA转换库,对DWG图纸文件集中的各图纸转换输出其对应的SVG文件;从而,该DWG图纸数据的转换方法使前端应用能对大体量图元的图纸进行分别(如:分图层)加载,减轻了加载时内存占用压力,能识别文本图元,避免此类图元参与鼠标吸附的计算,从而减小了计算量,提升了浏览流畅度,可以实现提高DWG图纸数据的转换效率和转换便捷性的技术效果。
请参见图1,图1为本申请提供的一种DWG图纸数据的转换方法的流程示意图,该DWG图纸数据的转换方法包括如下步骤:
S100:获取DWG图纸数据。
S200:对DWG图纸数据中的文本图元进行字体矢量化处理,生成第二DWG图纸数据。
示例性地,通过对DWG图纸数据中的文本图元进行字体矢量化处理,使DWG图纸数据中的文字能以polyline或path的矢量标签形式输出至SVG,从而利于SVG转换为其他格式数据(如gltf等),提高转换便捷性。
示例性地,DWG图纸数据包括图元,图元是任何一个图形表达都是由若干不同的点、线、面图案或相同的图案循环组合而成的,这些点、线、面图案即为基本图形元素。对于DWG图纸数据中作为文字的图元,则称为文本图元。
S300:根据预设拆分条件对第二DWG图纸数据进行拆分,生成DWG图纸文件集。
示例性地,预设拆分条件可以是按图层、文本、非文本等方式,或者是彼此结合的方式(如:图层、文本结合的方式)进行拆分,此处不作限定。
在一些实施方式中,按图层、文本结合方式进行拆分,使前端应用能对大体量图元的图纸进行分别加载,可以有效减轻加载时内存占用压力;同时,可以识别文本图元,可实现图层显隐控制等操作,避免此类图元参与鼠标吸附的计算,从而减小了计算量,提升了浏览流畅度。
S400:根据预设ODA转换库对DWG图纸文件集进行转换处理,生成SVG文件。
示例性地,在对DWG图纸数据进行字体矢量化处理、拆分后,根据预设ODA转换库对DWG图纸文件集进行转换处理,转换出的SVG文件具有图层、文本标识等信息,可以满足前端应用开发对此方面的实际需求。
在一些实施方式中,该DWG图纸数据的转换方法通过对DWG图纸数据中的文本图元进行字体矢量化处理并生成相应的第二DWG图纸数据,使文本图元可以输出至SVG;对第二DWG图纸数据预设拆分条件(如:按图层、文本进行拆分),形成拆分后的DWG图纸文件集,再调用预设ODA转换库,对DWG图纸文件集中的各图纸转换输出其对应的SVG文件;从而,该DWG图纸数据的转换方法使前端应用能对大体量图元的图纸进行分别(如:分图层)加载,减轻了加载时内存占用压力,能识别文本图元,避免此类图元参与鼠标吸附的计算,从而减小了计算量,提升了浏览流畅度,可以实现提高DWG图纸数据的转换效率和转换便捷性的技术效果。
请参见图2,图2为本申请实施例提供的另一种DWG图纸数据的转换方法的流程示意图。
示例性地,在S100:获取DWG图纸数据的步骤之后,方法还包括:
S110:根据DWG图纸数据提取图纸模型空间中的第一角点坐标和第二角点坐标;
S120:判断第一角点坐标和第二角点坐标形成的坐标范围是否大于预设范围;
若是,S130:对DWG图纸数据中图元的坐标进行缩小处理,生成第三DWG图纸数据;
若否,执行S200:对DWG图纸数据中的文本图元进行字体矢量化处理,生成第二DWG图纸数据的步骤。
示例性地,在第一角点坐标和第二角点坐标形成的坐标范围大于预设范围时,对DWG图纸数据中图元的坐标进行缩小处理,以使其在SVG所支持的坐标范围内。从而,解决了大坐标(大小超过长整型)图纸的DWG图纸数据导不出SVG的问题。
可选地,第一角点坐标为左下角点左边,对应地,第二角点坐标为右上角点左边。在一些实施方式中,也可以是第一角点坐标为左上角点左边,对应地,第二角点坐标为右下角点左边。
示例性地,在S130:对DWG图纸数据中图元的坐标进行缩小处理,生成第三DWG图纸数据的步骤之后,方法还包括:
S140:对第三DWG图纸数据中的文本图元进行字体矢量化处理,生成第二DWG图纸数据。
示例性地,在对DWG图纸数据中图元的坐标进行缩小处理后,对相应的第三DWG图纸数据进行文字矢量化处理。
请参见图3,图3为本申请实施例提供的坐标缩小处理的流程示意图。
示例性地,S130:对DWG图纸数据中图元的坐标进行缩小处理,生成第三DWG图纸数据的步骤,包括:
S131:对DWG图纸数据中图元的坐标进行缩小处理;
S132:判断缩小后的第一角点坐标和缩小后的第二角点坐标形成的坐标范围是否大于预设范围;
若是,继续执行S131:对DWG图纸数据中图元的坐标进行缩小处理,S132:判断缩小后的第一角点坐标和缩小后的第二角点坐标形成的坐标范围是否大于预设范围的步骤;
若否,S133:生成DWG图纸数据的坐标缩小倍数数据;
S134:根据坐标缩小倍数数据生成图元转换矩阵;
S135:遍历DWG图纸数据中图纸模型空间的所有图元,根据图元转换矩阵对DWG图纸数据中的每个图元的坐标进行缩小处理,生成第三DWG图纸数据。
在一些实施场景中,结合图3,对DWG图纸数据中图元的坐标判断及处理具体包括如下步骤:
(1)提取DWG图纸数据中图纸模型空间boundingbox的左下角点坐标(minX,minY)、右上角点(maxX,maxY)坐标;
(2)判断boundingbox的坐标范围是否超出长整型(-2,147,483,648~2,147,483,647);
(3)若超出,则对boundingbox坐标进行缩小10倍处理,若仍超出,则继续缩小10倍,直至满足条件为止,并保存最终缩小倍数;
(4)遍历图纸模型空间的所有图元,利用上面计算所得缩小倍数,计算出图元对应的转换矩阵,再利用新转换矩阵,调用ODA转换接口对每个图元进行坐标缩小处理。
示例性地,图元转换矩阵为:
Figure BDA0003573973460000131
其中,s为坐标缩小倍数数据,x、y、z为图元的原始坐标、x′、y′、z′为图元缩小后的坐标,X、Y、Z为图纸坐标系原点在世界坐标系中的坐标。
示例性地,boundingbox指的是包含图元区域的最小矩形。
示例性地,世界坐标系指的是系统的绝对坐标系,在没有建立用户坐标系之前画面上所有点的坐标都是以该坐标系的原点来确定各自的位置的。
请参见图4,图4为本申请实施例提供的字体矢量化处理的流程示意图。
示例性地,S200:对DWG图纸数据中的文本图元进行字体矢量化处理,生成第二DWG图纸数据的步骤,包括:
S210:遍历DWG图纸数据中图纸模型空间的所有文本图元,并对遍历到的每个文本图元执行以下处理:
S220:判断文本图元的字体是否为预设字体;
若否,S230:则将文本图元的字体转换处理为预设字体并保存;
若是,S240:判断遍历是否结束,若遍历结束接跳转至S250;若遍历未结束则跳转至210;
S250:根据转换字体后的DWG图纸数据生成第二DWG图纸数据。
示例性地,通过遍历DWG图纸数据中图纸模型空间的所有文本图元,将将文本图元的字体同意转换为预设字体,可输出字体矢量化后的SVG文件。
在一些实施方式中,预设ODA转换库将DWG图纸数据转为SVG文件时,会对shx字体的文本进行矢量化处理;因此,将DWG图纸数据内所有文本图元(MText、Text图元)的字体设为shx字体,即可输出字体矢量化后的SVG文件;具体步骤示例如下:
(1)遍历图纸模型空间中的文本图元,提取出其所引用的字体文件信息;
(2)判断其字体文件是否为shx字体;
(3)若不是,则将其字体设置为shx字体。
示例性地,shx字体即shx文件,在CAD里叫形文件,分为两种:字体文件和符号形文件;字体文件又分两种,可以叫做小字体和大字体。小字体里面只包含一些单字节(在输入法里称为半角)的数字、字母和符号,大字体是针对中文、韩文、日文等双字节(全角)文字定制的字体文件。
请参见图5,图5为本申请实施例提供的图纸数据拆分及转换处理的流程示意图。
示例性地,DWG图纸文件集包括至少一个子DWG图纸数据,S300:根据预设拆分条件对第二DWG图纸数据进行拆分,生成DWG图纸文件集的步骤,包括:
S310:遍历第二DWG图纸数据的所有图层,对每个图层新建文本图元集和非文本图元集,其中文本图元集用于存放文本图元,非文本图元集用于存放非文本图元;
S320:遍历第二DWG图纸数据的图纸模型空间中的所有图元,并对遍历到的每个图元执行以下处理:
S330:判断图元是否为块图元;
若图元为块图元,S340:则将图元分成两个子块图元,其中一个子块图元只包含文本图元,将其存入图元所属图层的文本图元集中,另一子块图元只包含非文本图元,将其存入图元所属图层的非文本图元集中;
若图元为非块图元,S350:判断图元是否为文本图元,
若是,S351:则存入图元所属图层的文本图元集中,
若否,S352:则存入图元所属图层的非文本图元集中;
S360:判断遍历是否结束,若是则跳转至S320,若否则执行370;
S370:基于第二DWG图纸数据中每个图层的文本图元集、非文本图元集,生成一个对应的子DWG图纸数据;
S380:根据所有的子DWG图纸数据生成DWG图纸文件集;
S400:根据预设ODA转换库对DWG图纸文件集进行转换处理,生成SVG文件的步骤,包括:
S410:对DWG图纸文件集中每个子DWG图纸数据,调用预设ODA转换库生成对应的SVG文件,SVG文件的信息包括DWG图纸数据的名称、对应的图层名称、是否为文本集中的一种或多种。
示例性地,对子DWG图纸数据输出其对应的SVG文件;多个SVG文件可形成最后的SVG数据包,转换出的SVG文件具有图层、文本标识等信息,可以满足前端应用开发对此方面的实际需求。
示例性地,块图元指的是CAD中很多个图元组成的一个整体,作用就是方便插入到图形文件的任何需要复制的地方。
在一些实施方式中,DWG图纸数据按图层、文本进行拆分,及SVG文件导出的具体步骤示例如下:
(1)遍历DWG图纸数据的所有图层,对每个图层新建两个空图元集,其中一个图元集用于存放文本图元,另一个用于存放非文本图元;
(2)遍历DWG图纸数据的图纸模型空间的所有图元,若图元为块图元(块图元是由多个图元组成的一个整体),则将其分成两个子块图元,其中一个子块图元只包含文本图元,将其存入块图元所属图层的文本图元集中,另一子块图元只包含非文本图元,将其存入块图元所属图层的非文本图元集中;
(3)上一步中遍历的非块图元,若为文本图元,则存入图元所属图层的文本图元集中,若为非文本图元,则存入图元所属图层的非文本图元集中;
(4)基于每个图层的各图元集(包括文本图元集和非文本图元集),生成一个对应的子DWG图纸数据;
(5)对上一步生成的每个子DWG图纸数据,调用ODA转换库生成其对应的SVG文件,并将原DWG图纸名、对应的图层名、是否为文本集、缩放倍数形成字符串作为SVG文件的名称。
请参见图6,图6为本申请实施例提供的DWG图纸数据的转换系统的结构框图,该DWG图纸数据的转换系统包括:
获取模块100,用于获取DWG图纸数据;
字体矢量化处理模块200,用于对DWG图纸数据中的文本图元进行字体矢量化处理,生成第二DWG图纸数据;
拆分模块300,用于根据预设拆分条件对第二DWG图纸数据进行拆分,生成DWG图纸文件集;
转换模块400,用于根据预设ODA转换库对DWG图纸文件集进行转换处理,生成SVG文件。
示例性地,DWG图纸数据的转换系统还包括:
角点提取模块,用于根据DWG图纸数据提取图纸模型空间中的第一角点坐标和第二角点坐标;
范围判断模块,用于判断第一角点坐标和第二角点坐标形成的坐标范围是否大于预设范围;
缩小处理模块,用于若是,对DWG图纸数据中图元的坐标进行缩小处理,生成第三DWG图纸数据。
示例性地,字体矢量化处理模块200还用于对第三DWG图纸数据中的文本图元进行字体矢量化处理,生成第二DWG图纸数据。
示例性地,缩小处理模块包括:
缩小判断单元,用于对DWG图纸数据中图元的坐标进行缩小处理,判断缩小后的第一角点坐标和缩小后的第二角点坐标形成的坐标范围是否大于预设范围;若是,继续执行对DWG图纸数据中图元的坐标进行缩小处理,判断缩小后的第一角点坐标和缩小后的第二角点坐标形成的坐标范围是否大于预设范围的步骤;
缩小倍数单元,用于若否,生成DWG图纸数据的坐标缩小倍数数据;
转换矩阵单元,用于根据坐标缩小倍数数据生成图元转换矩阵;
图元缩小单元,用于遍历DWG图纸数据中图纸模型空间的所有图元,根据图元转换矩阵对DWG图纸数据中的每个图元的坐标进行缩小处理,生成第三DWG图纸数据。
示例性地,字体矢量化处理模块200包括:
字体遍历单元,用于遍历DWG图纸数据中图纸模型空间的所有文本图元,并对遍历到的每个文本图元执行以下处理:判断文本图元的字体是否为预设字体,若否,则将文本图元的字体转换处理为预设字体并保存;
生成单元,用于根据转换字体后的DWG图纸数据生成第二DWG图纸数据。
示例性地,DWG图纸文件集包括至少一个子DWG图纸数据,拆分模块300具体用于:
遍历第二DWG图纸数据的所有图层,对每个图层新建两个图元集,其中一个图元集为文本图元集,用于存放文本图元;另一个图元集为非文本图元集,用于存放非文本图元;
遍历第二DWG图纸数据的图纸模型空间中的所有图元,并对遍历到的每个图元执行以下处理:
判断图元是否为块图元,若图元为块图元,则将图元分成两个子块图元,其中一个子块图元只包含文本图元,将其存入图元所属图层的文本图元集中,另一子块图元只包含非文本图元,将其存入图元所属图层的非文本图元集中;若图元为非块图元,判断图元是否为文本图元,若是,则存入图元所属图层的文本图元集中,若否,则存入图元所属图层的非文本图元集中;
基于第二DWG图纸数据中每个图层的文本图元集、非文本图元集,生成一个对应的子DWG图纸数据;
根据所有的子DWG图纸数据生成DWG图纸文件集;
转换模块400具体用于对DWG图纸文件集中每个子DWG图纸数据,调用预设ODA转换库生成对应的SVG文件,SVG文件的信息包括DWG图纸数据的名称、对应的图层名称、是否为文本集中的一种或多种。
需要注意的是,图6所示的DWG图纸数据的转换系统与图1至图5所示的方法实施例相对应,为避免重复,此处不再赘述。
本申请还提供一种电子设备,请参见图7,图7为本申请实施例提供的一种电子设备的结构框图。电子设备可以包括处理器510、通信接口520、存储器530和至少一个通信总线540。其中,通信总线540用于实现这些组件直接的连接通信。其中,本申请实施例中电子设备的通信接口520用于与其他节点设备进行信令或数据的通信。处理器510可以是一种集成电路芯片,具有信号的处理能力。
上述的处理器510可以是通用处理器,包括中央处理器(CPU,Central ProcessingUnit)、网络处理器(NP,Network Processor)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器510也可以是任何常规的处理器等。
存储器530可以是,但不限于,随机存取存储器(RAM,Random Access Memory),只读存储器(ROM,Read Only Memory),可编程只读存储器(PROM,Programmable Read-OnlyMemory),可擦除只读存储器(EPROM,Erasable Programmable Read-Only Memory),电可擦除只读存储器(EEPROM,Electric Erasable Programmable Read-Only Memory)等。存储器530中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器510执行时,电子设备可以执行上述图1至图5方法实施例涉及的各个步骤。
可选地,电子设备还可以包括存储控制器、输入输出单元。
所述存储器530、存储控制器、处理器510、外设接口、输入输出单元各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通信总线540实现电性连接。所述处理器510用于执行存储器530中存储的可执行模块,例如电子设备包括的软件功能模块或计算机程序。
输入输出单元用于提供给用户创建任务以及为该任务创建启动可选时段或预设执行时间以实现用户与服务器的交互。所述输入输出单元可以是,但不限于,鼠标和键盘等。
可以理解,图7所示的结构仅为示意,所述电子设备还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。图7中所示的各组件可以采用硬件、软件或其组合实现。
本申请实施例还提供一种存储介质,所述存储介质上存储有指令,当所述指令在计算机上运行时,所述计算机程序被处理器执行时实现方法实施例所述的方法,为避免重复,此处不再赘述。
本申请还提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行方法实施例所述的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种DWG图纸数据的转换方法,其特征在于,包括:
获取DWG图纸数据;
对所述DWG图纸数据中的文本图元进行字体矢量化处理,生成第二DWG图纸数据;
根据预设拆分条件对所述第二DWG图纸数据进行拆分,生成DWG图纸文件集;
根据预设ODA转换库对所述DWG图纸文件集进行转换处理,生成SVG文件。
2.根据权利要求1所述的DWG图纸数据的转换方法,其特征在于,在所述获取DWG图纸数据的步骤之后,所述方法还包括:
根据所述DWG图纸数据提取图纸模型空间中的第一角点坐标和第二角点坐标;
判断所述第一角点坐标和所述第二角点坐标形成的坐标范围是否大于预设范围;
若是,对所述DWG图纸数据中图元的坐标进行缩小处理,生成第三DWG图纸数据;
若否,执行所述对所述DWG图纸数据中的文本图元进行字体矢量化处理,生成第二DWG图纸数据的步骤。
3.根据权利要求2所述的DWG图纸数据的转换方法,其特征在于,在所述对所述DWG图纸数据中图元的坐标进行缩小处理,生成第三DWG图纸数据的步骤之后,所述方法还包括:
对所述第三DWG图纸数据中的文本图元进行字体矢量化处理,生成所述第二DWG图纸数据。
4.根据权利要求2或3所述的DWG图纸数据的转换方法,其特征在于,所述对所述DWG图纸数据中图元的坐标进行缩小处理,生成第三DWG图纸数据的步骤,包括:
对所述DWG图纸数据中图元的坐标进行缩小处理,判断缩小后的所述第一角点坐标和缩小后的所述第二角点坐标形成的坐标范围是否大于预设范围;
若是,继续执行所述对所述DWG图纸数据中图元的坐标进行缩小处理,判断缩小后的所述第一角点坐标和缩小后的所述第二角点坐标形成的坐标范围是否大于预设范围的步骤;
若否,生成所述DWG图纸数据的坐标缩小倍数数据;
根据坐标缩小倍数数据生成图元转换矩阵;
遍历所述DWG图纸数据中图纸模型空间的所有图元,根据所述图元转换矩阵对所述DWG图纸数据中的每个图元的坐标进行缩小处理,生成所述第三DWG图纸数据。
5.根据权利要求4所述的DWG图纸数据的转换方法,其特征在于,所述图元转换矩阵为:
Figure FDA0003573973450000021
其中,s为所述坐标缩小倍数数据,x、y、z为所述图元的原始坐标、x′、y′、z′为所述图元缩小后的坐标,X、Y、Z为图纸坐标系原点在世界坐标系中的坐标。
6.根据权利要求1所述的DWG图纸数据的转换方法,其特征在于,所述对所述DWG图纸数据中的文本图元进行字体矢量化处理,生成第二DWG图纸数据的步骤,包括:
遍历所述DWG图纸数据中图纸模型空间的所有文本图元,并对遍历到的每个文本图元执行以下处理:判断所述文本图元的字体是否为预设字体,若否,则将所述文本图元的字体转换处理为所述预设字体并保存;
根据转换字体后的所述DWG图纸数据生成所述第二DWG图纸数据。
7.根据权利要求1所述的DWG图纸数据的转换方法,其特征在于,所述DWG图纸文件集包括至少一个子DWG图纸数据,所述根据预设拆分条件对所述第二DWG图纸数据进行拆分,生成DWG图纸文件集的步骤,包括:
遍历所述第二DWG图纸数据的所有图层,对每个所述图层新建两个图元集,其中一个图元集为文本图元集,用于存放文本图元;另一个图元集为非文本图元集,用于存放非文本图元;
遍历所述第二DWG图纸数据的图纸模型空间中的所有图元,并对遍历到的每个图元执行以下处理:
判断所述图元是否为块图元,若所述图元为块图元,则将所述图元分成两个子块图元,其中一个子块图元只包含文本图元,将其存入所述图元所属图层的文本图元集中,另一子块图元只包含非文本图元,将其存入所述图元所属图层的非文本图元集中;若所述图元为非块图元,判断所述图元是否为文本图元,若是,则存入所述图元所属图层的文本图元集中,若否,则存入所述图元所属图层的非文本图元集中;
基于所述第二DWG图纸数据中每个图层的文本图元集、非文本图元集,生成一个对应的子DWG图纸数据;
根据所有的子DWG图纸数据生成所述DWG图纸文件集;
所述根据预设ODA转换库对所述DWG图纸文件集进行转换处理,生成SVG文件的步骤,包括:
对所述DWG图纸文件集中每个所述子DWG图纸数据,调用所述预设ODA转换库生成对应的SVG文件,所述SVG文件的信息包括所述DWG图纸数据的名称、对应的图层名称、是否为文本集中的一种或多种。
8.一种DWG图纸数据的转换系统,其特征在于,包括:
获取模块,用于获取DWG图纸数据;
字体矢量化处理模块,用于对所述DWG图纸数据中的文本图元进行字体矢量化处理,生成第二DWG图纸数据;
拆分模块,用于根据预设拆分条件对所述第二DWG图纸数据进行拆分,生成DWG图纸文件集;
转换模块,用于根据预设ODA转换库对所述DWG图纸文件集进行转换处理,生成SVG文件。
9.一种电子设备,其特征在于,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的DWG图纸数据的转换方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1至7任一项所述的DWG图纸数据的转换方法。
CN202210334239.7A 2022-03-30 2022-03-30 一种dwg图纸数据的转换方法及系统 Pending CN114637732A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210334239.7A CN114637732A (zh) 2022-03-30 2022-03-30 一种dwg图纸数据的转换方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210334239.7A CN114637732A (zh) 2022-03-30 2022-03-30 一种dwg图纸数据的转换方法及系统

Publications (1)

Publication Number Publication Date
CN114637732A true CN114637732A (zh) 2022-06-17

Family

ID=81951380

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210334239.7A Pending CN114637732A (zh) 2022-03-30 2022-03-30 一种dwg图纸数据的转换方法及系统

Country Status (1)

Country Link
CN (1) CN114637732A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117290906A (zh) * 2023-11-20 2023-12-26 山东鲁浦信息技术有限公司 一种用于cad图纸的图签信息替换方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117290906A (zh) * 2023-11-20 2023-12-26 山东鲁浦信息技术有限公司 一种用于cad图纸的图签信息替换方法及系统

Similar Documents

Publication Publication Date Title
US10497086B2 (en) Methods and apparatuses for providing a hardware accelerated web engine
CN107025676B (zh) 一种图片模板以及图片的生成方法及相关装置
US9842251B2 (en) Bulleted lists
US9117314B2 (en) Information output apparatus, method, and recording medium for displaying information on a video display
CN106776994B (zh) 一种工程符号在工程报表和网页中的应用方法及系统
CN111797595A (zh) 一种基于xml模板生成ofd版式页面的方法和装置
CN112766268A (zh) 一种文本标注生成方法、装置、电子设备及存储介质
CN114637732A (zh) 一种dwg图纸数据的转换方法及系统
CN112395834A (zh) 基于图片输入的脑图生成方法、装置、设备及存储介质
JP3037854B2 (ja) 文字生成方法及びその装置
CN102467490B (zh) 一种字体数据的处理方法及装置
US9697180B2 (en) System and method for text layout using a path-fill algorithm
CN112307725B (zh) 一种在二维制图界面添加表格信息的方法
CN115375812A (zh) Cad数据渲染方法、装置、电子设备及存储介质
CN114254585A (zh) 字体生成方法、装置、电子设备及存储介质
CN111475156B (zh) 页面代码生成方法和装置、电子设备和存储介质
CN113360155A (zh) 前端界面背景配色方法、装置、设备及存储介质
CN111130554A (zh) 一种文件压缩方法、装置、电子设备及可读取存储介质
CN110032718B (zh) 一种表格转换方法、系统和存储介质
CN118133779B (zh) 蓝牙手表连字变体的特殊字符编码处理方法和装置
CN116204258A (zh) 一种页面样式污染检测方法、装置、设备和介质
US10410052B2 (en) Stroke based skeletonizer
CN118228212A (zh) 水印的处理方法、装置、电子设备、存储介质和程序产品
CN114332881A (zh) 图纸解析方法、装置、设备及存储介质
CN118013598A (zh) 平面设计尺寸文件扩展方法、装置、设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination