一种应用于二维设计软件和三维设计软件的数据交换方法与流程

文档序号:15213218发布日期:2018-08-21 15:30阅读:252来源:国知局

本发明涉及数据交换技术领域,涉及一种应用于二维设计软件和三维设计软件的数据交换方法,具体涉及一种应用于autodeskautocadp&id和avevapdms的数据交换方法。



背景技术:

autodeskautocadp&id是美国autodesk(欧特克)公司开发的一款基于autocad平台,用于创建、修改、管理管道和工艺流程图的设计软件。作为欧特克数字化工厂设计解决方案的重要组成部分,autodeskautocadp&id能够大幅提高工厂设计人员的工作效率,轻松应对愈加复杂的工厂设计问题。欧特克为工程设计部门提供了易于使用的二维和三维设计解决方案。

avevapdms是英国aveva公司推出的一款用于工厂设计项目的3d数字模型的布置设计和管理的软件系统。pdms(plantdesignmanagementsystem,工厂三维布置设计管理系统)以所见即所得、网络实时协作、自动实时三维碰撞检查、独立数据结构和开放可扩展的开发环境等特点成为大型、复杂工厂设计项目的首选软件系统。

命名管道是microsoftwindows系统提供的一种进程间通信的方法。命名管道提供一个管道服务器与一个或多个管道客户端之间的进程间通信。命名管道可以是单向的,也可以是双向的。它们支持基于消息的通信,允许多个客户端使用相同的管道名称同时连接服务器进程。命名管道还支持模拟,这使得连接进程可以在远程服务器上使用它们自己的权限。

目前,在工厂设计项目中对不同的设计需求往往需要使用不同的设计软件来完成。例如,可以使用autodeskautocadp&id来进行二维工艺流程图的设计和管理,使用avevapdms来进行三维数字模型的设计和管理,但是autodeskautocadp&id和avevapdms之间无法进行数据比较和协同工作。

这种工作方式会带来如下两方面的问题:

首先,在实际的工厂设计项目运行中,二维设计和三维设计往往是分别进行的。在设计变更、沟通不畅、软件差异和设计人员操作错误等原因的影响下,通过两条路线得到的设计数据会难以避免地产生差异。如果不采取措施,这些差异就会随着项目的推进而逐渐积累增大。

其次,有时在工作过程中设计人员也会有二维设计软件和三维设计软件协同工作的需求,而现有的二维和三维设计软件本身不提供协同工作的功能。

为了解决上述两方面的问题,现有技术亟待设计一种能够满足autocadp&id和avevapdms的数据比较以及协同工作需求的技术方案。



技术实现要素:

本发明所要解决的技术问题是针对现有技术中所存在的上述缺陷,提供一种应用于autodeskautocadp&id和avevapdms的数据交换方法,使得这两款软件之间能够进行实时数据交换,以及进行高效地数据比较和协同工作。

解决本发明技术问题所采用的技术方案是:

本发明提供一种应用于二维设计软件和三维设计软件的数据交换方法,具体用于autodeskautocadp&id和avevapdms的数据交换,其包括如下步骤:

在autodeskautocadp&id中建立p&id服务端进程;

在avevapdms中建立pdms客户端进程;

使p&id服务端初始化;

由pdms客户端进程根据用户操作封装用户消息,并向p&id服务端发送用户消息;

由p&id服务端接收用户消息并判断消息类型,然后根据判定的消息类型执行对应的操作。

可选地,当pdms客户端进程根据用户操作封装用户消息时,如果需要向p&id服务端发送pdms等级库数据,则将pdms等级库数据作为用户消息发送给p&id服务端。

可选地,所述根据判定的消息类型执行对应的操作的步骤具体为:

如果p&id服务端接收到的是需要返回p&id图元数据的用户消息,则向pdms客户端发送通过图元数据访问器得到的p&id图元数据;

如果p&id服务端接收到的是收到pdms等级库数据的用户消息,则解析用户消息中的pdms等级库数据;

如果p&id服务端接收到的是除返回pdms等级库以外的其他不需要返回p&id图元数据的用户消息,则执行其他操作。

可选地,当p&id服务端接收到的是需要返回p&id图元数据的用户消息时,所述数据交换方法还包括如下步骤:

由pdms客户端接收p&id服务端发来的p&id图元数据,并转换成相应的数据类型。

