一种多人协同设计的Web-CAD方法

文档序号:36407036发布日期:2023-12-16 15:17阅读:23来源:国知局
本发明涉及计算机辅助设计(cad)领域,特别是一种多人协同设计的web-cad方法。
背景技术
::1、计算机辅助设计(cad)技术在各类设计领域中得到广泛应用,提高了设计效率和准确性。然而,传统的cad系统主要针对单用户设计场景,其协作性能较差,在多人协同设计环境中难以满足实际需求。为解决这一问题,web-cad系统应运而生,将cad功能部署在云端,实现多用户在线协同设计。尽管如此,现有的web-cad系统在处理多人协同设计时仍存在诸多不足。主要问题如下:2、(1)需要加锁。为避免多人同时修改同一设计元素引发的冲突,传统的web-cad系统通常采用加锁机制。然而,这种方法限制了多人同时操作的可能性,降低了协同效率。3、(2)粒度高:现有的web-cad系统往往以整个设计文件为操作对象,导致协同操作粒度较高。在多人协同场景下,用户可能只需修改部分元素,而不是整个文件,因此这种处理方式显得繁琐且低效。4、(3)并行度低:由于加锁和高粒度操作的限制,现有的web-cad系统在多人协同设计中并行度较低,难以充分利用计算资源,降低了系统性能。5、(4)传输效率:传输效率是多人协同web-cad系统中的一个关键问题。由于cad文件通常包含大量的图形数据和设计元素,通常客户端和服务器的传输易成为整个系统的瓶颈。技术实现思路1、针对以上问题,本发明旨在提供一种多人协同的web-cad系统,并采用细粒度锁和增量式传输的方式以解决现有技术中多人协同设计的局限性,实现高效的多人协同设计。在协同设计过程中,本发明尽可能地保留用户的意图,减少由于冲突导致的用户操作失败。2、本发明提供了一种历史树机制,最大限度得保留非意图冲突的远程过程调用(remote procedure call,简称rpc)请求。本发明提供了一种细粒度锁技术,不对整个场景加锁,仅对操作涉及的具体实体的具体拓扑结构加锁。并在三角化结束后以增量式传输的方式将rpc请求结果返回给各个客户端。具体包括如下步骤:3、(1)客户端向服务器发送本地操作指令。4、(2)服务器根据提交序号commitid判断该操作指令是否能被执行。5、(3)当步骤2操作指令能被执行时,执行客户端请求服务器需要执行的具体操作后,更新历史树history tree,新建子节点保存为操作节点的叶子节点,对当前叶节点进行扩展。在每个历史树history tree中保存当前操作结束后的commitid。服务器在空闲时根据客户端的commitid表压缩history tree。6、以下为历史树的具体结构:7、历史树(history tree)的节点地址保存在一张哈希表(hash table)中,以键key=global_id(全局标识序号),值value=node address(节点的地址)的方式索引到history tree节点,并通过history tree索引到叶子节点,并在哈希表中对操作的元素加锁。history tree的全部叶子节点通过链表连接,构成当前场景全部模型的最新状态。8、(4)操作指令完成后,将得到的结果模型进行三角化,根据三角化的粒度决定发送模型数据的粒度。将更新后的模型及其commitid以哈希表的形式保存在服务器的全局内存(global memory)中。9、(5)根据三角化后各模型的commitid,向各客户端分段发送模型数据。10、(6)客户端(web端)在收到服务器发送的模型数据后,更新本地模型,记录操作日志,以便在收到有冲突的操作结果后撤销操作。11、本发明有益效果:并采用细粒度锁和增量式传输的方式以解决现有技术中多人协同设计的局限性,实现高效的多人协同设计。在协同设计过程中,尽可能地保留用户的意图,减少由于冲突导致的用户操作失败,并且尽可能降低锁的使用频率,传输效率高,细粒度且并行度高,充分保留用户意图。技术特征:1.一种多人协同设计的web-cad方法,其特征在于,包括如下步骤:2.根据权利要求1所述的一种多人协同设计的web-cad方法,其特征在于,步骤2具体过程如下:3.根据权利要求2所述的一种多人协同设计的web-cad方法,其特征在于,步骤3中所述历史树的具体结构为:历史树的节点地址保存在一张哈希表中,并且以键key等于全局标识序号,值value等于节点的地址的方式索引到历史树节点,通过历史树索引到叶子节点,并在哈希表中对操作的元素加锁,历史树的全部叶子节点通过链表连接,构成当前场景全部模型的最新状态。4.根据权利要求3所述的一种多人协同设计的web-cad方法,其特征在于,步骤3中所述更新历史树具体操作为:新建子节点保存为操作节点的叶子节点,对当前叶节点进行扩展。5.根据权利要求4所述的一种多人协同设计的web-cad方法,其特征在于,步骤3中还包括:在每个历史树中保存当前操作结束后的commitid;6.根据权利要求5所述的一种多人协同设计的web-cad方法,其特征在于,在步骤3中,若存在提取的拓扑结构,其子孙的叶节点全部为空,则操作失败,直接跳转到步骤5。7.根据权利要求1至6任一所述的一种多人协同设计的web-cad方法,其特征在于,在步骤4中,还包括将更新后的模型及其commitid,以哈希表的形式保存在服务器的全局内存中。技术总结本发明公开了一种多人协同设计的Web‑CAD方法,该方法首先客户端向服务器发送本地操作指令,服务器判断该操作指令是否能被执行。其次当操作指令被执行时,执行客户端请求服务器需要执行的具体操作后,更新历史树,并保存当前操作结束后的提交序号。然后将得到的结果模型进行三角化,根据三角化的粒度决定发送模型数据的粒度,并根据更新三角化后的各模型的提交序号,向各客户端分段发送模型数据。最后客户端在收到服务器的模型数据后,更新本地模型,记录操作日志。本发明实现高效的多人协同设计,并且传输效率高,充分保留用户意图。技术研发人员:燕帅,唐敏,童若锋受保护的技术使用者:浙江大学技术研发日:技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1