[发明专利]一种基于CRDT的支持特征CAD模型的实时协同编辑方法有效
申请号: | 201810890392.1 | 申请日: | 2018-08-07 |
公开(公告)号: | CN109241571B | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 何发智;吕晓;程媛;蔡维纬 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F30/20 | 分类号: | G06F30/20;G06F111/02 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 魏波 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种基于CRDT的支持特征CAD模型的实时协同编辑方法,在本地操作处理和远程操作处理过程中都将新插入的建模操作按照全序链接到double linked list中;本发明能够支持在大规模对等网络环境下多用户实时协同编辑共享的CAD模型;本发明能够确保多用户的协同编辑的CAD模型的一致性和CAD建模历史的一致性;本发明能够提供良好的用户交互性。 | ||
搜索关键词: | 一种 基于 crdt 支持 特征 cad 模型 实时 协同 编辑 方法 | ||
【主权项】:
1.一种基于CRDT的支持特征CAD模型的实时协同编辑方法,其特征在于:每个站点都分配并实时管理一个特征依赖图CoFDG、一个hash table、一个double linked list和一个interaction interview;所述特征依赖图CoFDG是一个元组(n,p),其中n为特征结点的集合,p是指针的集合,用于指向特征结点;所述CoFDG中存储建模特征以及特征间的依赖关系;所述hash table随机存储所有的建模操作;所述double linked list全序存储所有的建模操作;所述interaction interview提供协同设计者交互的界面;给每个建模操作分配唯一的标识符ID;定义特征依赖关系⊥:给定CoFDG中的两个特征结点node1和node2,node1和node2有特征依赖关系记作,node1⊥node2,当且仅当:(1)有一个指针从node1指向node2;(2)在CoFDG中存在node3,有一个指针从node1指向node3并且有一个指针从node3指向node2;(3)node1和node2是同一个特征结点;定义依赖冲突关系
给定两个建模操作MO1和MO2来自于同一状态S,它们有依赖冲突关系记作
当且仅当:(1)它们的目标特征之间有依赖关系;(2)S·(MO1,MO2)≠S·(MO2,MO1);定义互斥关系
给定两个建模操作MO1和MO2来自同一状态S,它们有互斥关系记作
当且仅当在S状态仅有一个操作执行;定义兼容关系⊙:给定两个建模操作MO1和MO2来自同一状态S,它们有兼容关系记作MO1⊙MO2,当且仅当:(1)
(2)![]()
定义全序关系:给定任意三个操作MO1,MO2和MO3,如果全序关系存在,当且仅当:(1)MO1<MO2,或者MO2<MO1;(2)存在MO1<MO2,MO2<MO3,那么MO1<MO3;定义建模操作MO:MO是一个元组;其中,(1)t为MO的操作类型,包括插入操作,删除操作和修改操作;(2)l为一个布尔变量,值为true或者false,值为true代表本地操作,值为false代表为远程操作;(3)t_key为目标建模操作的标识符;(4)c_key为MO的唯一标识符;(5)pre_key为前一个操作的唯一标识符,用于集成本地操作;(6)visible为MO的可见性,当MO为不合理的操作时visible=0,否则visible=1;(7)next为指针,指向double linked list中下一个链接的建模操作;(8)prior为指针,指向double linked list中的前一个链接的建模操作;(9)link为链接hash table中建模操作的指针;(10)l_key为MO的依赖子操作的标识符;(11)MO执行时CAD模型的当前状态;所述方法包括本地操作处理和远程操作处理;所述本地操作处理,包括以下几个子步骤:步骤A1:判断double linked list是否为空,如果为空,执行本地操作MO,并将其链接到double linked list中头结点head后面;如果不为空,转向步骤A2;步骤A2:执行本地操作MO,并将其链接到double linked list的尾部结点;所述远程操作处理,包括以下几个子步骤:步骤B1:通过hash table和MO.t_key找到MO的目标建模操作Tar,将Tar的后面的操作记作NT,即NT=Tar.next;步骤B2:判断Tar是否为墓碑操作,如果是墓碑操作,MO不会被执行,同时也置为墓碑操作,并插入到double linked list中相应的位置;如果Tar不是墓碑操作,转向步骤B3;步骤B3:判断NT是否为空,如果NT为空,那么执行MO,并将MO链接到Tar的后面;如果NT不为空,转向步骤B4;步骤B 4:在double linked list中找MO目标执行位置,然后执行MO,并将其链接到目标执行位置后面。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810890392.1/,转载请声明来源钻瓜专利网。