CN103699746B - 基于数据库的cadds5管系三维设计方法及*** - Google Patents
基于数据库的cadds5管系三维设计方法及*** Download PDFInfo
- Publication number
- CN103699746B CN103699746B CN201310731202.9A CN201310731202A CN103699746B CN 103699746 B CN103699746 B CN 103699746B CN 201310731202 A CN201310731202 A CN 201310731202A CN 103699746 B CN103699746 B CN 103699746B
- Authority
- CN
- China
- Prior art keywords
- data
- java
- file
- cadds5
- cvmac
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于数据库的CADDS5管系三维设计方法及***,涉及三维设计数字化造船领域,该方法包括以下步骤:建立数据库,利用JAVA实现对数据库的访问和对管路、管件和阀件模型数据的存储;建立CVMAC服务和JAVA套接字服务,实现CADDS5和ORACLE数据库之间的通信,将模型数据装载到CADDS5中自动生成模型,以数据方式存储在数据库中;建立以数据库中数据为数据源的管子出图方式,从数据库中装载管件数据,分别生成管子零件图和管子安装图;利用JAVA序列化与反序列化机制,采用文件方式记录管路数据,实现管路数据的返回操作。本发明能提高建模和出图效率,保证图模一致性,缩短设计周期。
Description
技术领域
本发明涉及三维设计数字化造船领域,具体是涉及一种基于数据库的CADDS5管系三维设计方法及***。
背景技术
目前,CADDS5(专业的造船软件)管系三维设计的数据均存储于库文件和模型文件中。现有的基于CADDS5的管系设计***,是依靠CADDS5的建模功能设计管路,其管路数据来源于CADDS5所生成的模型文件,管子库和附件库基本上是一型产品一套库。目前的生成管子零件图模式是将管系模型进行分段,根据需要按单元模块、分段、区域等范围将分段后的管零件***到相应的出图模型,然后在出图模型中***托盘号、管子名、表面处理等属性,最后生成管子零件图。由于管路数据存储在文件中,出图时需按单元、分段或区域重新组织模型,造成维护不便;同时由于CADDS5***没有撤消或返回功能,造成模型修改不便。这种模式严重影响着管路模型构建和出图效率。在按现有方式进行管系三维设计时,对每一型船舶都要求建一套库文件。所建的库文件数量较多,且极易出错,同时会出现重复建库,增加用户对库文件的维护难度和工作量。更重要的是,如果某个管路模型损坏,则其包含的所有管路数据均丢失,只能重新构建模型,不仅工作量巨大,耗费时间很长,而且还要投入大量的人力、物力、财力。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种基于数据库的CADDS5管系三维设计方法及***,能够实现对管系三维模型数据的数据库存储和以数据库中数据为数据源的建模和出图方式,有效提高建模和出图效率,保证图模一致性,缩短设计周期,提升三维设计数字化造船技术水平。
本发明提供一种基于数据库的CADDS5管系三维设计方法,包括以下步骤:
A、在CADDS5三维设计平台,对CADDS5提供的管路设计模块进行调整和优化,建立基于JAVA的数据编辑程序,为用户提供友好界面和可视化的管路、管件和阀件数据编辑功能;在ORACLE数据库中建立后台产品数据库,利用JAVA程序实现对数据库的访问和对管路、管件和阀件模型数据的存储;
B、分别建立CVMAC服务和JAVA套接字服务,通过CVMAC程序调用SHELL脚本,在SHELL脚本中实现与JAVA套接字的通讯;采取PERL脚本作为与JAVA服务通讯的脚本语言,实现CVMAC程序向JAVA程序的消息传递;通过消息文件方式实现JAVA程序向CVMAC程序的消息传递:JAVA程序将通讯字典中定义的消息关键字和数据文件写入临时目录,由CVMAC程序定时扫描消息文件,并根据得到的消息关键字进行相关处理;最终实现数据在CADDS5和ORACLE数据库之间的相互传递,将数据库中的模型数据装载到CADDS5中自动生成模型,自动生成的模型用于设计修改、可视化浏览、干涉检查和出图,将CADDS5中的模型以数据方式存储在数据库中;
C、建立以数据库中数据为数据源的管子出图方式,从数据库中装载管件数据,分别生成管子零件图和管子安装图;利用JAVA序列化与反序列化机制,采用文件方式记录管路数据,实现管路数据的返回操作。
在上述技术方案的基础上,步骤B中所述实现CVMAC程序向JAVA程序的消息传递的流程如下:
步骤101、建立CVMAC服务:应用CADDS5提供的CVMAC语言编制CVMAC程序,实现生成消息关键字及消息参数、调用PERL脚本、定时扫描通讯文件的功能;在CADDS5中运行CVMAC程序,启动CVMAC服务;
步骤102、利用JAVA套接字编程机制,建立JAVA套接字服务;
步骤103、建立PERL脚本文件:在用户临时目录下的文件夹中新建用于临时存放用户端口号的端口设置文件;在设定的公共路径下新建用于连接JAVA套接字服务的文件,并对该文件添加可执行权限;以PERL语言格式编写此连接JAVA套接字服务的文件,作为PERL脚本文件,建立CVMAC服务与JAVA套接字服务的通信连接;
步骤104、建立消息通讯字典,所述消息通讯字典用于描述CVMAC服务向JAVA服务发送消息时,所采用的关键字代表JAVA程序具有的功能;
步骤105、定义消息格式:CVMAC程序通过PERL脚本向JAVA套接字服务发送消息关键字时遵循以下消息格式:连接JAVA套接字服务的文件的名称<消息关键字>,<工程号>[<管路号>,<其它参数>…]。
在上述技术方案的基础上,步骤102的所述JAVA套接字服务中,采用用户工号的后四位为启动JAVA套接字服务的端口号。
在上述技术方案的基础上,步骤B中所述通过消息文件方式实现JAVA程序向CVMAC程序的消息传递的流程如下:
步骤201、建立消息通讯文本:在用户临时目录下的文件夹中建立用于Java程序向CVMAC程序发送消息的文本文件;
步骤202、建立消息通讯字典,所述消息通讯字典用于描述JAVA服务向CVMAC服务发送消息时,所采用的关键字代表CVMAC程序具有的功能;
步骤203、定义消息格式:在用户临时目录下的文件夹中建立用于Java程序向CVMAC程序发送消息的文本文件;JAVA程序向CVMAC程序发送消息时,在所述文本文件中写入消息关键字,并在文本文件的每行结尾处加上回车换行符;
步骤204、生成数据文件:JAVA程序在向CVMAC程序发送消息前,在用户临时目录下的文件夹中自动生成用于临时存放消息的文本文件;在文本文件的每行结尾处加入回车换行符,并在最后一行写入结束符。
在上述技术方案的基础上,步骤C中所述实现管路数据的返回操作的流程如下:
步骤301、设计一个JAVA对象与本地文件交互操作,提供序列化和反序列化功能,通过序列化方式将数据分解成字节流,以便存储在文件中;通过反序列化方式以字节流方式读取文件,并重构对象;
步骤302、***在真正修改数据库中的管路数据前,实现以文件方式记录管路数据,管路数据的记录文件基于JAVA对象序列化技术实现,将待修改的管路数据保存在文件中,以修改时间标志每次所生成的文件名,在进行返回操作时从相应文件中读取对应的管路数据;生成的记录文件需要有一定的命名规则,命名规则为:时间_操作描述_数据类型_管路名_用户名;
步骤303、利用JAVA对象的反序列化实现管路数据的返回操作:在用户执行返回时,***从记录文件目录中找到最近的文件并解析,得到先前的管路数据,在CADDS5中生成先前的管路模型。
在上述技术方案的基础上,所述实现管路数据的返回操作包括三种应用场景:
a、简单返回:无论上一步操作是什么,仅将最近一次操作的数据还原;
b、根据管路返回:根据用户指定的管路号,将最近一次管路修改的数据还原;
c、自定义返回:将最近的操作过程按时间倒排序以列表方式显示给用户,让用户选定要还原的操作。
在上述技术方案的基础上,所述简单返回的应用场景如下:设计人员点击CADDS5中定义的返回菜单,CVMAC程序通过PERL脚本用于连接JAVA套接字服务的文件向JAVA套接字服务发出“自动返回,<工程号>”消息,JAVA套接字服务收到返回指令后,到对象备份文件目录中找到最近一次备份的数据文件,根据文件名的规则得到该备份文件是针对管路数据还是管路属性的数据类型;根据数据类型以对话框的形式提示用户“是否要执行XXX时间的XXX类型的数据返回操作?”,该对话框提供四个操作:预览、确定返回、其它备份、取消,其中:“预览”是将备份的JAVA数据对象形成CADDS5所需的数据文件通过向CADDS5发出更新模型指令实现模型的预览,“确定返回”是将备份的JAVA数据对象还原到数据库,“其它备份”是列出最近10次操作的数据备份,供用户有针对性的返回;在用户“确定返回”之前,***再次对当前的数据状态进行一次备份。
在上述技术方案的基础上,所述根据管路返回的应用场景如下:CVMAC程序通过用于连接JAVA套接字服务的文件向JAVA套接字服务发出的消息为“返回数据类型,<工程号>,<管路名>”,JAVA套接字服务收到返回数据类型指令后,到对象备份文件目录中找到最近一次备份该数据类型的数据文件,***解析该对象备份文件,以对话框的形式提示用户“是否要执行XXX时间的XXX类型的数据返回操作?”,该对话框提供四个操作:预览、确定返回、其它备份、取消,其中:“预览”是将备份的JAVA数据对象形成CADDS5所需的数据文件通过向CADDS5发出更新模型指令实现模型的预览,“确定返回”是将备份的JAVA数据对象还原到数据库,“其它备份”是列出最近10次操作的数据备份,供用户有针对性的返回;在用户“确定返回”之前,***再次对当前的数据状态进行一次备份。
在上述技术方案的基础上,所述自定义返回的应用场景如下:将最近N次操作过程按时间倒排序以列表方式显示给用户,N为正整数,让用户选定要还原的操作,CVMAC程序通过用于连接JAVA套接字服务的文件向JAVA套接字服务发出的消息为“返回,<工程号>”且提供被返回的列表;JAVA套接字服务收到返回指令后,到对象备份文件目录中找到所有的数据文件,根据用户在返回列表界面上的选择来确定要解析的对象备份文件,再以对话框的形式提示用户“是否要执行XXX…返回操作?”,该对话框提供三个操作:预览、确定返回、取消,其中:“预览”是将备份的JAVA数据对象形成CADDS5所需的数据文件通过向CADDS5发出更新模型指令实现模型的预览,“确定返回”是将备份的JAVA数据对象还原到数据库;在用户“确定返回”之前,***再次对当前的数据状态进行一次备份。
本发明还提供一种用于实现上述方法的基于数据库的CADDS5管系三维设计***,包括表示层、业务逻辑层、***服务层、数据访问层和数据库层,其中:
表示层,用于:将数据呈现给用户或处理用户输入的应用程序界面,实现时以界面为单位划分成不同的类;
业务逻辑层,用于:作为实现***具体功能的核心层,业务逻辑层从表示层和***服务层获取用户请求和***服务,依照业务流程进行处理,并将结果返回至表示层或通过***服务层和数据访问层写入数据库;
***服务层,用于:为***提供JAVA套接字服务和CVMAC服务,以及完成JAVA套接字服务与CVMAC服务之间的消息通讯;
数据访问层,用于:执行从数据库获取或写入数据的任务,并向业务逻辑层提供所需数据,数据访问层采用数据库操作的形式实现;
数据库层,用于:存放***的表、存储过程和数据库对象,提供对组织数据的基本存储功能。
与现有技术相比,本发明的优点如下:
(1)本发明改变原有的一型产品一套库的建库方式,建立结构简单、参数化的CADDS5基础库文件,将管系模型数据存储于数据库,基于数据库进行CADDS5管系三维设计,明显简化建库的工作,实现一次建库永久使用。
(2)本发明改变原有模型数据只存储于文件中的封闭方式,实现对管系模型数据的数据库存储,CADDS5提供的CVMAC工具没有直接操作ORACLE数据库的接口,但能够执行操作***脚本,本发明利用JAVA和PERL脚本实现CADDS5与ORACLE数据库之间的数据实时传递,使得数据库中的模型数据在装载到CADDS5后能自动构建模型,且CADDS5中的模型又能以数据方式及时地存储在数据库中,能够有效提高建模效率。模型数据存储于数据库后,不仅能够提高管系数据的共享率和利用率,而且还能为与其它***集成提供数据源。
(3)本发明从数据库中读取数据,在CADDS5中自动构建模型,实现以数据库中数据为数据源的管子出图模式,本发明的生成管子零件图模式为:在管路模型创建后,对管路进行分段,并***各种生产管理属性,并将这些信息写入数据库。在出图时,从数据库中将管零件按单元模块、分段、区域等范围分别装入到CADDS5,进而生成管子零件图和安装图。本发明已应用到轻护、某后续艇、海洋工作船等多型船舶的管系三维设计和出图中,能够有效提高设计人员的工作效率,缩短设计周期,构建一个管路模型的平均时间能够降低25%,管子的出图时间能够降低30%,保证图模的一致性,每条船舶产品的管系生产设计周期缩短至少11天以上。以平均每型船舶每条产品设计共55套图纸为例,针对一套图纸,所需平均建模时间由原来的6人天缩短为现在的3人天,即缩短了3人天/套;所需平均出图时间由原来的7人天缩短为现在的4人天,即缩短了3人天/套。以管系专业现有设计人员30人计算,针对每个产品,所缩短的设计周期为:(3人天/套+3人天/套)×55套/30人=11天,所取得的直接经济效益为:11天×30人×8小时/天×50元/小时=13.2万元。
(4)本发明充分利用JAVA序列化和反序列化机制,采用文件方式记录管路数据,实现CADDS5中管路模型的返回操作,用户在CADDS5中对修改后的管路模型执行返回或撤消操作后,***能回到该管路模型修改前状态或某一次的修改状态,弥补原有CADDS5中没有返回功能的不足,丰富***功能。
(5)本发明中的设计进度监控依靠后台的监控***实现,监控每人各个管路的修改状况和当天的工作进度。后台监控***采用J2EE架构,以MVC(Model-View-Controller,模型-视图-控制器)为开发框架,采用B/S(Browser/Server,浏览器-服务器)方式实现。监控***提供的辅助功能有:管路设计进度统计、人员工作量统计、出图状况统计、管线\管路\***数据查看、阀件使用状况统计、管子参数查询等。通过建立后台监控机制,能够增强管路设计进度监管效能,提升精细化管理水平。
附图说明
图1是本发明实施例中基于数据库的CADDS5管系三维设计***的结构框图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
本发明实施例提供一种基于数据库的CADDS5管系三维设计方法,包括以下步骤:
A、在CADDS5三维设计平台,对CADDS5提供的管路设计模块进行调整和优化,建立基于JAVA的数据编辑程序,为用户提供友好界面和可视化的管路、管件和阀件等数据编辑功能;在ORACLE数据库中建立后台产品数据库,利用JAVA程序实现对数据库的访问和对管路、管件和阀件等模型数据的存储;
B、分别建立CVMAC服务和JAVA套接字服务,通过CVMAC程序调用SHELL脚本,在SHELL脚本中实现与JAVA套接字的通讯;由于PERL语言中提供的套接字函数方便实用,因此采取PERL脚本作为与JAVA服务通讯的脚本语言,实现CVMAC程序向JAVA程序的消息传递;通过消息文件方式实现JAVA程序向CVMAC程序的消息传递:JAVA程序将通讯字典中定义的消息关键字和数据文件写入临时目录,由CVMAC程序定时扫描消息文件,并根据得到的消息关键字进行相关处理;最终实现数据在CADDS5和ORACLE数据库之间的相互传递,既可将数据库中的模型数据装载到CADDS5中自动生成模型,这些自动生成的模型用于设计修改、可视化浏览、干涉检查和出图,又可将CADDS5中的模型以数据方式及时、准确地存储在数据库中;
C、建立以数据库中数据为数据源的管子出图方式,从数据库中装载管件数据,分别生成管子零件图和管子安装图;利用JAVA序列化与反序列化机制,采用文件方式记录管路数据,实现管路数据的返回操作,提高管路建模效率。
CADDS5提供的CVMAC工具没有直接操作ORACLE数据库的接口,但可以执行操作***脚本,而JAVA具有与平台无关性和操作数据库便利等优点,所以能够通过JAVA技术在CADDS5和ORACLE数据库之间建立桥梁,实现两者间的实时存取。JAVA是可以操作数据库的,但又不能直接与CVMAC通讯,所以必须建立CVMAC程序和JAVA程序间的相互通讯。而CVMAC程序如何向JAVA程序发送消息,JAVA程序又如何向CVMAC程序发送消息是步骤B的关键环节。
步骤B中实现CVMAC程序向JAVA程序的消息传递的流程如下:
步骤101、建立CVMAC服务:应用CADDS5提供的CVMAC语言编制CVMAC程序,实现生成消息关键字及消息参数、调用PERL脚本、定时(间隔0.1秒)扫描通讯文件的功能;在CADDS5中运行CVMAC程序,启动CVMAC服务;
步骤102、建立JAVA套接字服务:利用现有的JAVA套接字编程机制,建立JAVA套接字服务,在该JAVA套接字服务中,为防止端口号重复,采用用户工号的后四位为启动JAVA套接字服务的端口号;
步骤103、建立PERL脚本文件:在用户临时目录下的文件夹中新建用于临时存放用户端口号的端口设置文件;在设定的公共路径下新建用于连接JAVA套接字服务的文件,并对该文件添加可执行权限;以PERL语言格式编写此连接JAVA套接字服务的文件,作为PERL脚本文件,建立CVMAC服务与JAVA套接字服务的通信连接;
步骤104、建立消息通讯字典,参见表1所示,该消息通讯字典用于描述CVMAC服务向JAVA服务发送消息时,所采用的关键字代表JAVA程序具有的功能;此消息通讯字典主要向程序开发人员提供参考信息;
表1、用于描述CVMAC服务向JAVA服务发送消息的消息通讯字典
步骤105、定义消息格式:
CVMAC程序通过PERL脚本向JAVA套接字服务发送消息关键字时需要遵循以下消息格式:连接JAVA套接字服务的文件的名称<消息关键字>,<工程号>[<管路号>,<其它参数>…],例如:在CADDS5中需要修改管路时,CADDS5中执行的调用命令是:connsocketmodify_pipe,a001k,BB001-CY01,含义是通过connsocket文件连接JAVA服务,执行modify_pipe命令,该命令的参数是工程号a001k、需要修改的管路号是BB001-CY01。
步骤B中通过消息文件方式实现JAVA程序向CVMAC程序的消息传递的流程如下:
步骤201、建立消息通讯文本:在用户临时目录下的文件夹中建立用于Java程序向CVMAC程序发送消息的文本文件;
步骤202、建立消息通讯字典,参见表2所示,该消息通讯字典用于描述JAVA服务向CVMAC服务发送消息时,所采用的关键字代表CVMAC程序具有的功能,此消息通讯字典主要向程序开发人员提供参考信息;
表2、用于描述JAVA服务向CVMAC服务发送消息的消息通讯字典
步骤203、定义消息格式:在用户临时目录下的文件夹中建立用于Java程序向CVMAC程序发送消息的文本文件;JAVA程序向CVMAC程序发送消息时,在该文本文件中写入消息关键字,并在该文本文件的每行结尾处加上回车换行符“\n”;
步骤204、生成数据文件:JAVA程序在向CVMAC程序发送消息前,应在用户临时目录下的文件夹中自动生成用于临时存放消息的文本文件;在文本文件的每行结尾处加入回车换行符,并在最后一行写入结束符“END”,以示文件结束。
设计人员在管系三维设计过程中,操作最频繁的就是修改管路数据。要实现管路数据的返回操作,就必须使***在真正修改数据库中数据前,增加生成管路数据文件操作,实现在修改管路节点数据前对数据库中当前管路数据状态以文件方式进行记录。
步骤C中实现管路数据的返回操作的流程如下:
步骤301、设计一个JAVA对象与本地文件交互操作,提供序列化和反序列化功能,通过序列化方式将数据分解成字节流,以便存储在文件中;通过反序列化方式以字节流方式读取文件,并重构对象;
步骤302、***在真正修改数据库中的管路数据前,实现以文件方式记录管路数据,管路数据的记录文件基于JAVA对象序列化技术实现,将待修改的管路数据保存在文件中,以修改时间标志每次所生成的文件名,在进行返回操作时从相应文件中读取对应的管路数据;生成的记录文件需要有一定的命名规则,参见表3所示,命名规则为:时间_操作描述_数据类型_管路名_用户名,格式说明如下:
表3、记录文件的命名规则表
时间 | 年月日小时分秒 |
操作描述 | 修改操作的描述(修改节点、***节点、删除XX等) |
数据类型 | 管路数据、管路属性还是管件数据 |
管路名 | 具体的管路名称 |
用户名 | 当前操作者 |
例如:20121117171159_修改节点_SLDATA_BB001-L02_guany表示:2012年11月17号17点11分59秒用户执行修改节点操作时产生的管路数据类型的管路号为BB001-L02的数据备份文件,当前操作者是guany。
步骤303、利用JAVA对象的反序列化实现管路数据的返回操作:在用户执行返回时,***从记录文件目录中找到最近的文件并解析,得到先前的管路数据,从而在CADDS5中生成先前的管路模型。
参见表4所示,管路数据的返回操作有以下三种应用场景:
a、简单返回:无论上一步操作是什么,仅将最近一次操作的数据还原;
b、根据管路返回:根据用户指定的管路号,将最近一次管路修改的数据还原;
c、自定义返回:将最近的操作过程按时间倒排序以列表方式显示给用户,让用户选定要还原的操作。
表4、管路数据的返回操作的三种应用场景
下面分别对三种应用场景进行详细说明。
a、简单返回的应用场景如下:
设计人员点击CADDS5中定义的返回菜单,CVMAC程序通过PERL脚本用于连接JAVA套接字服务的文件向JAVA套接字服务发出“自动返回,<工程号>”消息,JAVA套接字服务收到返回指令后,到对象备份文件目录中找到最近一次备份的数据文件,根据文件名的规则得到该备份文件是针对什么数据类型的(管路数据还是管路属性);根据数据类型以对话框的形式提示用户“是否要执行XXX时间的XXX类型的数据返回操作?”,该对话框提供四个操作:预览、确定返回、其它备份、取消,其中:“预览”是将备份的JAVA数据对象形成CADDS5所需的数据文件通过向CADDS5发出更新模型指令实现模型的预览,“确定返回”是将备份的JAVA数据对象还原到数据库,“其它备份”是列出最近10次操作的数据备份,供用户有针对性的返回;为确保数据安全,在用户“确定返回”之前,***会再次对当前的数据状态进行一次备份。
b、根据管路返回的应用场景如下:
基本思路与简单返回类似,只是CVMAC程序通过用于连接JAVA套接字服务的文件向JAVA套接字服务发出的消息变为“返回数据类型,<工程号>,<管路名>”,JAVA套接字服务收到返回数据类型指令后,到对象备份文件目录中找到最近一次备份该数据类型的数据文件,***解析该对象备份文件,以对话框的形式提示用户“是否要执行XXX时间的XXX类型的数据返回操作?”,该对话框提供四个操作:预览、确定返回、其它备份、取消,其中:“预览”是将备份的JAVA数据对象形成CADDS5所需的数据文件通过向CADDS5发出更新模型指令实现模型的预览,“确定返回”是将备份的JAVA数据对象还原到数据库,“其它备份”是列出最近10次操作的数据备份,供用户有针对性的返回;为确保数据安全,在用户“确定返回”之前,***会再次对当前的数据状态进行一次备份。
c、自定义返回的应用场景如下:
将最近N次操作过程按时间顺序(倒排序)以列表方式显示给用户,N为正整数,让用户自己选定要还原的操作,其基本思路与简单返回类似,只是CVMAC程序通过用于连接JAVA套接字服务的文件向JAVA套接字服务发出的消息变为“返回,<工程号>”且提供可被返回的列表。JAVA套接字服务收到返回指令后,到对象备份文件目录中找到所有的数据文件(暂定前10次),根据用户在返回列表界面上的选择来确定要解析的对象备份文件,再以对话框的形式提示用户“是否要执行XXX…返回操作?”,该对话框提供三个操作:预览、确定返回、取消,其中:“预览”是将备份的JAVA数据对象形成CADDS5所需的数据文件通过向CADDS5发出更新模型指令实现模型的预览,“确定返回”是将备份的JAVA数据对象还原到数据库;为确保数据安全,在用户“确定返回”之前,***会再次对当前的数据状态进行一次备份。可被返回的次数限定在10次,此限定在程序代码包下的属性配置文件中定义,如果需要增加次数修改此属性配置文件即可。
参见图1所示,本发明实施例还提供一种用于实现上述方法的基于数据库的CADDS5管系三维设计***,包括表示层、业务逻辑层、***服务层、数据访问层和数据库层,其中:
表示层,用于:将数据呈现给用户或处理用户输入的应用程序界面,在实现时一般以界面为单位划分成不同的类;
业务逻辑层,用于:作为实现***具体功能的核心层,业务逻辑层从表示层和***服务层获取用户请求和***服务,依照业务流程进行处理,并将结果返回至表示层或通过***服务层和数据访问层写入数据库;
***服务层,用于:为***提供JAVA套接字服务和CVMAC服务,以及完成JAVA套接字服务与CVMAC服务之间的消息通讯;
数据访问层,用于:执行从数据库获取或写入数据的任务,并向业务逻辑层提供所需数据,数据访问层采用数据库操作类的形式实现;
数据库层,用于:存放***的表、存储过程和数据库对象,提供对组织数据的基本存储功能。
本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。
说明书中未详细描述的内容为本领域技术人员公知的现有技术。
Claims (10)
1.一种基于数据库的CADDS5管系三维设计方法,其特征在于,包括以下步骤:
A、在CADDS5三维设计平台,对CADDS5提供的管路设计模块进行调整和优化,建立基于JAVA的数据编辑程序,为用户提供友好界面和可视化的管路、管件和阀件数据编辑功能;在ORACLE数据库中建立后台产品数据库,利用JAVA程序实现对数据库的访问和对管路、管件和阀件模型数据的存储;
B、分别建立CVMAC服务和JAVA套接字服务,通过CVMAC程序调用SHELL脚本,在SHELL脚本中实现与JAVA套接字的通讯;采取PERL脚本作为与JAVA服务通讯的脚本语言,实现CVMAC程序向JAVA程序的消息传递;通过消息文件方式实现JAVA程序向CVMAC程序的消息传递:JAVA程序将通讯字典中定义的消息关键字和数据文件写入临时目录,由CVMAC程序定时扫描消息文件,并根据得到的消息关键字进行相关处理;最终实现数据在CADDS5和ORACLE数据库之间的相互传递,将数据库中的模型数据装载到CADDS5中自动生成模型,自动生成的模型用于设计修改、可视化浏览、干涉检查和出图,将CADDS5中的模型以数据方式存储在数据库中;
C、建立以数据库中数据为数据源的管子出图方式,从数据库中装载管件数据,分别生成管子零件图和管子安装图;利用JAVA序列化与反序列化机制,采用文件方式记录管路数据,实现管路数据的返回操作。
2.如权利要求1所述的基于数据库的CADDS5管系三维设计方法,其特征在于:步骤B中所述实现CVMAC程序向JAVA程序的消息传递的流程如下:
步骤101、建立CVMAC服务:应用CADDS5提供的CVMAC语言编制CVMAC程序,实现生成消息关键字及消息参数、调用PERL脚本、定时扫描通讯文件的功能;在CADDS5中运行CVMAC程序,启动CVMAC服务;
步骤102、利用JAVA套接字编程机制,建立JAVA套接字服务;
步骤103、建立PERL脚本文件:在用户临时目录下的文件夹中新建用于临时存放用户端口号的端口设置文件;在设定的公共路径下新建用于连接JAVA套接字服务的文件,并对该文件添加可执行权限;以PERL语言格式编写此连接JAVA套接字服务的文件,作为PERL脚本文件,建立CVMAC服务与JAVA套接字服务的通信连接;
步骤104、建立消息通讯字典,所述消息通讯字典用于描述CVMAC服务向JAVA服务发送消息时,所采用的关键字代表JAVA程序具有的功能;
步骤105、定义消息格式:CVMAC程序通过PERL脚本向JAVA套接字服务发送消息关键字时遵循以下消息格式:连接JAVA套接字服务的文件的名称<消息关键字>,<工程号>[<管路号>,<其它参数>]。
3.如权利要求2所述的基于数据库的CADDS5管系三维设计方法,其特征在于:步骤102的所述JAVA套接字服务中,采用用户工号的后四位为启动JAVA套接字服务的端口号。
4.如权利要求1所述的基于数据库的CADDS5管系三维设计方法,其特征在于:步骤B中所述通过消息文件方式实现JAVA程序向CVMAC程序的消息传递的流程如下:
步骤201、建立消息通讯文本:在用户临时目录下的文件夹中建立用于Java程序向CVMAC程序发送消息的文本文件;
步骤202、建立消息通讯字典,所述消息通讯字典用于描述JAVA服务向CVMAC服务发送消息时,所采用的关键字代表CVMAC程序具有的功能;
步骤203、定义消息格式:在用户临时目录下的文件夹中建立用于Java程序向CVMAC程序发送消息的文本文件;JAVA程序向CVMAC程序发送消息时,在所述文本文件中写入消息关键字,并在文本文件的每行结尾处加上回车换行符;
步骤204、生成数据文件:JAVA程序在向CVMAC程序发送消息前,在用户临时目录下的文件夹中自动生成用于临时存放消息的文本文件;在文本文件的每行结尾处加入回车换行符,并在最后一行写入结束符。
5.如权利要求1至4中任一项所述的基于数据库的CADDS5管系三维设计方法,其特征在于:步骤C中所述实现管路数据的返回操作的流程如下:
步骤301、设计一个JAVA对象与本地文件交互操作,提供序列化和反序列化功能,通过序列化方式将数据分解成字节流,以便存储在文件中;通过反序列化方式以字节流方式读取文件,并重构对象;
步骤302、***在真正修改数据库中的管路数据前,实现以文件方式记录管路数据,管路数据的记录文件基于JAVA对象序列化技术实现,将待修改的管路数据保存在文件中,以修改时间标志每次所生成的文件名,在进行返回操作时从相应文件中读取对应的管路数据;生成的记录文件需要有一定的命名规则,命名规则为:时间_操作描述_数据类型_管路名_用户名;
步骤303、利用JAVA对象的反序列化实现管路数据的返回操作:在用户执行返回时,***从记录文件目录中找到最近的文件并解析,得到先前的管路数据,在CADDS5中生成先前的管路模型。
6.如权利要求5所述的基于数据库的CADDS5管系三维设计方法,其特征在于:所述实现管路数据的返回操作包括三种应用场景:
a、简单返回:无论上一步操作是什么,仅将最近一次操作的数据还原;
b、根据管路返回:根据用户指定的管路号,将最近一次管路修改的数据还原;
c、自定义返回:将最近的操作过程按时间倒排序以列表方式显示给用户,让用户选定要还原的操作。
7.如权利要求6所述的基于数据库的CADDS5管系三维设计方法,其特征在于:所述简单返回的应用场景如下:设计人员点击CADDS5中定义的返回菜单,CVMAC程序通过PERL脚本用于连接JAVA套接字服务的文件向JAVA套接字服务发出“自动返回,<工程号>”消息,JAVA套接字服务收到返回指令后,到对象备份文件目录中找到最近一次备份的数据文件,根据文件名的规则得到该备份文件是针对管路数据还是管路属性的数据类型;根据数据类型以对话框的形式提示用户“是否要执行XXX时间的XXX类型的数据返回操作?”,该对话框提供四个操作:预览、确定返回、其它备份、取消,其中:“预览”是将备份的JAVA数据对象形成CADDS5所需的数据文件通过向CADDS5发出更新模型指令实现模型的预览,“确定返回”是将备份的JAVA数据对象还原到数据库,“其它备份”是列出最近10次操作的数据备份,供用户有针对性的返回;在用户“确定返回”之前,***再次对当前的数据状态进行一次备份。
8.如权利要求6所述的基于数据库的CADDS5管系三维设计方法,其特征在于:所述根据管路返回的应用场景如下:CVMAC程序通过用于连接JAVA套接字服务的文件向JAVA套接字服务发出的消息为“返回数据类型,<工程号>,<管路名>”,JAVA套接字服务收到返回数据类型指令后,到对象备份文件目录中找到最近一次备份该数据类型的数据文件,***解析该对象备份文件,以对话框的形式提示用户“是否要执行XXX时间的XXX类型的数据返回操作?”,该对话框提供四个操作:预览、确定返回、其它备份、取消,其中:“预览”是将备份的JAVA数据对象形成CADDS5所需的数据文件通过向CADDS5发出更新模型指令实现模型的预览,“确定返回”是将备份的JAVA数据对象还原到数据库,“其它备份”是列出最近10次操作的数据备份,供用户有针对性的返回;在用户“确定返回”之前,***再次对当前的数据状态进行一次备份。
9.如权利要求6所述的基于数据库的CADDS5管系三维设计方法,其特征在于:所述自定义返回的应用场景如下:将最近N次操作过程按时间倒排序以列表方式显示给用户,N为正整数,让用户选定要还原的操作,CVMAC程序通过用于连接JAVA套接字服务的文件向JAVA套接字服务发出的消息为“返回,<工程号>”且提供被返回的列表;JAVA套接字服务收到返回指令后,到对象备份文件目录中找到所有的数据文件,根据用户在返回列表界面上的选择来确定要解析的对象备份文件,再以对话框的形式提示用户“是否要执行XXX返回操作?”,该对话框提供三个操作:预览、确定返回、取消,其中:“预览”是将备份的JAVA数据对象形成CADDS5所需的数据文件通过向CADDS5发出更新模型指令实现模型的预览,“确定返回”是将备份的JAVA数据对象还原到数据库;在用户“确定返回”之前,***再次对当前的数据状态进行一次备份。
10.用于实现权利要求1至9中任一项所述方法的基于数据库的CADDS5管系三维设计***,其特征在于:包括表示层、业务逻辑层、***服务层、数据访问层和数据库层,其中:
表示层,用于:将数据呈现给用户或处理用户输入的应用程序界面,实现时以界面为单位划分成不同的类;
业务逻辑层,用于:作为实现***具体功能的核心层,业务逻辑层从表示层和***服务层获取用户请求和***服务,依照业务流程进行处理,并将结果返回至表示层或通过***服务层和数据访问层写入数据库;
***服务层,用于:为***提供JAVA套接字服务和CVMAC服务,以及完成JAVA套接字服务与CVMAC服务之间的消息通讯;
数据访问层,用于:执行从数据库获取或写入数据的任务,并向业务逻辑层提供所需数据,数据访问层采用数据库操作的形式实现;
数据库层,用于:存放***的表、存储过程和数据库对象,提供对组织数据的基本存储功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310731202.9A CN103699746B (zh) | 2013-12-26 | 2013-12-26 | 基于数据库的cadds5管系三维设计方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310731202.9A CN103699746B (zh) | 2013-12-26 | 2013-12-26 | 基于数据库的cadds5管系三维设计方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103699746A CN103699746A (zh) | 2014-04-02 |
CN103699746B true CN103699746B (zh) | 2017-01-04 |
Family
ID=50361273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310731202.9A Active CN103699746B (zh) | 2013-12-26 | 2013-12-26 | 基于数据库的cadds5管系三维设计方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103699746B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699899B (zh) * | 2015-03-09 | 2018-02-09 | 天津大学 | 一种船舶管路路径优化设计方法 |
CN106610871A (zh) * | 2016-12-30 | 2017-05-03 | 郑州云海信息技术有限公司 | 一种云操作***架构 |
CN108733932A (zh) * | 2018-05-24 | 2018-11-02 | 奥克斯空调股份有限公司 | 管路设计方法和装置 |
CN111475887B (zh) * | 2019-09-27 | 2023-07-07 | 中国舰船研究设计中心 | 一种基于三维模型的船舶管路支吊架快速统计及出图方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1629846A (zh) * | 2003-12-15 | 2005-06-22 | 渤海船舶重工有限责任公司 | 民用船舶远程协同设计技术 |
JP2008257510A (ja) * | 2007-04-05 | 2008-10-23 | Toshiba Corp | 設計支援システム、方法及びプログラム |
-
2013
- 2013-12-26 CN CN201310731202.9A patent/CN103699746B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1629846A (zh) * | 2003-12-15 | 2005-06-22 | 渤海船舶重工有限责任公司 | 民用船舶远程协同设计技术 |
JP2008257510A (ja) * | 2007-04-05 | 2008-10-23 | Toshiba Corp | 設計支援システム、方法及びプログラム |
Non-Patent Citations (3)
Title |
---|
CADDS5的本地化开发与船舶产品EPD方法研究;吴轶钢;《信息科技辑》;20020228;I138-644 * |
基于CADDS 5和VB的三维船体结构重量重心及材料统计计算***;陈捷捷;《中 国 舰 船 研 究》;20070831;第2卷(第4期);1-5 * |
基于J2EE和套接字编程的协同CAD开发模式研究;王镜宇1;《沈阳理工大学学报》;20060430;第25卷(第2期);1-5 * |
Also Published As
Publication number | Publication date |
---|---|
CN103699746A (zh) | 2014-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103714129B (zh) | 基于条件规则的动态数据结构和关系的构建装置和构建方法 | |
CN104360859B (zh) | 一种可视化的服务开发方法和*** | |
CN103049251B (zh) | 一种数据库持久层装置及数据库操作方法 | |
CN103383645A (zh) | 代码生成方法及*** | |
CN110221815B (zh) | 一种基于本体的控制软件模型的自动生成方法 | |
CN103699746B (zh) | 基于数据库的cadds5管系三维设计方法及*** | |
CN111124379B (zh) | 页面生成方法、装置、电子设备及存储介质 | |
CN101859303A (zh) | 元数据管理方法及管理*** | |
CN109063362B (zh) | 航电软件接口控制文件设计管理*** | |
CN102023859B (zh) | 面向数字化研制环境的可靠性维修性保障性软件集成方法 | |
CN104748757B (zh) | 一种导航电子地图数据更新方法及装置 | |
WO2024060725A1 (zh) | 一种飞机工装变更方法、装置、设备及存储介质 | |
CN108228762B (zh) | 用于配置主数据库通用模板的方法和*** | |
Le et al. | Domain-driven design using meta-attributes: A DSL-based approach | |
CN103678396B (zh) | 一种基于数据模型的数据备份方法和装置 | |
CN110825718A (zh) | 一种信息***数据架构模型及其构建方法 | |
CN109388812B (zh) | 一种基于云计算的模块化自动出图方法及*** | |
CN112100984A (zh) | 一种由ebom到sbom的数据转换方法及*** | |
CN110716913B (zh) | 一种Kafka与Elasticsearch数据库数据的互相迁移方法 | |
CN106843822A (zh) | 一种执行代码生成方法及设备 | |
CN116029648A (zh) | 基于产品bom结构的关系建模管理方法、装置及*** | |
CN103020162B (zh) | Cc2000模型转换导入d5000***的方法 | |
CN109857390B (zh) | 一种Git仓库文件注解***的注解传递方法 | |
CN103902282A (zh) | Web服务组合到有色Petri网的模型转化方法 | |
CN109684329A (zh) | 一种基于数据中心设备的资源管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: 430060 Zhang Zhidong Road, Wuchang District, Hubei, Wuhan, China, 2 Applicant after: WUCHANG SHIPBUILDING INDUSTRY GROUP CO., LTD. Address before: 430060 Zhang Zhidong Road, Wuchang District, Hubei, Wuhan, China, 2 Applicant before: Wuchang Shipbuilding Industry Co., Ltd. |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: WUCHANG SHIPBUILDING INDUSTRY CO., LTD. TO: WUCHANG SHIPBUILDING INDUSTRY GROUP CO., LTD. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |