CN101882173B - 一种在线协同设计用被引用拓扑对象编码/命名方法 - Google Patents
一种在线协同设计用被引用拓扑对象编码/命名方法 Download PDFInfo
- Publication number
- CN101882173B CN101882173B CN2010101901312A CN201010190131A CN101882173B CN 101882173 B CN101882173 B CN 101882173B CN 2010101901312 A CN2010101901312 A CN 2010101901312A CN 201010190131 A CN201010190131 A CN 201010190131A CN 101882173 B CN101882173 B CN 101882173B
- Authority
- CN
- China
- Prior art keywords
- characteristic
- design
- order
- characteristic design
- name
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种在线协同设计用被引用拓扑对象编码/命名方法,包括步骤:一、系统配置:参与在线协同设计的多个参与终端地位对等;二、多个参与终端通过交换特征设计命令方式协同工作,每个参与终端均能作为命令生成及发送端与命令接收及执行端:当作为命令生成及发送端时,过程如下:本地共享数据副本加锁、特征设计命令生成、特征设计命令执行及本地共享数据副本解锁与特征设计命令发送;当作为命令接收及执行端时,过程如下:特征设计命令接收、本地数据库副本加锁状态判断与特征设计命令立即执行及等待执行。本发明设计合理严谨、操作简便、实现方便且使用效果好,编码/命名方式灵活,能支持特征设计命令级并发粒度的CAD在线协同设计。
Description
技术领域
本发明涉及一种适用于计算机辅助设计领域的被引用拓扑对象编码/命名方法,尤其是涉及一种支持特征设计命令级并发粒度的在线协同设计用被引用拓扑对象编码/命名方法。
背景技术
CAD(即计算机辅助设计)技术是利用计算机帮助设计人员进行产品和工程设计的技术。CAD技术已经被广泛应用在机械、电子、航空、建筑等国民经济的各个领域并且获得了巨大的成功。CAD技术的发展和应用水平已成为衡量一个国家科技现代化和工业现代化水平的重要标志之一。协同设计作为信息化、网络化时代的一种新的产品设计方法,在世界范围内受到工业界和学术界的广泛关注并成为当前的应用和研究热点。协同设计旨在使企业在产品设计方面突破行业、组织、地域以及所使用CAD系统的限制,对包括设计人员在内的各种设计资源进行跨时空、跨系统的整合。
协同设计具有不同的类型、层次和特点:①设计结果重用类,侧重于通过设计文件将设计结果在不同的CAD系统之间进行重用,CAD系统间的参数化模型交换属于该类型,作为一种离线的协同设计,其特点是静态性和非实时性;②可视化批注/圈阅类,作为一种类型的在线的协同设计,有其动态性、实时性的一面,但可视化批注/圈阅存在间接性和理解歧义性的不足;③基于CAD系统的在线实时协同设计,集前两类的优点于一体,突破时间和空间的限制,使设计思想直接作用到设计对象上,设计者可以就设计进行直接、实时及有效的沟通协作。第①种类型的参数化模型交换和第②种类型的在线可视化批注/圈阅已经获得商业应用并取得了良好的效果,第③种类型的在线协同设计是当前协同设计追求的最高目标,同时在研究上也是最具挑战性,还有许多问题尚待解决。
在线协同设计的目标是提供尽可能精细的协同粒度,从而提高系统的并发性,而现有的在线协同设计方法普遍存在并发性低的问题,以三种常见的在线协同设计方法为例:第1种类型的在线协同设计方法采用共享数据加锁的严格互斥访问方法进行协同工作中的并发控制,在任何一个时刻只允许一个参与者拥有对共享数据的修改权限;第2种类型的在线设计方法假设参与者能够自觉遵守发言规定,并且采用语音工具辅助发言,以这种方式决定哪个参与者拥有对共享数据的修改权限,但不能够保证这种假设条件总是能够得到满足,只好进行事后校验;第3种类型的在线协同设计方法采用C/S(Client/Server)结构,其中服务器配置共享数据和几何建模服务,客户端则主要负责建模操作的交互输入和模型显示,这种类型的协同设计方法,由于几何建模服务都在中心服务器完成,所以无法提供精细粒度的并行工作。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种在线协同设计用被引用拓扑对象编码/命名方法,其设计合理严谨、操作简便、实现方便且使用效果好,编码/命名方式灵活,可操作性强,能支持特征设计命令级并发粒度的CAD在线协同设计。
为解决上述技术问题,本发明采用的技术方案是:一种在线协同设计用被引用拓扑对象编码/命名方法,其特征在于该方法包括以下步骤:
步骤一、系统配置:对参与CAD在线协同设计的多个参与终端Agent pi进行系统配置,使得所有参与终端Agent pi均具有对等的可视化交互功能、三维几何建模功能和共享数据副本;并且,任意两个参与终端Agent pi之间以点到点通信方式进行双向通讯;其中,i=1、2、3...n,n为参与终端Agent pi的数量;同时,在各参与终端Agent pi的系统内均相应建有特征命令类型菜单,所述特征命令类型菜单包括对多种立体几何单元进行引用时的特征命令类型标识FCtid,多种几何立体单元包括CAD设计中所采用的多种最基础的立体几何单元,且CAD设计时任一被设计的几何模型均为由一个或多个几何立体单元组成的组合结构;
步骤二、多个参与终端Agent pi通过交换特征设计命令方式进行协同工作,每个参与终端Agent pi的协同工作过程均相同,且每个参与终端Agent pi均能作为特征设计命令的命令生成及发送端与命令接收及执行端,对于参与终端Agent pi中的任一个参与终端Agent pj来说,其协同工作过程如下:
I、当参与终端Agent pj作为命令生成及发送端进行协同工作时,通过可视化交互方式生成特征设计命令,其工作过程包括以下步骤:
2011、本地共享数据副本加锁:调用数据加锁模块对当前的本地共享数据副本进行加锁;
2012、特征设计命令生成,其生成步骤如下:
1a、几何模型拆分:根据当前需设计几何模型的设计结构,对需设计的几何模型进行拆分,且将所述几何模型拆分成多个立体几何单元,相应将被设计的几何模型拆分成以所述立体几何单元为单位的多个拓扑对象;
1b、可视化交互:调用可视化交互模块以一个拓扑对象为单位,对组成当前被设计几何模型中的所有拓扑对象分别进行可视化交互;
1c、被引用拓扑对象编码/命名:根据步骤1b中对所有拓扑对象进行可视化交互的交互结果,调用编码/命名模块分别对各拓扑对象进行编码/命名,并相应生成多个分别与各拓扑对象相对应的编码/命名单元,完成所有被引用拓扑对象的编码/命名过程;
对任一个拓扑对象ti进行编码/命名时,相应对组成该拓扑对象ti的多个拓扑面进行编码/命名,并对应生成多个与各拓扑面相对应的编码/命名单元和一个数值参数单元,且多个编码/命名单元和一个数值参数单元与拓扑对象ti相对应;且编码/命名单元和数值参数单元生成后,参与终端Agent pj根据所述编码/命名单元自动生成拓扑对象ti中各拓扑面、各拓扑边和各拓扑点的拓扑面命名引用单元、拓扑边命名引用单元和拓扑点命名引用单元;所述编码/命名单元、数值参数单元、拓扑面命名引用单元、拓扑边命名引用单元和拓扑点命名引用单元分别通过关联单元与拓扑对象ti进行关联;
所述编码/命名单元内存储有用于表示拓扑对象ti结构类型的特征类型标识Ftid、用于表示结构类型为Ftid的图形实例的特征实例标识Finstcnt和多个分别用于表示同一个特征实例标识Finstcnt中所有拓扑面的特征拓扑面标识Faceinstcnt;所述数值参数单元内存储有用于表示拓扑对象ti大小尺寸的一组数值参数;
1d、特征设计命令生成:调用特征设计命令生成模块分别对编码/命名完成的多个编码/命名单元分别进行分析处理,并相应生成多条特征设计命令FC;所述特征设计命令FC为由三元组组成的一条文本信息,且三元组分别为用于表示与特征类型标识Ftid相对应的特征设计命令FC的命令类型标识FCtid、用于表示特征设计命令FC生成时参与终端Agent pj内部的文档状态标识SVcg[n]和特征设计命令FC的参数列表parameters,所述参数列表parameters中存有所述编码/命名单元、所述数值参数单元、拓扑面命名引用单元、拓扑边命名引用单元和拓扑点命名引用单元中所存储的所有信息;
其中,文档状态标识SVcg[n]为一个n维向量,n表示参与在线协同设计的所有参与终端的数量,SVcg[n]中的第i个分量表示参与终端Agent pj上已经执行的编号为i的参与终端Agent pi发出的与特征类型标识Ftid相对应的特征设计命令的数量;
2013、特征设计命令执行及本地共享数据副本解锁:调用执行模块对生成的多条特征设计命令FC分别进行执行,并将执行后生成的几何模型结果同步通过所述可视化交互模块反馈给用户,同时将执行结果存入特征设计命令执行历史记录;多条特征设计命令FC执行完后,调用数据解锁模块对加锁后的本地共享数据副本进行解锁,且解锁后参与终端Agent pj便作为命令接收及执行端对所接收到的来自其它Agent pk发送而来的特征设计命令FC进行执行,其中,k=1、2、3...n,且k≠j;
2014、特征设计命令发送:参与终端Agent pj将执行后的多条特征设计命令FC以点对点的通信方式并发至其它参与终端Agent pk;
II、当参与终端Agent pj作为命令接收及执行端进行协同工作时,其工作过程包括以下步骤:
2021、特征设计命令接收:参与终端Agent pj对自其它参与终端Agentpk发送而来的特征设计命令FC进行接收;
2022、本地数据库副本加锁状态判断:对本地数据库副本的当前加锁状态进行判断:当判断得出地数据库副本处于加锁状态时,则执行步骤2024;否则执行步骤2023;
2023、特征设计命令立即执行:参与终端Agent pj立即执行步骤2021中接收到的特征设计命令FC,并将执行结果存入特征设计命令执行历史记录;且执行完后检查本地等待队列,并继续处理本地等待队列中其它处于等待状态的特征设计命令FC;
2024、特征设计命令等待执行:参与终端Agent pj将步骤2021中接收到的特征设计命令FC放入本地等待队列中进行等待处理。
上述步骤2023中进行特征设计命令直接执行时,其执行过程包括以下步骤:
2a、文档状态对比判断:调用文档状态比较模块对步骤2021中接收到的特征设计命令FC中的文档状态标识SVcg[n]和参与终端Agent pj当前的文档状态标识SVce[n]进行比较判断:当比较判断得出二者相等时,则执行步骤2b;否则,表明此时参与终端Agent pj上已经执行了与步骤2021中所接收特征设计命令FC为广义并发关系的特征设计命令,则执行步骤2c;
其中,文档状态标识SVce[n]为一个n维向量,n表示参与在线协同设计的所有参与终端的数量,SVce[n]中的第i个分量表示参与终端Agent pj上已经执行的编号为i的参与终端Agent pi发出的与特征类型标识Ftid相对应的特征设计命令的数量;
2b、特征设计命令直接执行:参与终端Agent pj直接执行步骤2021中接收到的特征设计命令FC,并将执行结果存入特征设计命令执行历史记录;且执行完后检查本地等待队列,并继续处理本地等待队列中其它处于等待状态的特征设计命令FC;
2c、特征设计命令执行前判断与执行:调取参与终端Agent pj上特征设计命令执行历史记录,且根据所调取的特征设计命令执行历史记录,构建出与步骤2021中所接收特征设计命令FC为广义并发关系的所有特征设计命令的特征命令集合SCg(FC);并根据特征命令集合SCg(FC)中所包括的所有特征设计命令,进一步构建出与步骤2021中所接收特征设计命令FC为狭义并发关系的所有特征设计命令的特征命令集合SCn(FC),并对特征命令集合SCn(FC)进行判断:当特征命令集合SCn(FC)为空时,则在参与终端Agent pj执行步骤2021中接收到的特征设计命令FC,并将执行结果存入特征设计命令执行历史记录,且执行完后检查本地等待队列并继续处理本地等待队列中其它处于等待状态的特征设计命令FC;当特征命令集合SCn(FC)不为空时,则执行步骤2d;
所述广义并发关系为不同Agent pi在相同文档状态下生成的特征设计命令之间的关系,即文档状态标识SVcg[n]相同的特征设计命令FC之间的关系;所述狭义并发关系为与命令类型标识FCtid相同的广义并发特征设计命令之间的关系;
2d、特征设计命令执行前处理与执行:首先,将步骤2021中接收到的特征设计命令FC加入到特征命令集合SCn(FC);之后,将本地共享数据文档恢复到特征命令集合SCn(FC)中最早执行的特征设计命令执行之前的文档状态,且在恢复后的文档状态下,先将特征命令集合SCg(FC)中除特征命令集合SCn(FC)之外的所有特征设计命令按照其原始相对先后顺序在参与终端Agent pj上执行,然后根据预置的优先级重新确定SCn(FC)中所有特征设计命令的执行顺序,并按确定后的新执行顺序执行SCn(FC)中的所有特征设计命令,并将执行结果存入特征设计命令执行历史记录;且执行完后检查本地等待队列,并继续处理本地等待队列中其它处于等待状态的特征设计命令FC。
上述步骤1c中对被引用拓扑对象ti进行编码/命名时,在对参与终端Agent pj执行拓扑对象ti对应特征设计命令FC的布尔运算之前进行编码/命名;
且编码/命名时,特征类型标识Ftid根据拓扑对象ti对应特征设计命令FC的命令类型标识FCtid来确定,且特征类型标识Ftid与特征类型标识Ftid一一对应;特征实例标识Finstcnt根据参与终端Agent pj执行拓扑对象ti对应特征设计命令FC的当前值确定;所述拓扑对象ti中所包含拓扑面的个数为m,特征拓扑面标识Faceinstcnt的编码从0到m-1进行,且进行编码时先取拓扑对象ti中所有拓扑面的外法向向量V0,V1…Vm-1,之后以V0,V1…Vm-1的三个分量为依据对拓扑对象ti的多个拓扑面进行排序,其中Vi为平面的外法向向量或曲面的平均外法向量。
所述执行拓扑对象ti由CAD设计中常规使用的扫略或拉伸方法生成,且对拓扑对象ti的多个拓扑面进行编码时,将扫略或拉伸的起始截面编码为0,结束截面编码为m-1,另外m-2个侧面顺序以构成扫略或拉伸截面的m-2条边的切向量v1,v2…vm-2来进行编码,具体是以v1,v2…vm-2的三个分量为依据对m-2个拓扑面进行编码,m-2个侧面的编码与拉伸截面的对应边的编码相同。
上述步骤2d中按确定后的新执行顺序执行SCn(FC)中的所有特征设计命令后,便完成特征设计命令执行后文档状态的确定化,此时根据参与终端Agent pj执行拓扑对象ti对应特征设计命令FC的当前值确定特征实例标识Finstcnt。
所述拓扑面命名引用单元的命名形式为Facern=(eletypeid,adj_face_number,adj_Facec/n_list);
所述拓扑边命名引用单元的命名形式为Edgern=(eletypeid,adj_face_number,adj_Facec/n_list,end_face_number,end_Facec/n_list);
所述拓扑点命名引用单元的命名形式为Vertexrn=(eletypeid,adj_face_number,adj_Facec/n_list);
其中,eletypeid表示被引用拓扑元素的类型且其用于区分拓扑面、拓扑边和拓扑点三种拓扑元素,adj_face_number表示被引用拓扑元素的邻接面的个数,end_face_number表示被引用拓扑边两个端部的端面的个数,adj_Facec/n_list表示被引用拓扑元素的邻接面的编码/名字属性列表,end_Facec/n_list表示被引用拓扑边的端面的编码/名字属性列表。
本发明与现有技术相比具有以下优点:
1、设计合理、操作简便且编码/命名简便,实现方便。
2、编码/命名方式灵活,可操作性强,能适用于所有的CAD在线协同设计系统。
3、设计合理,各设计阶段构思严谨,首先各个参与终端Agent在进行特征设计的可视化交互阶段,只对本地共享数据加锁,以阻止在可视化交互过程中本地模型数据被改变而影响交互,本地数据加锁不影响其它Agent上的共享数据,各个Agent可以并行的进行可视化交互设计工作;其次,当某特定Agent完成可视化交互的工作后,生成一条文本型的特征设计命令,该命令在本地共享数据解锁前执行,可以保证本地生成的特征设计命令执行的文档状态保持不变,进而保证新产生的特征实例中的拓扑对象的编码/命名的确定性,然后将特征设计命令以点对点的方式发往其它各个Agent;相应地,本地Agent生成的特征设计命令执行后,将本地共享数据解锁,然后处理其它Agent上发送过来的特征设计命令,执行其他Agent生成的特征设计命令的时候,需要对包括本地Agent生成的特征设计命令在内的所有具有并发关系的特征设计命令进行处理,因为文档状态的不确定性正是由特征设计命令的并发执行造成的。综上,在本发明应用过程中,只要能够让特征设计命令在确定的文档状态下执行,就可以避免特征中的拓扑对象编码/命名的冲突,进而保证执行后的文档状态的确定性和协同设计工作的可持续性。文档状态包括两部分内容:一是Agent当前的几何模型,二是获得当前几何模型的设计过程描述,即特征设计命令的执行历史记录,几何模型与特征设计命令的执行历史记录都在本地Agent上,并且几何模型可以通过特征命令的设计历史记录经过重构得到。文档状态可以使用一种简化的形式进行描述即状态向量StateVector,简称SV,SV是一个n维向量,其中的第i个分量表示已经执行的编号为i的Agent(假设所有Agent的编号为从1到n,n为整个系统中的Agent的个数)发出的特征设计命令的个数,简化形式的文档状态描述用于在Agent之间进行交换,从而使得系统中的所有特征设计命令都具有唯一的标识FCtid(即Feature Command type identification)。因而,本发明能支持特征设计命令级并发粒度的CAD在线协同设计。
综上所述,本发明设计合理严谨、操作简便、实现方便且使用效果好,编码/命名方式灵活,可操作性强,能支持特征设计命令级并发粒度的CAD在线协同设计。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明的方法流程图。
图2为本发明需设计几何模型一的结构示意图。
图3为本发明对方槽中各拓扑面进行编码时的原理示意图。
附图标记说明:
1-直槽一;2-直槽二;3-直槽三;
4-方台; 5-前侧面;6-上表面;
7-左侧面。
具体实施方式
如图1所示的一种在线协同设计用被引用拓扑对象编码/命名方法,包括以下步骤:
步骤一、系统配置:对参与CAD在线协同设计的多个参与终端Agent pi进行系统配置,使得所有参与终端Agent pi均具有对等的可视化交互功能、三维几何建模功能和共享数据副本;并且,任意两个参与终端Agent pi之间以点到点通信方式进行双向通讯;其中,i=1、2、3...n,n为参与终端Agent pi的数量;同时,在各参与终端Agent pi的系统内均相应建有特征命令类型菜单,所述特征命令类型菜单包括对多种立体几何单元进行引用时的特征命令类型标识FCtid,多种几何立体单元包括CAD设计中所采用的多种最基础的立体几何单元,且CAD设计时任一被设计的几何模型均为由一个或多个几何立体单元组成的组合结构。
所述几何立体单元的数量及结构可以由各设计人员进行自主设置,一般包括CAD设计时所需要的多种最基本的立体几何单元,如圆柱孔、源锥孔、方孔、圆柱状杆件、多棱柱、直槽、弧形槽、通孔、盲孔、圆台、螺纹结构、螺旋状结构、圆球、椭圆形球等。
步骤二、多个参与终端Agent pi通过交换特征设计命令方式进行协同工作,每个参与终端Agent pi的协同工作过程均相同,且每个参与终端Agent pi均能作为特征设计命令的命令生成及发送端与命令接收及执行端,对于参与终端Agent pi中的任一个参与终端Agent pj来说,其协同工作过程如下:
I、当参与终端Agent pj作为命令生成及发送端进行协同工作时,通过可视化交互方式生成特征设计命令,其工作过程包括以下步骤:
2011、本地共享数据副本加锁:调用数据加锁模块对当前的本地共享数据副本进行加锁。
2012、特征设计命令生成,其生成步骤如下:
1a、几何模型拆分:根据当前需设计几何模型的设计结构,对需设计的几何模型进行拆分,且将所述几何模型拆分成多个立体几何单元,相应将被设计的几何模型拆分成以所述立体几何单元为单位的多个拓扑对象。
1b、可视化交互:调用可视化交互模块以一个拓扑对象为单位,对组成当前被设计几何模型中的所有拓扑对象分别进行可视化交互。
1c、被引用拓扑对象编码/命名:根据步骤1b中对所有拓扑对象进行可视化交互的交互结果,调用编码/命名模块分别对各拓扑对象进行编码/命名,并相应生成多个分别与各拓扑对象相对应的编码/命名单元,完成所有被引用拓扑对象的编码/命名过程;
对任一个拓扑对象ti进行编码/命名时,相应对组成该拓扑对象ti的多个拓扑面进行编码/命名,并对应生成多个与各拓扑面相对应的编码/命名单元和一个数值参数单元,且多个编码/命名单元和一个数值参数单元与拓扑对象ti相对应;且编码/命名单元和数值参数单元生成后,参与终端Agent pj根据所述编码/命名单元自动生成拓扑对象ti中各拓扑面、各拓扑边和各拓扑点的拓扑面命名引用单元、拓扑边命名引用单元和拓扑点命名引用单元;所述编码/命名单元、数值参数单元、拓扑面命名引用单元、拓扑边命名引用单元和拓扑点命名引用单元分别通过关联单元与拓扑对象ti进行关联;
所述编码/命名单元内存储有用于表示拓扑对象ti结构类型的特征类型标识Ftid、用于表示结构类型为Ftid的图形实例的特征实例标识Finstcnt和多个分别用于表示同一个特征实例标识Finstcnt中所有拓扑面的特征拓扑面标识Faceinstcnt;所述数值参数单元内存储有用于表示拓扑对象ti大小尺寸的一组数值参数。
综上,对特征设计命令中引用到的拓扑对象按规则命名,其中拓扑面关联编码/名字属性,即对应的编码/命名单元;而拓扑边和拓扑点不关联编码/名字属性,同时由同一个拓扑面分裂而来的多个分裂面继承分裂前的拓扑面的编码/名字属性。为保证引用拓扑对象和其名字的一一对应关系,当特征设计命令引用某个拓扑对象时,进一步为其构造引用名字,其中拓扑面的引用名字(即拓扑面命名引用单元)为Facern,拓扑边的引用名字(即拓扑边命名引用单元)为Edgern和拓扑点的引用名字(即拓扑点命名引用单元)为Vertexrn。
实际设计过程中,所述拓扑面命名引用单元的命名形式为Facern=(eletypeid,adj_face_number,adj_Facec/n_list);
所述拓扑边命名引用单元的命名形式为Edgern=(eletypeid,adj_face_number,adj_Facec/n_list,end_face_number,end_Facec/n_list);
所述拓扑点命名引用单元的命名形式为Vertexrn=(eletypeid,adj_face_number,adj_Facec/n_list);
其中,eletypeid表示被引用拓扑元素的类型且其用于区分拓扑面、拓扑边和拓扑点三种拓扑元素,adj_face_number表示被引用拓扑元素的邻接面的个数,end_face_number表示被引用拓扑边两个端部的端面的个数,adj_Facec/n_list表示被引用拓扑元素的邻接面的编码/名字属性列表,end_Facec/n_list表示被引用拓扑边的端面的编码/名字属性列表。
虽然拓扑面自身拥有编码/名字属性,但分裂后的多个拓扑面继承布尔运算前的特征实例中对应的分列前的拓扑面的编码/名字属性,故在具体引用到某个拓扑面的时候仍需为其构造引用名字。另外,拓扑边和拓扑点本身不具有编码/名字属性,当它们被特征设计命令引用到的时候为其构造引用名字。
1d、特征设计命令生成:调用特征设计命令生成模块分别对编码/命名完成的多个编码/命名单元分别进行分析处理,并相应生成多条特征设计命令FC;所述特征设计命令FC为由三元组组成的一条文本信息,且三元组分别为用于表示与特征类型标识Ftid相对应的特征设计命令FC的命令类型标识FCtid、用于表示特征设计命令FC生成时参与终端Agent pj内部的文档状态标识SVcg[n]和特征设计命令FC的参数列表parameters,所述参数列表parameters中存有所述编码/命名单元、所述数值参数单元、拓扑面命名引用单元、拓扑边命名引用单元和拓扑点命名引用单元中所存储的所有信息。
其中,文档状态标识SVcg[n]为一个n维向量,n表示参与在线协同设计的所有参与终端的数量,SVcg[n]中的第i个分量表示参与终端Agent pj上已经执行的编号为i的参与终端Agent pi发出的与特征类型标识Ftid相对应的特征设计命令的数量。
综上,为了便于实施,对于任一特征设计命令FC,以FCtid表示其特征操作类型;对于任一个参与终端Agent pi,以FCtid(cnt)表示参与终端Agent pi上当前已经执行的对应于FCtid的特征设计命令FC的个数;对于参与终端Agent pi执行特征设计命令FC后生成的特征实例中的拓扑面,根据FCtid和FCtid(cnt)对拓扑对象进行唯一命名,具体如下:特征设计命令FC的形式如公式FC=(FCtid,SVcg[n],parameters)所示,其中FCtid表示特征设计命令FC的命令类型,SVcg[n]为特征设计命令FC生成时的文档状态标识的简化形式,parameters为特征设计命令FC的参数列表。由此可看出,文档状态标识用状态向量StateVector来表示,简称SV,SV是一个n维向量,其中的第i个分量表示已经执行的编号为i的参与终端Agent pi(假设所有参与终端的编号为从1到n,n为整个系统中的所有参与终端的数量)发出的特征设计命令的数量。
2013、特征设计命令执行及本地共享数据副本解锁:调用执行模块对生成的多条特征设计命令FC分别进行执行,并将执行后生成的几何模型结果同步通过所述可视化交互模块反馈给用户,同时将执行结果存入特征设计命令执行历史记录;多条特征设计命令FC执行完后,调用数据解锁模块对加锁后的本地共享数据副本进行解锁,且解锁后参与终端Agent pj便作为命令接收及执行端对所接收到的来自其它Agent pk发送而来的特征设计命令FC进行执行,其中,k=1、2、3...n,且k≠j。
2014、特征设计命令发送:参与终端Agent pj将执行后的多条特征设计命令FC以点对点的通信方式并发至其它参与终端Agent pk。
II、当参与终端Agent pj作为命令接收及执行端进行协同工作时,其工作过程包括以下步骤:
2021、特征设计命令接收:参与终端Agent pj对自其它参与终端Agentpk发送而来的特征设计命令FC进行接收;
2022、本地数据库副本加锁状态判断:对本地数据库副本的当前加锁状态进行判断:当判断得出地数据库副本处于加锁状态时,则执行步骤2024;否则执行步骤2023;
2023、特征设计命令立即执行:参与终端Agent pj立即执行步骤2021中接收到的特征设计命令FC,并将执行结果存入特征设计命令执行历史记录;且执行完后检查本地等待队列,并继续处理本地等待队列中其它处于等待状态的特征设计命令FC;
2024、特征设计命令等待执行:参与终端Agent pj将步骤2021中接收到的特征设计命令FC放入本地等待队列中进行等待处理。
步骤2023中,进行特征设计命令直接执行时,其执行过程包括以下步骤:
2a、文档状态对比判断:调用文档状态比较模块对步骤2021中接收到的特征设计命令FC中的文档状态标识SVcg[n]和参与终端Agent pj当前的文档状态标识SVce[n]进行比较判断:当比较判断得出文档状态标识SVcg[n]和文档状态标识SVcg[n]相等时,则执行步骤2b;否则,表明此时参与终端Agent pj上已经执行了与步骤2021中所接收特征设计命令FC为广义并发关系的特征设计命令,则执行步骤2c。
其中,文档状态标识SVcg[n]为一个n维向量,n表示参与在线协同设计的所有参与终端的数量,SVcg[n]中的第i个分量表示参与终端Agent pj上已经执行的编号为i的参与终端Agent pi发出的与特征类型标识Ftid相对应的特征设计命令的数量。
2b、特征设计命令直接执行:参与终端Agent pj直接执行步骤2021中接收到的特征设计命令FC,并将执行结果存入特征设计命令执行历史记录;且执行完后检查本地等待队列,并继续处理本地等待队列中其它处于等待状态的特征设计命令FC。
2c、特征设计命令执行前判断与执行:调取参与终端Agent pj上特征设计命令执行历史记录,且根据所调取的特征设计命令执行历史记录,构建出与步骤2021中所接收特征设计命令FC为广义并发关系的所有特征设计命令的特征命令集合SCg(FC);并根据特征命令集合SCg(FC)中所包括的所有特征设计命令,进一步构建出与步骤2021中所接收特征设计命令FC为狭义并发关系的所有特征设计命令的特征命令集合SCn(FC),并对特征命令集合SCn(FC)进行判断:当特征命令集合SCn(FC)为空时,则在参与终端Agent pj执行步骤2021中接收到的特征设计命令FC,并将执行结果存入特征设计命令执行历史记录,且执行完后检查本地等待队列并继续处理本地等待队列中其它处于等待状态的特征设计命令FC;当特征命令集合SCn(FC)不为空时,则执行步骤2d。
其中,所述广义并发关系为不同Agent pi在相同文档状态下生成的特征设计命令之间的关系,即文档状态标识SVcg[n]相同的特征设计命令FC之间的关系。所述狭义并发关系为与命令类型标识FCtid相同的广义并发特征设计命令之间的关系,如广义并发的圆柱盲孔命令之间的关系、广义并发的方通槽特征设计命令之间的关系等。
2d、特征设计命令执行前处理与执行:首先,将步骤2021中接收到的特征设计命令FC加入到特征命令集合SCn(FC);之后,将本地共享数据文档恢复到特征命令集合SCn(FC)中最早执行的特征设计命令执行之前的文档状态,且在恢复后的文档状态下,先将特征命令集合SCg(FC)中除特征命令集合SCn(FC)之外的所有特征设计命令按照其原始相对先后顺序在参与终端Agent pj上执行,然后根据预置的优先级重新确定SCn(FC)中所有特征设计命令的执行顺序,并按确定后的新执行顺序执行SCn(FC)中的所有特征设计命令,并将执行结果存入特征设计命令执行历史记录;且执行完后检查本地等待队列,并继续处理本地等待队列中其它处于等待状态的特征设计命令FC。
综上,系统配置时:首先,对参与CAD在线协同设计的所有参与者代理,称为所有参与终端Agent pi进行对等的共享数据和几何建模功能配置,即不同参与终端Agent pi的地位是对等的;其次,各个参与终端Agent pi之间以点到点的模式进行通讯;之后,所有参与终端Agent pi之间的协同工作通过交换特征设计命令的方式完成;并且,特征设计命令在所有参与终端Agent pi上可以并发执行。参与CAD在线协同设计的所有参与终端Agent pi(其中,i=1、2、3...n,n为参与者的个数)都具有完备并且对等的可视化交互功能、三维几何建模功能和共享数据副本配置。其中任一个参与终端Agentpi在可视化交互阶段只需对本地共享数据副本加锁,而不对其它参与终端Agent pj造成任何影响,其中j≠i,并且可视化交互结果以特征设计命令表示。因而,本发明可以支持特征设计命令级并发粒度的在线协同设计。特征设计命令可以在所有参与终端Agent pi上并发执行,在任两个参与终端之间被交换执行,从而可以提高协同设计工作的并行性。
步骤2012中生成特征设计命令的原理是:首先,进行可视化交互,由于CAD系统本身提供有基于鼠标的可视化交互设计方式,而可视化交互方式的若干个交互步骤所得的交互结果均能用一条文本形式的特征设计命令来表示。因而,完成任一个几何模型的设计需要对组成该几何模型的所有拓扑对象分别进行可视化交互,每一个拓扑对象均与一条特征设计命令FC相对应。对于每一个拓扑对象而言,在设计过程中,设计者为完成一个特征设计命令FC需要进行若干个交互步骤,以在一个基台上添加一个圆柱定位孔为例进行说明:1)设计者首先需要给出圆柱孔本身的尺寸参数,如孔的半径r、孔的深度h等;2)将圆柱孔在基台的一个面上定位,定位可以通过确定圆柱孔中心线与基台面上的两条边e1和e2之间的距离完成,如圆柱孔中心线到边e1的垂直距离为d1,到边e2的垂直距离为d2。该圆柱孔的交互设计过程的最终结果则能用一条特征设计命令:Round_Hole(radius=r,depth=h,pos1=(e1,d1),pos2=(e2,d2))来表示。Round_Hole(……)形式的特征设计命令为文本形式,可以在所有参与终端Agent pj间进行交换与执行,从而达到在线协同工作的目的。将协同设计的粒度建立在特征设计命令上,当参与终端Agent pj进行可视化交互的时候只需对本地共享数据加锁,使得可视化交互工作可以并行进行,从而可以提高协同工作的并发粒度,获得更好的并行性。
本发明中的特征设计命令不同于文本编辑命令,传统的协同文本编辑系统中的文本编辑命令具有两种基本的形式Insert(value,position)和Delete(position,number),其中的value是插入的一个文本型的字符/字符串对象,position是插入/删除字符/字符串所在的位置,number是删除的字符的个数。文本编辑命令自身的语义是完整的,即根据编辑命令中的position参数在目标文档上进行定位后就可以完成相应的编辑操作。而特征设计命令要复杂的多,以特征设计命令Round_Hole(radius=r,depth=h,pos1=(e1,d1),pos2=(e2,d2))为例:其中的参数有两种类型,r,h,d1和d2参数为一类,属于纯数值型的参数,与当前的几何模型无关;e1和e2为另外一类参数,这类参数是几何模型中的拓扑对象的编码/名字,其产生与文档的瞬间状态(即设计过程中某个特定时刻的文档状态)密切相关。被引用拓扑对象标识的不正确将会导致特征设计命令无法被执行或者得到错误的执行结果,这就是基于特征设计命令交换进行协同设计中的被引用拓扑对象的编码/命名问题。
实际操作时,对拓扑面进行编码/命名的编码/命名单元的形式如以下公式所示:Facec/n=(Ftid,Finstcnt,Faceinstcnt),其中用于表示拓扑对象ti结构类型的特征类型标识Ftid则为被引用拓扑面所属的特征实例类型编码,以上述在一个基台上添加圆柱定位孔中的底面来说,特征类型标识Ftid则为圆形;用于表示结构类型为Ftid的图形实例的特征实例标识Finstcnt,特征实例标识Finstcnt同时能反映出在参与终端Agent pj已经生成的结构类型为Ftid的特征实例的数量,特征实例标识Finstcnt表示出当前被编码/命名的拓扑面所处的特定的特征实例;多个分别用于表示同一个特征实例标识Finstcnt中所有拓扑面的特征拓扑面标识Faceinstcnt,包括在上述特定特征实例中所包括所有拓扑面的标识(即包括当前被编码/命名的拓扑面和其它与该被编码/命名的拓扑面相邻或不相邻的多个拓扑面的标识),通过当前被编码/命名的拓扑面与其它拓扑面间的位置关系,则能对当前被编码/命名的拓扑面进行准确定位。因而,通过公式Facec/n=(Ftid,Finstcnt,Faceinstcnt)则可对任一个拓扑面进行准确引用,上述参数e1和e2则相当于编码/命名单元Facec/n。所述数值参数单元内存储有用于表示拓扑对象ti大小尺寸的一组数值参数,上述参数r,h,d1和d2则相当于数值参数单元。
实际操作过程中,步骤1c中对被引用拓扑对象ti进行编码/命名时,在对参与终端Agent pj执行拓扑对象ti对应特征设计命令FC的布尔运算之前进行编码/命名。且编码/命名时,特征类型标识Ftid根据拓扑对象ti对应特征设计命令FC的命令类型标识FCtid来确定,且特征类型标识Ftid与特征类型标识Ftid一一对应。特征实例标识Finstcnt根据参与终端Agent pj执行拓扑对象ti对应特征设计命令FC的当前值确定(具体是根据参与终端Agent pj上FCtid(cnt)的当前值确定,关键在于狭义并发关系的特征设计命令FC的处理,其处理方法与以下所述特征设计命令执行文档状态SVcg[n]的确定化方法相同),相应地,步骤2d中按确定后的新执行顺序执行SCn(FC)中的所有特征设计命令后,便完成特征设计命令执行后文档状态的确定化,此时根据参与终端Agent pj执行拓扑对象ti对应特征设计命令FC的当前值确定特征实例标识Finstcnt。所述拓扑对象ti中所包含拓扑面的个数为m,特征拓扑面标识Faceinstcnt的编码从0到m-1进行,且进行编码时先取拓扑对象ti中所有拓扑面的外法向向量V0,V1…Vm-1,之后以V0,V1…Vm-1的三个分量为依据对拓扑对象ti的多个拓扑面进行排序,其中Vi为平面的外法向向量或曲面的平均外法向量。
另外,当所述执行拓扑对象ti由CAD设计中常规使用的扫略或拉伸方法生成,且对拓扑对象ti的多个拓扑面进行编码时,将扫略或拉伸的起始截面编码为0,结束截面编码为m-1,另外m-2个侧面顺序以构成扫略或拉伸截面的m-2条边的切向量v1,v2…vm-2来进行编码,具体是以v1,v2…vm-2的三个分量为依据对m-2个拓扑面进行编码,m-2个侧面的编码与拉伸截面的对应边的编码相同。
总体来说,对拓扑对象ti(对应特征实例Fp)的多个拓扑面进行编码时,包括以下步骤:
a)取拓扑对象ti中所有拓扑面的外法向V0,V1…Vm-1,对于平面直接取面的外法向向量,对于曲面取面的平均外法向量;
b)以V0,V1…Vm-1的三个分量为依据进行排序,排序可以按x,y,z(但不限定三个分量的选取顺序,如还可以选取z,y,x或者y,z,z等顺序)进行升序(不限定升序,也可以按降序排列);
c)对于由扫略或拉伸方法生成的布尔运算前的特征实例Fp,各个拓扑面的编码顺序还可采用这样的方法:将扫略/拉伸的起始截面编码为0,结束截面编码为m-1,m-2个侧面顺序以构成扫略/拉伸截面的m-2条边的切向量v1,v2…vm-2;按步骤b)中V0,V1…Vm-1的排序方法进行1到m-2编码,侧面的编码与拉伸截面的对应边的编码相同。
综上所述,对任一个拓扑对象按规则编码时,具体是对与该拓扑对象相对应的特征设计命令执行后生成的所有拓扑面关联一个编码/名字属性,而拓扑边和拓扑顶点不关联编码/名字属性。对于被特征设计命令引用到的几何模型中的拓扑对象给以引用名字,所述引用名字的构成包含拓扑面的编码/名字属性和拓扑对象的局部拓扑信息。在布尔运算过程中,拓扑面的编码/名字属性在布尔运算后的结果能在几何模型中进行传播,传播规则为:被分裂的拓扑面继承分裂前的拓扑面的编码/名字属性,所以几何模型中拓扑面的编码/名字属性并不唯一。
具体操作时,特征设计命令生成时的状态向量SVcg[n](statevectorof command generation),是指参与终端作为特征设计命令生成终端且通过可视化交互得到特征设计命令时,本地参与终端上的特征设计命令的执行情况描述。参与终端作为特征设计命令接收终端接收自另一参与终端发送出来的特征设计命令时,所接收的特征设计命令在本地/远端参与终端上执行时的状态向量为SVce[n](statevector of command execution),是指一个特征设计命令在本地/远端参与终端上执行的时候远端系统上特征设计命令的执行情况描述。
具体实施时,可以通过本领域技术人员设置软件控制自动实现本地共享数据的加解锁,以及各参与终端间进行立即交换并执行特征设计命令。本发明提供了一些方便技术人员实施的简略手段:将广义并发关系简略标记为“||”,将狭义并发关系简略记为“||·”;将“恢复共享数据到某个状态”简略为“Undo特征设计命令”;将“执行特征设计命令”简略为“Do特征设计命令”;将“重新执行特征设计命令”简略为“Redo”。多个参与终端Agent pi上特征设计命令的执行顺序、个数的不一致会造成特征设计命令的SVcg[n]与SVce[n]不一致的情况,从而导致拓扑对象的编码/命名的冲突。本发明通过区分广义并发关系与狭义并发关系以及Undo/Do/Redo机制的特征设计命令执行文档状态确定化方法,保证拓扑对象的编码/命名的正确性,进而保证协同设计过程中特征设计命令执行的正确性,该方法支持特征设计命令级的并发粒度的协同设计。
在单机工作环境下,只有一个设计工作流,拓扑对象的编码/名字生成的文档状态具有确定性。当需要在特征设计过程中引用拓扑对象时,系统当前的文档状态是不会发生改变的,新生成的拓扑对象的编码/名字具有确定性。但在CAD在线协同设计环境下,如果欲通过允许特征设计命令并发执行而提高协同设计的并行性,则存在文档状态发生变化的情况。以初始状态具有完全相同的文档状态的两个参与终端Agent p1和p2为例,参与终端Agent p1和p2并发地经过各自的可视化交互后分别生成两个方槽特征设计命令S11和S12并分别在各自系统上执行;之后,参与终端Agent p1和p2交换特征设计命令S11和S12,并分别在对方的系统上执行。此种情况下:由于S11和S12是在相同的文档状态下生成的,并且它们是相同类型的特征设计命令,根据现有的单机拓扑对象的编码/命名方法,无论是基于设计步骤计数还是基于特征实例计数,两个方槽特征的对应拓扑面将获得相同的编码结果,即两个方槽特征中各拓扑面的编码具有一一对应相同关系,这里假设参与终端Agent p1上几何模型中的拓扑面f1与参与终端Agentp2上几何模型中的拓扑面f1’获得相同的特征面的编码,这就产生了特征面的编码/命名冲突。结果是两个参与终端Agent p1和p2产生非预期的文档状态,因而在后续的特征设计中,当某个特征设计命令再次引用拓扑面f1或者f1’时,将会发生引用上的不确定性,从而导致特征设计结果的不确定。
相应地,本发明提供了一种特征设计命令执行文档状态的确定化方法,假设任何一个参与终端Agent px(其中x=1,2,…n)发出的特征设计命令在任意远端的参与终端Agent py(其中y=1,2,…n且y≠x)上的到达顺序与生成顺序一致,即认为网络提供基于链接的可靠服务,同时所有的参与终端具有预先设定的优先级,其确定化过程如下:
对任何一个特征设计命令FCx,h,即Agent px发出的第h个特征设计命令,其处理过程为:
i、在本地Agent px上,由于特征设计命令在本地系统上生成后被立即执行,满足SVce[n]=SVcg[n](指SVcg[n]的n个分量中的任何一个分量等于SVce[n]中对应的分量),即特征设计命令执行时的文档状态没被并发的特征设计命令改变,命令的执行文档状态具有确定性,此时FCx,h的执行不会导致拓扑对象编码/命名冲突;
ii、如果在远端Agent py上执行时也满足SVcg[n]=SVce[n],则说明在Agent py上没有执行过与FCx,h为广义并发关系的其它特征设计命令,因而命令的执行文档状态具有确定性,此时FCx,h的执行不会导致拓扑对象编码/命名冲突;
iii、如果在远端Agent py上执行时满足SVcg[n]<SVce[n](指SVcg[n]的n个分量中的任何一个分量小于SVce[n]中对应的分量),则说明Agentpy上执行了Agent px之外的其它参与终端发出的特征设计命令;
iv、由于任何一个参与终端Agent px(其中x=1,2,…n)发出的特征设计命令在任意远端的参与终端Agent py(其中y=1,2,…n且y≠x)上的到达顺序与生成顺序一致,则在远端Agent py上不会出现SVcg[n]>SVce[n](指SVcg[n]的n个分量中的任何一个分量大于SVce[n]中对应的分量)的情况。
因而,此处只需要对第iii种情况进行处理,包括以下步骤:
I)由于参与终端Agent py上已经执行与特征命令FCx,h为广义并发关系的其它特征设计命令,并记录在参与终端Agent py的特征设计命令执行历史记录中且在特征设计命令FCx,h-1之后,与FCx,h为广义并发关系的特征设计命令以SCg(FCx,h)表示;
II)在SCg(FCx,h)中查找所有与FCx,h的FCtid相同的特征设计命令,即与FCx,h为狭义并发关系的特征设计命令,FCx,h的狭义并发特征设计命令集以SCn(FCx,h)表示;
III)将SCg(FCx,h)-SCn(FCx,h)中的特征命令按照原始的相对顺序放在SCn(FCx,h)中的特征设计命令之前,然后将SCn(FCx,h)中的特征设计命令按照预设的优先级重新确定执行顺序;
IV)最后将FCx,h-1后的所有特征命令按照新确定的顺序执行重构几何模型;
按照该方法,可以解决FCtid相同的特征命令在并发执行时,由于文档状态不确定而造成的拓扑对象在编码/命名上的冲突,即完成特征命令执行文档状态的确定化。按照特征计数方法,FCtid不同的特征命令不会造成拓扑对象在编码/命名上的冲突,故只需对狭义并发关系的特征设计命令进行处理。
综上,实际进行协同设计过程中,任一个参与终端Agent pj既可以生成特征设计命令又能接收并执行其它参与终端发送来的特征设计命令,各参与终端之间交换并执行特征设计命令时,按以下方式进行处理:任一个参与终端Agent pj作为特征设计命令的生成终端,在进行可视化交互之前,首先将本地共享数据加锁,然后进行可视化交互,之后生成特征设计命令FCj,k(表示由参与终端Agent pj生成的第k个特征设计命令),并立即在参与终端Agent pj上执行并向用户反馈相应的执行结果,然后将FCj,k结合其在参与终端Agent pj上生成时的SVcg[n]一起以点对点的方式发送给其它参与终端Agent pk,然后将本地共享数据解锁,FCj,k的参数中含有被引用到的拓扑对象的引用名字。
与此同时,参与终端Agent pm(m=1,2…n,且m≠j)作为接收终端,参与终端Agent pm接收到参与终端Agent pj发送过来的特征设计命令FCi,k后的处理步骤如下:
第一步、查看参与终端Agent pm的共享数据是否被加锁,如果被加锁则转入第三步,否则转入第二步。
第二步、对文档状态进行对比判断:判断FCj,k在参与终端Agent pj上生成时的SVcg[n]和参与终端Agent pm当前的文档状态SVce[n]是否相等,当二者相等时,则执行步骤①;否则,表明参与终端Agent pm上已经执行了和FCj,k为广义并发关系的特征设计命令,则执行步骤②;
步骤①:直接在参与终端Agent pm上执行自参与终端Agent pj发送过来的FCj,k,执行完后检查本地等待队列并处理其他等待中的特征设计命令;
步骤②:根据参与终端Agent pm上的特征命令执行历史记录,构建出FCi,k的广义并发特征设计命令集合SCg(FCj,k),进一步以SCg(FCj,k)中与FCi,k为狭义并发关系的特征设计命令构建出特征命令集合SCn(FCj,k)。如果SCn(FCj,k)为空,则在参与终端Agent pm上执行参与终端Agent pj发送过来的FCj,k,执行完后检查本地等待队列并处理其他等待中的特征设计命令。如果SCn(FCj,k)不为空,则转步骤③;
步骤③:将FCj,k加入到SCn(FCj,k),并将本地共享文档恢复到SCn(FCj,k)中最早执行的特征设计命令之前的文档状态,在该状态下先将SCg(FCj,k)-SCn(FCj,k)特征设计命令按照其原始相对顺序在参与终端Agentpm上执行。然后根据预置的优先级,重新确定SCn(FCj,k)中所有特征设计命令的执行顺序,并按新的顺序执行SCn(FCj,k)中的所有特征设计命令,执行完后检查本地等待队列并处理其他等待中的特征设计命令。
第三步、将接收到的参与终端Agent pj发送过来的特征设计命令FCj,k,放入到参与终端Agent pm的等待队列中。
结合图2,需进行设计的几何模型一为在一个方台4上分别开直槽一1、直槽二2和直槽三3三个直槽,其中直槽一1和直槽二2呈平行布设,直槽三3与直槽一1呈垂直布设,且采用参与终端Agent p1、参与终端Agentp2和参与终端Agent p3三个参与终端进行在线协同设计,具体以ACIS 6.0为三维几何建模内核,以Winsocket2.0作为通讯API,以VC6.0作为开发环境进行实施。
首先,3个参与终端Agent p1、Agent p2和Agent p3上都具有相同并且完备的可视化交互功能、几何建模功能、通讯功能和共享数据副本,且参与终端Agent p1、Agent p2和Agent p3之间通过Socket建立点到点的可靠的网络通讯,假设3个参与终端的优先级方案为:编号越小优先级越高,即参与终端Agent p1的优先级最高,Agent p3的优先级最低,而Agentp2的优先级居中。采用三个参与终端Agent p1、Agent p2和Agent p3对上述需设计的几何模型进行CAD在线协同设计时,其具体设计过程如下:
步骤一、三个参与终端Agent p1、Agent p2和Agent p3上的初始状态为:由参与终端Agent p1通过特征设计命令FC1,1(参与终端Agent p1生成并执行的第1个特征设计命令)生成一个立方体特征,并相应获得对应的立方体特征实例,且给立方体特征实例中的各拓扑面进行了唯一编码/命名,即设计出方台4;
步骤二、三个参与终端Agent p1、Agent p2和Agent p3并发生成并执行了各自的方槽特征设计命令FC1,2、FC2,1和FC3,1,具体而言:参与终端Agentp1生成并执行了设计方槽一1的方槽特征设计命令FC1,2(参与终端Agent p1生成并执行的第2个特征设计命令),参与终端Agent p2生成并执行了设计方槽二2的方槽特征设计命令FC2,1(参与终端Agent p2生成并执行的第1个特征设计命令),参与终端Agent p3生成并执行了设计方槽三3的方槽特征设计命令FC3,1(参与终端Agent p3生成并执行的第1个特征设计命令);然后,每一个参与终端均与各自生成并执行的所有特征设计命令以点到点的方式发送给另外两个参与终端。
由于参与终端Agent p1、Agent p2和Agent p3在各自的系统上执行的方槽特征设计命令数量均为第1个,故三个参与终端上方槽特征设计命令的特征实例标识(即方槽特征实例的编码)均为Finstcnt=1。方槽特征设计命令中的各个拓扑面的Faceinstcnt的编码/命名按照布尔运算前的实体中各个面的外法向V按照X、Y与Z三个分量的升序排列决定。结合图3,对于一个方槽来说,其包括六个拓扑面且六个拓扑面分别为前侧面5、上表面6、左侧面7、与前侧面5正对的后侧面、与上表面6正对的下表面和与左侧面7正对的右侧面。实际操作过程中,对六个拓扑面进行编码时从0到5进行,且所述后侧面、右侧面、左侧面7、下表面、上表面6和前侧面5的编号依次为0、1、2、3、4和5。
同时,此处仅以参与终端Agent p2上的特征设计命令处理为例说明本发明的特征设计命令执行文档状态确定化方法:
首先,参与终端Agent p2接收到参与终端Agent p3发送过来的FC3,1,FC3,1对应的SVcg[3]=(1,0,0),而此时参与终端Agent p2上的SVce[3]=(1,1,0),表明有一个参与终端Agent p2生成的命令FC2,1已经执行,即有FC3,1||FC2,1;进一步检查后发现,两个特征设计命令FC3,1和FC2,1的FCtid也相同,则有FC3,1||·FC2,1,根据优先级确定FC3,1和FC2,1新的执行顺序为先执行FC2,1,再执行FC3,1,且执行完后得到相应的结果。FC3,1和FC2,1两个方槽特征实例的Finstcnt依次为1和2。
紧接着,参与终端Agent p2接收到参与终端Agent p1发送过来的FC1,2,FC1,2对应的SVcg[3]=(1,0,0),而此时参与终端Agent p2上的SVce[3]=(1,1,1),表明有一个参与终端Agent p2生成的命令FC2,1以及参与终端Agent p3生成的命令FC3,1已经执行,即有FC1,2||FC2,1与FC1,2||FC3,1,进一步检查后得出三个特征设计命令的FCtid也相同,有FC1,2||·FC2,1与FC1,2||·FC3,1,根据优先级确定FC1,2、FC3,1和FC2,1新的执行顺序为先执行FC1,2,再执行FC2,1,之后再执行FC3,1,需要进行特征设计命令执行文档状态的回复,具体过程为:先进行Undo FC2,1与Undo FC3,1,再进行Do FC1,2,之后再进行Redo FC2,1与Redo FC3,1。FC3,1、FC2,1和FC1,2三个方槽特征实例的Finstcnt依次为1,2和3。
步骤三、三个参与终端Agent p1、Agent p2和Agent p3根据相同的方法处理特征设计命令FC1,2、FC2,1和FC3,1。对于拓扑边、拓扑点在特征设计命令中的引用,以边E为例进行说明,当需要对边E进行倒圆角时,特征设计命令的形式为BlendEdge(Edgern,radius),Edgern为被倒圆角边的引用名字,radius为倒圆角的半径参数。其中,Edgern的结构为(edge,2,adj_Facec/n_list,2,end_Facec/n_list),edge表明该拓扑对象的类型为一条拓扑边,邻接面和端面的个数都为2,adj_Facec/n_list为边E的两个邻接面的Facec/n,end_Facec/n_list为边E的两个端面的Facec/n。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何限制,凡是根据本发明技术实质对以上实施例所作的任何简单修改、变更以及等效结构变化,均仍属于本发明技术方案的保护范围内。
Claims (6)
1.一种在线协同设计用被引用拓扑对象编码/命名方法,其特征在于该方法包括以下步骤:
步骤一、系统配置:对参与CAD在线协同设计的多个参与终端Agent pi进行系统配置,使得所有参与终端Agent pi均具有对等的可视化交互功能、三维几何建模功能和共享数据副本;并且,任意两个参与终端Agent pi之间以点到点通信方式进行双向通讯;其中,i=1、2、3...n,n为参与终端Agent pi的数量;同时,在各参与终端Agent pi的系统内均相应建有特征命令类型菜单,所述特征命令类型菜单包括对多种立体几何单元进行引用时的特征命令类型标识FCtid,多种几何立体单元包括CAD设计中所采用的多种最基础的立体几何单元,且CAD设计时任一被设计的几何模型均为由一个或多个几何立体单元组成的组合结构;
步骤二、多个参与终端Agent pi通过交换特征设计命令方式进行协同工作,每个参与终端Agent pi的协同工作过程均相同,且每个参与终端Agent pi均能作为特征设计命令的命令生成及发送端与命令接收及执行端,对于参与终端Agent pi中的任一个参与终端Agent pj来说,其协同工作过程如下:
I、当参与终端Agent pj作为命令生成及发送端进行协同工作时,通过可视化交互方式生成特征设计命令,其工作过程包括以下步骤:
2011、本地共享数据副本加锁:调用数据加锁模块对当前的本地共享数据副本进行加锁;
2012、特征设计命令生成,其生成步骤如下:
1a、几何模型拆分:根据当前需设计几何模型的设计结构,对需设计的几何模型进行拆分,且将所述几何模型拆分成多个立体几何单元,相应将被设计的几何模型拆分成以所述立体几何单元为单位的多个拓扑对象;
1b、可视化交互:调用可视化交互模块以一个拓扑对象为单位,对组成当前被设计几何模型中的所有拓扑对象分别进行可视化交互;
1c、被引用拓扑对象编码/命名:根据步骤1b中对所有拓扑对象进行可视化交互的交互结果,调用编码/命名模块分别对各拓扑对象进行编码/命名,并相应生成多个分别与各拓扑对象相对应的编码/命名单元,完成所有被引用拓扑对象的编码/命名过程;
对任一个拓扑对象ti进行编码/命名时,相应对组成该拓扑对象ti的多个拓扑面进行编码/命名,并对应生成多个与各拓扑面相对应的编码/命名单元和一个数值参数单元,且多个编码/命名单元和一个数值参数单元与拓扑对象ti相对应;且编码/命名单元和数值参数单元生成后,参与终端Agent pj根据所述编码/命名单元自动生成拓扑对象ti中各拓扑面、各拓扑边和各拓扑点的拓扑面命名引用单元、拓扑边命名引用单元和拓扑点命名引用单元;所述编码/命名单元、数值参数单元、拓扑面命名引用单元、拓扑边命名引用单元和拓扑点命名引用单元分别通过关联单元与拓扑对象ti进行关联;
所述编码/命名单元内存储有用于表示拓扑对象ti结构类型的特征类型标识Ftid、用于表示结构类型为Ftid的图形实例的特征实例标识Finstcnt和多个分别用于表示同一个特征实例标识Finstcnt中所有拓扑面的特征拓扑面标识Faceinstcnt;所述数值参数单元内存储有用于表示拓扑对象ti大小尺寸的一组数值参数;
1d、特征设计命令生成:调用特征设计命令生成模块分别对编码/命名完成的多个编码/命名单元分别进行分析处理,并相应生成多条特征设计命令FC;所述特征设计命令FC为由三元组组成的一条文本信息,且三元组分别为用于表示与特征类型标识Ftid相对应的特征设计命令FC的命令类型标识FCtid、用于表示特征设计命令FC生成时参与终端Agent pj内部的文档状态标识SVcg[n]和特征设计命令FC的参数列表parameters,所述参数列表parameters中存有所述编码/命名单元、所述数值参数单元、拓扑面命名引用单元、拓扑边命名引用单元和拓扑点命名引用单元中所存储的所有信息;
其中,文档状态标识SVcg[n]为一个n维向量,n表示参与在线协同设计的所有参与终端的数量,SVcg[n]中的第i个分量表示参与终端Agent pj上已经执行的编号为i的参与终端Agent pi发出的与特征类型标识Ftid相对应的特征设计命令的数量;
2013、特征设计命令执行及本地共享数据副本解锁:调用执行模块对生成的多条特征设计命令FC分别进行执行,并将执行后生成的几何模型结果同步通过所述可视化交互模块反馈给用户,同时将执行结果存入特征设计命令执行历史记录;多条特征设计命令FC执行完后,调用数据解锁模块对加锁后的本地共享数据副本进行解锁,且解锁后参与终端Agent pj便作为命令接收及执行端对所接收到的来自其它Agent pk发送而来的特征设计命令FC进行执行,其中,k=1、2、3...n,且k≠j;
2014、特征设计命令发送:参与终端Agent pj将执行后的多条特征设计命令FC以点对点的通信方式并发至其它参与终端Agent pk;
II、当参与终端Agent pj作为命令接收及执行端进行协同工作时,其工作过程包括以下步骤:
2021、特征设计命令接收:参与终端Agent pj对自其它参与终端Agentpk发送而来的特征设计命令FC进行接收;
2022、本地数据库副本加锁状态判断:对本地数据库副本的当前加锁状态进行判断:当判断得出本地数据库副本处于加锁状态时,则执行步骤2024;否则执行步骤2023;
2023、特征设计命令立即执行:参与终端Agent pj立即执行步骤2021中接收到的特征设计命令FC,并将执行结果存入特征设计命令执行历史记录;且执行完后检查本地等待队列,并继续处理本地等待队列中其它处于等待状态的特征设计命令FC;
2024、特征设计命令等待执行:参与终端Agent pj将步骤2021中接收到的特征设计命令FC放入本地等待队列中进行等待处理。
2.按照权利要求1所述的一种在线协同设计用被引用拓扑对象编码/命名方法,其特征在于:步骤2023中进行特征设计命令立即执行时,其执行过程包括以下步骤:
2a、文档状态对比判断:调用文档状态比较模块对步骤2021中接收到的特征设计命令FC中的文档状态标识SVcg[n]和参与终端Agent pj当前的文档状态标识SVce[n]进行比较判断:当比较判断得出二者相等时,则执行步骤2b;否则,表明此时参与终端Agent pj上已经执行了与步骤2021中所接收特征设计命令FC为广义并发关系的特征设计命令,则执行步骤2c;
其中,文档状态标识SVce[n]为一个n维向量,n表示参与在线协同设计的所有参与终端的数量,SVce[n]中的第i个分量表示参与终端Agent pj上已经执行的编号为i的参与终端Agent pi发出的与特征类型标识Ftid相对应的特征设计命令的数量;
2b、特征设计命令直接执行:参与终端Agent pj直接执行步骤2021中接收到的特征设计命令FC,并将执行结果存入特征设计命令执行历史记录;且执行完后检查本地等待队列,并继续处理本地等待队列中其它处于等待状态的特征设计命令FC;
2c、特征设计命令执行前判断与执行:调取参与终端Agent pj上特征设计命令执行历史记录,且根据所调取的特征设计命令执行历史记录,构建出与步骤2021中所接收特征设计命令FC为广义并发关系的所有特征设计命令的特征命令集合SCg(FC);并根据特征命令集合SCg(FC)中所包括的所有特征设计命令,进一步构建出与步骤2021中所接收特征设计命令FC为狭义并发关系的所有特征设计命令的特征命令集合SCn(FC),并对特征命令集合SCn(FC)进行判断:当特征命令集合SCn(FC)为空时,则在参与终端Agent pj执行步骤2021中接收到的特征设计命令FC,并将执行结果存入特征设计命令执行历史记录,且执行完后检查本地等待队列并继续处理本地等待队列中其它处于等待状态的特征设计命令FC;当特征命令集合SCn(FC)不为空时,则执行步骤2d;
所述广义并发关系为不同Agent pi在相同文档状态下生成的特征设计命令之间的关系,即文档状态标识SVcg[n]相同的特征设计命令FC之间的关系;所述狭义并发关系为与命令类型标识FCtid相同的广义并发特征设计命令之间的关系;
2d、特征设计命令执行前处理与执行:首先,将步骤2021中接收到的特征设计命令FC加入到特征命令集合SCn(FC);之后,将本地共享数据文档恢复到特征命令集合SCn(FC)中最早执行的特征设计命令执行之前的文档状态,且在恢复后的文档状态下,先将特征命令集合SCg(FC)中除特征命令集合SCn(FC)之外的所有特征设计命令按照其原始相对先后顺序在参与终端Agent pj上执行,然后根据预置的优先级重新确定SCn(FC)中所有特征设计命令的执行顺序,并按确定后的新执行顺序执行SCn(FC)中的所有特征设计命令,并将执行结果存入特征设计命令执行历史记录;且执行完后检查本地等待队列,并继续处理本地等待队列中其它处于等待状态的特征设计命令FC。
3.按照权利要求1或2所述的一种在线协同设计用被引用拓扑对象编码/命名方法,其特征在于:步骤1c中对被引用拓扑对象ti进行编码/命名时,在对参与终端Agent pj执行拓扑对象ti对应特征设计命令FC的布尔运算之前进行编码/命名;
且编码/命名时,特征类型标识Ftid根据拓扑对象ti对应特征设计命令FC的命令类型标识FCtid来确定,且特征类型标识Ftid与命令类型标识FCtid一一对应;特征实例标识Finstcnt根据参与终端Agent pj执行拓扑对象ti对应特征设计命令FC的当前值确定;所述拓扑对象ti中所包含拓扑面的个数为m,特征拓扑面标识Faceinstcnt的编码从0到m-1进行,且进行编码时先取拓扑对象ti中所有拓扑面的外法向向量V0,V1…Vm-1,之后以V0,V1…Vm-1的三个分量为依据对拓扑对象ti的多个拓扑面进行排序,其中Vi为平面的外法向向量或曲面的平均外法向量。
4.按照权利要求3所述的一种在线协同设计用被引用拓扑对象编码/命名方法,其特征在于:所述执行拓扑对象ti由CAD设计中常规使用的扫略或拉伸方法生成,且对拓扑对象ti的多个拓扑面进行编码时,将扫略或拉伸的起始截面编码为0,结束截面编码为m-1,另外m-2个侧面顺序以构成扫略或拉伸截面的m-2条边的切向量v1,v2…vm-2来进行编码,具体是以v1,v2…vm-2的三个分量为依据对m-2个拓扑面进行编码,m-2个侧面的编码与扫略或拉伸截面的对应边的编码相同。
5.按照权利要求2所述的一种在线协同设计用被引用拓扑对象编码/命名方法,其特征在于:步骤2d中按确定后的新执行顺序执行SCn(FC)中的所有特征设计命令后,便完成特征设计命令执行后文档状态的确定化,此时根据参与终端Agent pj执行拓扑对象ti对应特征设计命令FC的当前值确定特征实例标识Finstcnt。
6.按照权利要求3所述的一种在线协同设计用被引用拓扑对象编码/命名方法,其特征在于:所述拓扑面命名引用单元的命名形式为Facern=(eletypeid,adj_face_number,adj_Facec/n_list);
所述拓扑边命名引用单元的命名形式为Edgern=(eletypeid,adj_face_number,adj_Facec/n_list,end_face_number,end_Facec/n_list);
所述拓扑点命名引用单元的命名形式为Vertexrn=(eletypeid,adj_face_number,adj_Facec/n_list);
其中,eletypeid表示被引用拓扑元素的类型且其用于区分拓扑面、拓扑边和拓扑点三种拓扑元素,adj_face_number表示被引用拓扑元素的邻接面的个数,end_face_number表示被引用拓扑边两个端部的端面的个数,adj_Facec/n_list表示被引用拓扑元素的邻接面的编码/名字属性列表,end_Facec/n_list表示被引用拓扑边的端面的编码/名字属性列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101901312A CN101882173B (zh) | 2010-06-02 | 2010-06-02 | 一种在线协同设计用被引用拓扑对象编码/命名方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101901312A CN101882173B (zh) | 2010-06-02 | 2010-06-02 | 一种在线协同设计用被引用拓扑对象编码/命名方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101882173A CN101882173A (zh) | 2010-11-10 |
CN101882173B true CN101882173B (zh) | 2012-08-22 |
Family
ID=43054186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101901312A Expired - Fee Related CN101882173B (zh) | 2010-06-02 | 2010-06-02 | 一种在线协同设计用被引用拓扑对象编码/命名方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101882173B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10437938B2 (en) * | 2015-02-25 | 2019-10-08 | Onshape Inc. | Multi-user cloud parametric feature-based 3D CAD system |
CN105183451B (zh) * | 2015-07-30 | 2018-11-02 | 浪潮金融信息技术有限公司 | 一种确定调用关系的方法和多维程序管理装置 |
CN110502574B (zh) * | 2019-07-22 | 2023-04-11 | 平安科技(深圳)有限公司 | 跨系统的信息同步方法、用户设备、存储介质及装置 |
CN110415807B (zh) * | 2019-07-30 | 2020-04-17 | 南京林业大学 | 一种康复设备协同工作方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1746896A (zh) * | 2005-10-14 | 2006-03-15 | 清华大学 | 基于vrml模型的有约束协同装配工艺规划的仿真方法 |
US7272546B1 (en) * | 2003-01-21 | 2007-09-18 | Altera Corporation | Apparatus and methods for importing hardware design and generating circuit interfaces |
CN101308518A (zh) * | 2008-06-11 | 2008-11-19 | 武汉大学 | 用于复制式协同建模系统的拓扑元素名字对应方法 |
-
2010
- 2010-06-02 CN CN2010101901312A patent/CN101882173B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272546B1 (en) * | 2003-01-21 | 2007-09-18 | Altera Corporation | Apparatus and methods for importing hardware design and generating circuit interfaces |
CN1746896A (zh) * | 2005-10-14 | 2006-03-15 | 清华大学 | 基于vrml模型的有约束协同装配工艺规划的仿真方法 |
CN101308518A (zh) * | 2008-06-11 | 2008-11-19 | 武汉大学 | 用于复制式协同建模系统的拓扑元素名字对应方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101882173A (zh) | 2010-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110909972B (zh) | 一种基于bim的钢结构全寿命周期的管理系统及方法 | |
CN106296378B (zh) | 基于xbrl的智能财务云平台系统、构建方法及业务实现方法 | |
CN108665248A (zh) | 基于bim的建筑信息集成管理系统及构建方法 | |
CN101882173B (zh) | 一种在线协同设计用被引用拓扑对象编码/命名方法 | |
CN102117367A (zh) | 飞机装配现场可视化仿真系统 | |
Aouad et al. | An IT map for a generic design and construction process protocol | |
CN101377796B (zh) | 一种基于过程恢复的异构cad系统间参数化特征模型的数据交换方法 | |
CN114140083A (zh) | 一种基于建筑信息模型的通用数据环境应用系统 | |
CN105447253A (zh) | 一种三维工艺数据的集成方法 | |
CN115168971A (zh) | 基于构件参数库的装配式建筑设计与建造一体化协同方法 | |
CN109977496A (zh) | 高效信息交流和协同工作的建筑工程图模一体系统和方法 | |
CN110362936A (zh) | 基于bim技术的电站小管道二次设计施工方法 | |
KR102039974B1 (ko) | 객체의 위치별 작업분류체계와 자동 수량 산출을 이용한 wbs 공사비 자동산출 시스템 및 방법 | |
CN115293106A (zh) | 一种基于bim物料清单三码体系成本应用方法 | |
Tan et al. | BIM-enabled design for manufacture and assembly | |
CN102799960A (zh) | 面向数据模型的并行业务流程异常检测方法 | |
Helmann et al. | Reference architectures for Industry 4.0: Literature review | |
Voss et al. | A BPMN-based process map for the design and construction of façades | |
Bennett et al. | Construction health and safety, BIM and cloud technology: Proper integration can drive benefits for all stakeholders | |
CN115796972B (zh) | 一种基于bim技术的量价融合实现方法 | |
CN105956346A (zh) | 一种铝合金模板设计系统和方法 | |
CN111160703A (zh) | 一种基于RESTful架构的工作流引擎装置 | |
Wefki et al. | BIM-based schedule generation and optimization using genetic algorithms | |
CN102663789A (zh) | 将二维平面内含洞及岛的多边形三角化的方法 | |
CN116244789A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120822 Termination date: 20150602 |
|
EXPY | Termination of patent right or utility model |