本发明涉及一种数据转化方法,尤其涉及基于管线三维模型的数据转化方法。
背景技术:
avevaeverything3d(简称为e3d)即工厂三维布置设计管理系统,e3d具有以下主要功能特点:(1)全比例三维实体建模,而且以所见即所得方式建模;(2)通过网络实现多专业实时协同设计、真实的现场环境,多个专业组可以协同设计以建立一个详细的3d数字工厂模型,每个设计者在设计过程中都可以随时查看其它设计者正在干什么;(3)交互设计过程中,实时三维碰撞检查,e3d能自动地在元件和各专业设计之间进行碰撞检查,在整体上保证设计结果的准确性;(4)拥有独立的数据库结构,元件和设备信息全部可以存储在参数化的元件库和设备库中,不依赖第三方数据库;(5)开放的开发环境,利用programmablemacrolanguage可编程宏语言,可与通用数据库连接,其包含的autodraft程序将e3d与autocad接口连接,可方便地将二者的图纸互相转换,e3d输出的图形符合传统的工业标准。
spoolgen及辅助软件是英国alias公司开发的管线加工设计软件,是目前国际上主流的管线加工设计软件,它架构于isogen引擎上生成单管图,现在使用的三维设计软件,如autoplant、pds、pdms都无一例外的采用isogen作为三维图引擎,spoolgen与多软件结合已成为目前主流的工作方式。然而spoolgen与e3d结合存在以下缺陷:
一、spoolgen输出iso图纸不一致,为设计人员检查图纸员增加了工作量;
二、降低了设计施工的效率,增加了设计成本;
技术实现要素:
本发明的目的在于克服已有技术的不足,提供基于管线三维模型的数据转化方法,可以实现由e3d软件到spoolgen软件间的iso图转化方法,实现e3d软件输出iso图和spoolgen软件输出的iso图的一致,方便设计施工人员检查,提高设计效率。
为了达到上述目的,本发明采用的技术方案是:
基于管线三维模型的数据转化方法,包括如下步骤:
步骤一、将e3d软件中管线三维模型分别沿着e3d中模型坐标系的x轴方向向yoz平面投影为二维图形,记录为a组图形并保存为a.drw文件,沿着e3d中模型坐标系的y轴方向向xoz平面投影为二维图形,记录为b组图形并保存为b.drw文件,沿着e3d中模型坐标系的z轴方向向xoy平面投影为二维图形,记录为c组图形并保存为c.drw文件;
步骤二、编写并调用solidworks数据处理宏命令,分别对a.drw文件、b.drw文件和c.drw文件中的二维图形进行处理,得到组成管线的各段管道、弯头和阀门的元件信息,然后新建excel表格,命名为初始元件信息表,再将从a.drw文件得到的各段管道、弯头和阀门的元件信息存储到初始元件信息表的sheet1中,从b.drw文件中得到的各段管道、弯头和阀门的元件信息存储到初始元件信息表的sheet2中,从c.drw文件中得到的各段管道、弯头和阀门的元件信息存储到初始元件信息表的sheet3中;最后,新建excel表格,命名为管线信息表,分类整理初始元件信息表中sheet1、sheet2和sheet3中所有管道、弯头和阀门元件,将所有管道数据保存在管线信息表的sheet1中,将所有弯头数据保存在管线信息表的sheet2中,将所有阀门数据保存在管线信息表的sheet3中,对比初始元件信息表sheet1、sheet2、sheet3中各段管道和弯头的中轴线的起点坐标和终点坐标信息以及阀门前后两端的孔径的中心位置的起始点坐标和终点坐标,将各段管道、弯头和阀门分别在yoz平面、xoz平面以及xoy平面的二维坐标转化为在e3d中模型坐标系下的真实三维起点坐标和终点坐标,更新到管线信息表的该元件的坐标信息,得到完整的各段管道和弯头的尺寸参数信息和坐标信息以及阀门的类型信息和坐标信息;
步骤三、使用solidworks新建并调用三维建模宏命令,完成对第i段管道的建模,保存第i段管道模型且以管道编号命名;完成对弯头wij的建模,保存弯头模型且以弯头编号命名;建立以长方体表示的阀门三维模型,保存阀门模型,且以阀门编号命名;
步骤四、比较spoolgen中管线元件库中的各段管道和弯头的结构形式与solidworks中生成的各段管道和弯头的三维模型的不同,根据spoolgen中管线元件库中的各段管道和弯头的结构形式对solidworks中管线的各段管道和弯头的三维模型进行修改,使各段管道和弯头的三维模型尺寸与spoolgen中管线元件库中相应的元件尺寸一致并将修改后的文件保存成spoolgen可识别格式三维模型文件,然后将文件导入spoolgen;
步骤五、在spoolgen中对管线模型进行拼接,使各三维模型文件连接成一个整体,具体步骤如下:
第一步、用spoolgen软件读取管线信息表中编号为l1的第一段管道的三维模型文件,对第一段管道的三维模型进行平移和旋转,使第一段管道的中轴线在spoolgen坐标系下的起点坐标和终点坐标与管线信息表中记录的第一段管道的中轴线的起点坐标和终点坐标一致,过第一段管道的中轴线起点且与第一段管道中轴线垂直的平面与spoolgen坐标系下的xoy平面重合;
第二步、检索管线信息表中各元件的起始点坐标,找到与上一步中编号为l1的三维模型的中轴线的终点坐标相同的元件的三维模型,对检索到的元件进行平移、旋转,使该检索到的元件的三维模型的起点坐标与上一步编号为l1的三维模型的中轴线的终点坐标重合,并且使过该检索到的元件的三维模型的起点与该三维模型中轴线垂直的平面和过上一步编号为l1的三维模型的中轴线的终点坐标且与编号为l1的三维模型的中轴线垂直所确定的平面重合,完成两个元件的拼接;
第三步、重复第二步操作,直到excel表中记录的所有元件的三维模型拼接完成;
步骤六、在spoolgen软件的元件库中找到与管线信息表中记录的阀门相同的阀门类元件,在指定位置替换掉相应的立方体;
步骤七、在spoolgen中输出标准的iso图,使得e3d软件中的三维模型得到spoolegen格式下的标准iso图。
与现有技术相比,本发明具有以下有益效果:
本发明所述的图纸转化系统能够解决设计过程中spoolgen和e3d输出图纸不一致的问题,提供统一规格的图纸,解决使用不同软件设计人员交流问题,提高图纸的一致性,方便设计施工,提高设计效率。
具体实施方式
下面结合实施例对本发明进行详细的描述。
本发明的基于管线三维模型的数据转化方法,包括如下步骤:
步骤一、将e3d软件中管线三维模型分别沿着e3d中模型坐标系的x轴方向向yoz平面投影为二维图形(采用投影变换矩阵t1),记录为a组图形并保存为a.drw文件,沿着e3d中模型坐标系的y轴方向向xoz平面投影为二维图形(采用投影变换矩阵t2),记录为b组图形并保存为b.drw文件,沿着e3d中模型坐标系的z轴方向向xoy平面投影为二维图形(采用投影变换矩阵t3),记录为c组图形并保存为c.drw文件,所用到的投影变换矩阵分别为:
步骤二、编写并调用solidworks数据处理宏命令,分别对a.drw文件、b.drw文件和c.drw文件中的二维图形进行处理,得到组成管线的各段管道、弯头和阀门的元件信息,然后新建excel表格,命名为初始元件信息表,再将从a.drw文件得到的各段管道、弯头和阀门的元件信息存储到初始元件信息表的sheet1中,从b.drw文件中得到的各段管道、弯头和阀门的元件信息存储到初始元件信息表的sheet2中,从c.drw文件中得到的各段管道、弯头和阀门的元件信息存储到初始元件信息表的sheet3中;最后,新建excel表格,命名为管线信息表,分类整理初始元件信息表中sheet1、sheet2和sheet3中所有管道、弯头和阀门元件,将所有管道数据保存在管线信息表的sheet1中,将所有弯头数据保存在管线信息表的sheet2中,将所有阀门数据保存在管线信息表的sheet3中,对比初始元件信息表sheet1、sheet2、sheet3中各段管道和弯头的中轴线的起点坐标和终点坐标信息以及阀门前后两端的孔径的中心位置的起始点坐标和终点坐标,将各段管道、弯头和阀门分别在yoz平面、xoz平面以及xoy平面的二维坐标转化为在e3d中模型坐标系下的真实三维起点坐标(xib,yib,zib)和终点坐标(xie,yie,zie),更新到管线信息表的该元件的坐标信息,得到完整的各段管道和弯头的尺寸参数信息和坐标信息以及阀门的类型信息和坐标信息。
如:管道在yoz平面、xoz平面以及xoy平面的二维坐标中轴线的起点坐标和终点坐标分别为(0,yib,zib)、(xib,0,zib)、(xib,yib,0)和(0,yie,zie)、(xie,0,zie)、(xie,yie,0),则转化为在e3d中模型坐标系下的真实三维起点坐标(xib,yib,zib)和终点坐标(xie,yie,zie)。
所述的分别对a.drw文件、b.drw文件和c.drw文件中的二维图形进行处理的具体方法如下;
第一步,读取a.drw文件;
第二步,将a组二维图形中的管线以弯头和阀门为节点进行分段处理得到组成管线的各段管道,然后从左到右分别对每段管道进行编号,记为li,测量第i段管道的尺寸参数信息(如:第i段管道的内直径、外直径、长度)、坐标信息(如:中轴线起始点坐标(0,yib,zib)、中轴线终点坐标(0,yie,zie)),将各段管道的尺寸参数信息和坐标信息分别记入对应的编号li,如l1=l2000d200d180,表示长度为2000mm,外径为200mm,内径为180mm的管道;
第三步、给弯头编号,记为wij,其中i、j分别为任意一个弯头连接的两段管道的编号,记录弯头的坐标信息(如:中轴线起始点坐标(0,yib,zib)、中轴线终点坐标(0,yie,zie))和尺寸参数信息(如:弯头角度θij,弯头的内外直径);
第四步、测量并记录阀门的坐标信息,如(阀门前后两端的孔径的中心位置的起始点坐标(0,yib,zib)和终点坐标(0,yie,zie)),给阀门编号,记为mij,其中i、j为通过阀门连接的两段管道的编号,将阀门的类型、拉力、材料、连接形式信息分别记入对应的编号mij,如mij=f4.0c12scf,表示法兰型阀门,承载压力为pn4.0,材料为20#,连接形式为内螺纹;
步骤三、使用solidworks新建并调用三维建模宏命令,完成对第i段管道的建模,保存第i段管道模型且以管道编号命名;完成对弯头wij的建模,保存弯头模型且以弯头编号命名;建立以长方体表示的阀门三维模型,保存阀门模型,且以阀门编号命名;
所述的步骤三的具体方法如下:
第一步,调用execel文件处理api,打开管线信息表,读取管线信息表中第i段管道信息;
第二步,调用solidwoks三维草图命令,按读取的管道信息绘制管道中轴线草图作为第一张草图,在管道起始点位置绘制管道截面图形作为第二张草图;
第三步,调用solidworks扫描命令,扫描路径选择第一张草图,截面形状选择第二张草图,完成对第i段管道的建模,保存模型且以管道编号命名;
第四步、采用与第一步相同的方法读取管线信息表中弯头wij信息,再采用与第二步相同的方法绘制弯头中轴线和弯头截面图形,分别作为第一张草图和第二张草图,再采用与第三步相同的方法,完成对弯头wij的建模,保存模型且以弯头编号命名;
第五步、在solidworks中建立以长方体表示的阀门三维模型,保存阀门模型,以阀门编号命名;
建立所述的阀门三维模型的具体过程为:调用拉伸凸台命令,绘制正方形草图,正方形边长等于与阀门相连管道的外径,拉伸长度等于相邻两管道之间距离,保存阀门模型,以阀门编号命名。
步骤四、比较spoolgen中管线元件库中的各段管道和弯头的结构形式与solidworks中生成的各段管道和弯头的三维模型的不同,根据spoolgen中管线元件库中的各段管道和弯头的结构形式对solidworks中管线的各段管道和弯头的三维模型进行修改(如:对各段管道和弯头的三维模型进行缩放),使各段管道和弯头的三维模型尺寸与spoolgen中管线元件库中相应的元件尺寸一致并将修改后的文件保存成spoolgen可识别格式三维模型文件,然后将文件导入spoolgen;
所用到的缩放矩阵为
sx、sy、sz分别表示沿x轴、y轴、z轴的缩放系数。
步骤五、在spoolgen中对管线模型进行拼接,使各三维模型文件连接成一个整体,具体步骤如下:
第一步、用spoolgen软件读取管线信息表中编号为l1的第一段管道的三维模型文件,对第一段管道的三维模型进行平移和旋转,使第一段管道的中轴线在spoolgen坐标系下的起点坐标和终点坐标与管线信息表中记录的第一段管道的中轴线的起点坐标和终点坐标一致,过第一段管道的中轴线起点且与第一段管道中轴线垂直的平面与spoolgen坐标系下的xoy平面重合;
第二步、检索管线信息表中各元件的起始点坐标,找到与上一步中编号为l1的三维模型的中轴线的终点坐标相同的元件的三维模型,对检索到的元件(管道、弯头或阀门的三维模型)进行平移、旋转,使该检索到的元件(管道、弯头或阀门的三维模型)的三维模型的起点坐标与上一步编号为l1的三维模型的中轴线的终点坐标重合,并且使过该检索到的元件的三维模型的起点与该三维模型中轴线垂直的平面和过上一步编号为l1的三维模型的中轴线的终点坐标且与编号为l1的三维模型的中轴线垂直所确定的平面重合,完成两个元件的拼接。
第三步、重复第二步操作,直到excel表中记录的所有元件的三维模型拼接完成;
步骤六、在spoolgen软件的元件库中找到与管线信息表中记录的阀门相同的阀门类元件,在指定位置替换掉相应的立方体;
步骤七、在spoolgen中输出标准的iso图,使得e3d软件中的三维模型得到spoolegen格式下的标准iso图。
1.基于管线三维模型的数据转化方法,其特征在于包括如下步骤:
步骤一、将e3d软件中管线三维模型分别沿着e3d中模型坐标系的x轴方向向yoz平面投影为二维图形,记录为a组图形并保存为a.drw文件,沿着e3d中模型坐标系的y轴方向向xoz平面投影为二维图形,记录为b组图形并保存为b.drw文件,沿着e3d中模型坐标系的z轴方向向xoy平面投影为二维图形,记录为c组图形并保存为c.drw文件;
步骤二、编写并调用solidworks数据处理宏命令,分别对a.drw文件、b.drw文件和c.drw文件中的二维图形进行处理,得到组成管线的各段管道、弯头和阀门的元件信息,然后新建excel表格,命名为初始元件信息表,再将从a.drw文件得到的各段管道、弯头和阀门的元件信息存储到初始元件信息表的sheet1中,从b.drw文件中得到的各段管道、弯头和阀门的元件信息存储到初始元件信息表的sheet2中,从c.drw文件中得到的各段管道、弯头和阀门的元件信息存储到初始元件信息表的sheet3中;最后,新建excel表格,命名为管线信息表,分类整理初始元件信息表中sheet1、sheet2和sheet3中所有管道、弯头和阀门元件,将所有管道数据保存在管线信息表的sheet1中,将所有弯头数据保存在管线信息表的sheet2中,将所有阀门数据保存在管线信息表的sheet3中,对比初始元件信息表sheet1、sheet2、sheet3中各段管道和弯头的中轴线的起点坐标和终点坐标信息以及阀门前后两端的孔径的中心位置的起始点坐标和终点坐标,将各段管道、弯头和阀门分别在yoz平面、xoz平面以及xoy平面的二维坐标转化为在e3d中模型坐标系下的真实三维起点坐标和终点坐标,更新到管线信息表的该元件的坐标信息,得到完整的各段管道和弯头的尺寸参数信息和坐标信息以及阀门的类型信息和坐标信息;
步骤三、使用solidworks新建并调用三维建模宏命令,完成对第i段管道的建模,保存第i段管道模型且以管道编号命名;完成对弯头wij的建模,保存弯头模型且以弯头编号命名;建立以长方体表示的阀门三维模型,保存阀门模型,且以阀门编号命名;
步骤四、比较spoolgen中管线元件库中的各段管道和弯头的结构形式与solidworks中生成的各段管道和弯头的三维模型的不同,根据spoolgen中管线元件库中的各段管道和弯头的结构形式对solidworks中管线的各段管道和弯头的三维模型进行修改,使各段管道和弯头的三维模型尺寸与spoolgen中管线元件库中相应的元件尺寸一致并将修改后的文件保存成spoolgen可识别格式三维模型文件,然后将文件导入spoolgen;
步骤五、在spoolgen中对管线模型进行拼接,使各三维模型文件连接成一个整体,具体步骤如下:
第一步、用spoolgen软件读取管线信息表中编号为l1的第一段管道的三维模型文件,对第一段管道的三维模型进行平移和旋转,使第一段管道的中轴线在spoolgen坐标系下的起点坐标和终点坐标与管线信息表中记录的第一段管道的中轴线的起点坐标和终点坐标一致,过第一段管道的中轴线起点且与第一段管道中轴线垂直的平面与spoolgen坐标系下的xoy平面重合;
第二步、检索管线信息表中各元件的起始点坐标,找到与上一步中编号为l1的三维模型的中轴线的终点坐标相同的元件的三维模型,对检索到的元件进行平移、旋转,使该检索到的元件的三维模型的起点坐标与上一步编号为l1的三维模型的中轴线的终点坐标重合,并且使过该检索到的元件的三维模型的起点与该三维模型中轴线垂直的平面和过上一步编号为l1的三维模型的中轴线的终点坐标且与编号为l1的三维模型的中轴线垂直所确定的平面重合,完成两个元件的拼接;
第三步、重复第二步操作,直到excel表中记录的所有元件的三维模型拼接完成;
步骤六、在spoolgen软件的元件库中找到与管线信息表中记录的阀门相同的阀门类元件,在指定位置替换掉相应的立方体;
步骤七、在spoolgen中输出标准的iso图,使得e3d软件中的三维模型得到spoolegen格式下的标准iso图。
2.根据权利要求1所述的基于管线三维模型的数据转化方法,其特征在于:所述的分别对a.drw文件、b.drw文件和c.drw文件中的二维图形进行处理的具体方法如下;
第一步,读取a.drw文件;
第二步,将a组二维图形中的管线以弯头和阀门为节点进行分段处理得到组成管线的各段管道,然后从左到右分别对每段管道进行编号,记为li,测量第i段管道的尺寸参数信息、坐标信息,将各段管道的尺寸参数信息和坐标信息分别记入对应的编号li;
第三步、给弯头编号,记为wij,其中i、j分别为任意一个弯头连接的两段管道的编号,记录弯头的坐标信息和尺寸参数信息;
第四步、测量并记录阀门的坐标信息,给阀门编号,记为mij,其中i、j为通过阀门连接的两段管道的编号,将阀门的类型、拉力、材料、连接形式信息分别记入对应的编号mij。
3.根据权利要求1或者2所述的基于管线三维模型的数据转化方法,其特征在于:所述的步骤三的具体方法如下:
第一步,调用execel文件处理api,打开管线信息表,读取管线信息表中第i段管道信息;
第二步,调用solidwoks三维草图命令,按读取的管道信息绘制管道中轴线草图作为第一张草图,在管道起始点位置绘制管道截面图形作为第二张草图;
第三步,调用solidworks扫描命令,扫描路径选择第一张草图,截面形状选择第二张草图,完成对第i段管道的建模,保存模型且以管道编号命名;
第四步、采用与第一步相同的方法读取管线信息表中弯头wij信息,再采用与第二步相同的方法绘制弯头中轴线和弯头截面图形,分别作为第一张草图和第二张草图,再采用与第三步相同的方法,完成对弯头wij的建模,保存模型且以弯头编号命名;
第五步、在solidworks中建立以长方体表示的阀门三维模型,保存阀门模型,以阀门编号命名;
建立所述的阀门三维模型的具体过程为:调用拉伸凸台命令,绘制正方形草图,正方形边长等于与阀门相连管道的外径,拉伸长度等于相邻两管道之间距离,保存阀门模型,以阀门编号命名。
技术总结