可选地,所述其他操作包括执行p&id服务端清理缓存指令和p&id图纸定位指令。

可选地,所述使p&id服务端初始化的步骤具体为:

使用图元数据访问器从p&id设计项目数据库中读取相应的p&id图元数据,按照设定的最大数量创建命名管道服务端线程实例并设置为等待连接状态,以等待接收用户消息;命名管道服务端线程实例的数量能够定制。

可选地,当pdms客户端进程根据用户操作封装用户消息时,还需要创建命名管道客户端实例并使其与命名管道服务端连接,再向p&id服务端发送用户消息;命名管道客户端实例的数量能够定制。

可选地,所述p&id图元数据包括项目信息、图纸信息、基础数据表、属性设置和未成功读取图纸的提示中的至少一种。

可选地,p&id服务端和pdms客户端分别独立建立,二者的建立顺序无影响。

可选地,所有数据传输的过程中,传输的数据包大小应能够定制。

有益效果:

本发明提供的应用于autodeskautocadp&id和avevapdms的数据交换方法可基于c#语言开发实现,通过调用p&id和pdms提供的接口以及windows命名管道通信技术,能实现p&id和pdms的实时双向数据交换,为二三维设计数据比较和二三维设计软件协同工作提供了条件,并能提高协同工作的效率。

附图说明

图1为本发明实施例1提供的应用于autodeskautocadp&id和avevapdms的数据交换方法的流程图;

图2为本发明实施例2提供的应用于autodeskautocadp&id和avevapdms的数据交换方法的流程图;

图3为本发明实施例2提供的在autodeskautocadp&id中创建和初始化服务端的示意图;

图4为本发明实施例2提供的在avevapdms中发送用户消息和接收p&id图元数据的示意图。

具体实施方式

为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和实施例对本发明作进一步详细描述。

为了解决现有技术中autodeskautocadp&id和avevapdms之间无法进行数据比较和协同工作的问题,本发明设计一种应用在二维设计软件和三维设计软件之间的数据交换方法,具体为应用于autodeskautocadp&id和avevapdms之间的数据交换方法。这种数据交换方法具有良好的实时性,能够保证二三维协同工作的效率,并且是双向的,以确保两款软件协同工作的要求。下面通过具体实施例进行详细描述。

实施例1:

如图1所示,本实施例提供一种应用于autodeskautocadp&id和avevapdms的数据交换方法,包括如下步骤s100-s500。

s100.在autodeskautocadp&id中建立p&id服务端进程;

s200.在avevapdms中建立pdms客户端进程;

s300.使p&id服务端初始化;

s400.由pdms客户端进程根据用户操作封装用户消息,并向p&id服务端发送用户消息;

s500.由p&id服务端接收用户消息并判断消息类型,然后根据判定的消息类型执行对应的操作。

所述步骤s100和步骤s200的顺序可互换,即建立p&id服务端和pdms客户端的顺序无影响。

在步骤s300中,使p&id服务端初始化具体为:使用图元数据访问器从p&id设计项目数据库中读取相应的p&id图元数据,按照设定的最大数量创建命名管道服务端线程实例并设置为等待连接状态,以等待接收用户消息;命名管道服务端线程实例的数量可定制。

较优地,所述p&id图元数据包括项目信息、图纸信息、基础数据表、属性设置和未成功读取图纸的提示中的至少一种。

在步骤s400中,当pdms客户端进程根据用户操作封装用户消息时,还需要创建命名管道客户端实例并使其与命名管道服务端连接,再向p&id服务端发送用户消息;命名管道客户端实例的数量可定制。

此外,在步骤s400中,当pdms客户端进程根据用户操作封装用户消息时,如果需要向p&id服务端发送pdms等级库数据,则将pdms等级库数据作为用户消息发送给p&id服务端。

在步骤s500中,根据判定的消息类型执行对应的操作具体为:

如果p&id服务端接收到的是需要返回p&id图元数据的用户消息,则向pdms客户端发送通过图元数据访问器得到的p&id图元数据;

如果p&id服务端接收到的是收到pdms等级库数据的用户消息,则解析用户消息中的pdms等级库数据,而无需向pdms客户端发送p&id图元数据;

如果p&id服务端接收到的是除解析pdms等级库以外的其他不需要返回p&id图元数据的用户消息,则不向pdms客户端发送p&id图元数据,而是执行其他操作。所述其他操作包括执行p&id服务端清理缓存指令和p&id图纸定位指令。

本实施例中,当p&id服务端接收到的是需要返回p&id图元数据的用户消息时,所述数据交换方法还包括如下步骤s600。

s600.由pdms客户端接收p&id服务端发来的p&id图元数据,并转换成相应的数据类型。

较优地,所有数据传输的过程中,传输的数据包大小可以定制。

实施例2:

如图2所示,本实施例提供一种应用于autodeskautocadp&id和avevapdms的数据交换方法。

本实施例中,分别从服务端和客户端两方面来描述所述数据交换方法,具体包括如下步骤s11至s16和步骤s21至s23。

对于服务端而言:

s11.在autodeskautocadp&id中建立p&id服务端进程。

p&id服务端主要用于对命名管道服务端和图元数据访问器进行实现和管理,以及解析用户消息并调用相关处理方法。

s12.使p&id服务端初始化,包括读取p&id图元数据,建立命名管道服务端线程实例并启动,以等待接收用户消息。

在p&id服务端建立后应进行相应的初始化设置,具体为,使用图元数据访问器从p&id设计项目数据库中读取相应的p&id图元数据,按照设定的最大数量创建命名管道服务端线程实例并设置为等待连接状态,以等待接收用户消息。其中每个线程都可以被一个pdms客户端连接。

在autodeskautocadp&id中创建和初始化服务端的示意图如图3所示。

s13.由p&id服务端接收用户消息并判断消息类型,然后根据判定的消息类型执行对应的操作,即执行步骤s14、s15或s16。

s14.向pdms客户端发送p&id图元数据。

如果p&id服务端接收到的是需要返回p&id图元数据的用户消息,则通过图元数据访问器得到相应的p&id图元数据,并向pdms客户端发送该p&id图元数据。

s15.解析pdms等级库数据。

如果p&id服务端接收到的是收到pdms等级库数据的用户消息,则解析用户消息中的pdms等级库数据。

s16.其他操作。

如果p&id服务端接收到的是不需要返回p&id图元数据的用户消息,则不向pdms客户端发送p&id图元数据,而是执行其他操作。所述其他操作包括执行p&id服务端清理缓存指令和p&id图纸定位指令。

对于客户端而言:

s21.在avevapdms中建立pdms客户端进程。

pdms客户端主要用于对命名管道客户端进行实现和管理,提供对用户消息的封装方法,以及缓存p&id图元数据。

s22.由pdms客户端进程根据用户操作封装用户消息,并向p&id服务端发送用户消息。

所述用户消息包括消息类型和相关的参数。如果需要向p&id服务端发送pdms等级库数据,则可将pdms等级库数据作为用户消息发送给p&id服务端。

按照用户提供的参数执行消息封装时,还需要创建命名管道客户端实例并使其与命名管道服务端连接,再将封装好的用户消息发送到p&id服务端。

s23.由pdms客户端接收p&id服务端发来的p&id图元数据,并转换成相应的数据类型。

在avevapdms中发送用户消息和接收p&id图元数据的示意图如图4所示。

综上所述,本发明所述应用于autodeskautocadp&id和avevapdms的数据交换方法,一方面在p&id中建立用于管道通信的服务端进程,使服务端初始化,包括读取p&id项目、图纸和属性等信息,服务端初始化完成后等待pdms客户端的连接和发送用户消息;另一方面在pdms中建立客户端进程,根据用户的操作连接p&id服务端以及发送相应的用户消息,并等待服务端返回数据。p&id服务端还在接收到pdms客户端发过来的用户消息后判断消息的类型并执行对应的操作,例如向pdms客户端发送p&id图元数据、解析pdms等级库数据或者进行其他操作。

本发明可使用c#语言开发实现,其内嵌于“cnpe二三维设计软件协作应用工具”源程序中,最终和其他模块共同编译为3个dll文件。当程序运行后,一方面,用户可以在p&id软件中执行初始化命令以对p&id客户端程序进行初始化,另一方面,用户可以在为pdms软件开发的操作界面中进行需要的操作,执行发送用户消息和传递数据的过程。本发明可以广泛应用于ap1000、acp1000的p&id和pdms软件项目中。显然,使用本发明的实时数据交换方式将比传统的分别单独提取数据报表的方式能获得更高的工作效率,成倍减少工作时间。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1