您的位置:首页 > 其它

[转帖] 基于AutoCAD的实时协同图形系统设计

2008-03-23 18:05 323 查看
计算机支持的实时协同设计CSRCD(Computer Supported Real-time Cooperative Design) 是CSCW 在设计工作中的一项重要应用,它主要支持设计群体并发工作即使交流思想、协调工作进展情况、发现工作过程中出现的矛盾和冲突等,防止、避免和尽可能的减少设计过程中反复修改的问题。目前在实时协同设计领域已经进行了大量的研究和开发工作,有SketchPad、Shsatra、Co-CAD 等。但大多数还是集中于模型设计阶段,很少可以真正达到远程的同步协同设计。SketchPad是一个支持多个用户的分布式草图系统,主要用于视频会议上对共享的图像进行浏览并作草图标注等操作:Shastra 是在桌面系统上实现的一种多媒体协同设计环境,它支持基于用户层和应用层的协同操作; Co-CAD 是一个协同的机械CAD 系统, 它提供一些零件,可以支持地理上分散的机械CAD 工程师进行同步协同操作。AutoCAD 是AutoDesk 公司设计的一个用于工程设计的软件,目前己经在机械、电子、土木等领域得到了广泛的应用。目前,国内的很多工程软件都是基于AutoCAD 二次开发的系统, 这不仅简化了系统开发的复杂度,还降低了用户操作的难度,充分体现了"以人为本"。考虑到这一事实,该文也将以AutoCAD系统为平台,对实时协同图形系统的开发进行尝试。
1 系统结构

1.1 实时协同系统的基本要求

实时协同系统设计的目的是提供有效的支持,使用计算机技术来帮助设计群体的交互,从而协同完成一个共同的任务和合作目标。一般来说还要满足分布性、动态性、实时通讯信息存储等要求。

1.2 基于AutoCAD的实时协同系统模型

基于AutoCAD的实时协同系统模型由3个部分组成,分别为用户界面、AutoCAD内核和代理群。AutoCAD内核是AutoCAD系统提供的核心功能:代理群和用户界面用于在AutoCAD基础上采用Visual C++和ObjectARX 二次开发完成。其系统模型如图1所示。



图1系统模型
用户界面是设计参与者与系统交流的通道,是用户使用系统完成一种或多种操作所需要的一系列工具的有机组合。实时协同系统中,用户界面是个性化的,它根据用户的不同角色和权限动态生成。

AutoCAD 内核在这里指AutoCAD 系统,包括它的所有资源,例如,数据库、编辑功能、ARX类库等。

代理群是在AutoCAD基础上,结合实时协同系统的需求进行二次开发完成的。主要包括数据库代理、编辑代理、信息激励代理和通讯状态代理。数据库代理用于监视数据库对象的创建、修改、删除等事件:编辑代理用于监视用户操作AutoCAD 系统时编辑器的状态,主要监视监视器的命令状态和文件操作状态:信息激励代理是把当前发生的状态变化形成信息激励,然后通过通讯网络传递给其它设计群体:通讯状态代理负责捕获其它设计人员通过网络发布的协同消息,并转化为本地命令,然后传递给AutoCAD内核实现协同。

2 系统实现

2.1 用户界面

基于AutoCAD的实时协同图形系统中用户的操作是通过用户界面实现的,用户界面在整个系统运行过程中随着用户身份和权限的不同动态变化。用户界面管理系统是根据用户身份和权限的不同,对其设计界面进行动态的管理,用户身份、用户权限和用户界面等信息进行管理,目的是增加系统的透明度、可扩展性和简化系统设计。图2是动态用户界面管理的系统模型。

该模型中用户界面管理模块的主要功能包括:用户身份认证、用户权限管理和用户界面生成3个模块:用户身份认证是对提出请求的用户身份进行确认。进行身份认证的依据是被认证方拥有除自己之外的任何三方都不能伪造的信息:实时协同系统中每一个参与设计的操作者都具有一定的权限,权限管理系统的功能就是对用户所拥有的权限进行动态管理:传统应用软件的用户界面是在系统设计过程中确定,或者可以在一定范围内动态变化,但是不具有扩充性。用户界面生成系统设计的目的就是解决这一问题,从而使协同设计系统可以根据用户的不同请求生成不同的用户界面和应用程序。



图2 动态用户界面管理系统模型
用户界面管理系统的运行需要认证服务器、XML 界面库和DLL 模块库的支持。它们的功能分别为:认证服务器用于存储实时协同设计环境下的用户信息及其权限,它是保证用户合法性的基础; XML界面库以XML文件的方式存储实时协同设计系统中的所有功能的描述及其相互关系; DLL模块库存储实时协同系统完成各项功能所需要的函数。

2.2 代理群设计

2.2.1 结构设计

基于AutoCAD的实施协同图形系统包含数据库、编辑、信息激励和通讯状态等4种代理,尽管4种代理的功能各不相同,但是其概念模型结构完全相同。

(1)代理结构

面向对象技术和AutoCAD系统支持是完成代理设计的基础,基于代理的特点和实时协同设计系统的需求,并结合面向对象技术的封装、继承以及多态性等特性,设计了如图3所示的由支撑库、核心控制和功能群3层组成的代理结构。



图3 代理结构
1)支撑库
支撑库是代理运行的基础,包括知识库、规则库和Acad数据库三部分组成。知识库存储代理求解问题所涉及的所有知识,对于不同的应用领域知识库中存储的信息不同,例如应用于工程设计领域时包括设计规范知识、专家经验知识和设计实例知识:规则库记录代理运行时遵循的行为准则,用于确定代理在感知到外部变化时应作出的响应:数据库基于AutoCAD系统数据设计,数据库中一方面存储了业务处理所涉及的内部数据,另一方面还记录了代理自身状态变化的记录和代理运行的日志。

2) 核心控制

核心控制是代理运行的控制系统,包括通讯接口、信息解释器、命令集成器和功能群接口。通讯接口不仅是代理实现内外信息交互的门户,同时也是代理对外部变化的感知器。信息解释器是对通讯接口传递的信息流进行分析,这一过程需要在知识库、规则库和Acad数据库的辅助下完成。功能群接口捕获经过信息解释器处理的信息流,并根据需求与功能群层进行交互。另外,功能群接口还需要把由功能群层返回的信息传递到命令集成器,以便进行进一步的处理。命令集成器是把功能群接口传递的信息进行组合形成AutoCAD命令流,该命令流是实现协同设计的具体实施者。

3) 功能群

功能群是代理功能模块的集合,组成功能群功能模块称为功能体,功能体是采用面向对象技术编写的二个个对象,功能体有主动功能体和被动功能体两种。被动功能体类似于对象,它只能提供方法:主动功能体不仅可以提供方法调用的接口,还可以主动地把消息反馈给逻辑控制层。代理结构中的通讯接口就是通过主动功能体实现的。功能体之间相互独立,隶属于同一代理的各功能体之间通过核心控制层完成信息交流,采用这种设计方法极大的增加了系统模块的可复用性,并在一定程度上降低了代理设计的复杂度。

2.2.2 代理问通讯

基于AutoCAD的实时协同图形系统是一个多代理系统,各个代理能够协同工作的基础是代理之间具备有效可靠的通讯协议。系统的通讯主要有两种方法:直接通讯和黑板通讯。直接通讯是点对点通讯,也就是发送到代理把信息直接发送到接收方代理,该系统中这种通讯方式出现在"信息激励代理与通讯代理之间";黑板通讯是通过存取公用数据区以达到交换信息的目的,也就是说代理可以把信息发送到公共数据区,其它代理可以从公共数据区中获取该代理发送的信息,该系统中这种通讯方式出现在"信息激励代理与数据库代理或编辑代理的通讯中"。

为了保证系统的开放性,代理间通讯必须遵循一定的标准,基于AutoCAD的实时协同图形系统代理间通讯遵循FIPA的通讯规范。为了保证代理之间有效地进行连续会话,FIPA预定义了一组交互协议,其中每个协议对应一种典型会话模式,FIPA交互协议采用扩展的UML语言AUML表示,目前FIPA交互协议库中共有11种交互协议,包括:请求交互协议、查询交互协议、合同网交互协议、中介交互协议、提议交互协议等。

3 应用实例

基于AutoCAD的实时协同图形系统的最基本功能包括添加、删除和修改等,以实体添加过程为例,它的主要功能包括以下几个部分:①根据数据库代理和编辑代理的信息,获取变化的实体数据:②将实体数据转换为动态数据格式(例如XML格式),并生成信息激励流:③捕获信息激励流,把接收到的动态数据格式的数据转换为实体数据:④根据实体的数据将实体在AutoCAD 数据库中重新生成。这些功能需要两部分程序子模块来完成,其一是实体的动态数据生成模块,它完成①、②两项功能,定义为模块1 ;其二是实体二次生成模块,它完成③、④两项功能,定义为模块2 .两个模块的工作流程如图4所示。



图4 添加实体功能流程
由图4可知,一个ARX应用程序的模块1和模块2并不相互作用,而是分布在异地的ARX应用程序中的模块l和模块2通过网络相互作用。在ARX应用程序中模块l和模块2通过Socket 端口连接。

图5所示是基于AutoCAD的实时协同图形系统在建筑设计中的一个应用实例。设计任务是一个古典的凉亭,参与设计的有两个设计师,一位完成凉亭的结构设计,另一位完成凉亭的环境设计。



图5 协同设计实例
图5中左侧是结构设计师完成凉亭的主体设计,右侧是环境设计师完成凉亭的周边环境设计,两者之间实现实时协同,每一方的设计变更可以实时的在另一方及时体现。两个界面显示的内容虽然相同,但在操作上却有本质的区别。设计过程中,任何一方以只读方式查看另一方的设计方案,不能任意修改,对设计的建议需要通过代理反馈给设计方,径协商后由设计方更改。图6是最终设计结果渲染图。



图6 设计结果渲染图
4 结论
实时协同设计是工程设计领域的先进设计技术,它符合信息时代工程师工作模式的群体性、分布性和动态性的特点。该文在最常用的工程绘图软件——AutoCAD的基础上使用Visual C++和0bjectARX 进行了二次开发,设计了基于AutoCAD 的实时协同绘图系统的总体框架,并对动态用户界面生成、代理设计等内容进行了讨论,最后用一个简单的实例验证了系统的可行性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: