日志篇 协同cad
首先利用局域网通讯可以实现协同,
例如我利用Socket实现过一个功能,在A电脑的CAD画图,B电脑的CAD就跟着画出来.
然后实现的过程有个问题是,如果传数据来的时候,用户还不能操作CAD,数据读出读入时候需要锁就对了.
这个问题就要利用类似通知的方法来异步实现,也就是你不画图的时候自动根据队列载入,或者你点"载入"时候才载入.
到此为止都很容易实现.
那么关键的问题来了: 人家的图元应该是人家的,你没有更改的权限,如果要更改,需要通知对方.
唉!...这不是revit嘛!
对!...这就是revit的协同功能...所以要引入"权限"的概念...
如果是普通cad图元,建议你放弃,除非桌子加一个"用户"的功能,并且修改大量的自带命令,阻止非当前用户修改.
但是cad的二次开发也极难实现,而唯一可行的是,例如天正那种利用自定义图元加一个属性,覆盖掉所有普通图元,并且完全覆盖掉cad原始命令.
这虽然可以实现,但是工作量很大,并且如果出现普通图元,那么怎么办?转化图元?权限归属?
而非自定义图元虽然也能够通过xdata或者词典数据验证从而实现,
不过实现的情况是,国内有大量的lisp插件,虽然说覆盖cad原始命令可以处理一部分,但是lisp如果可以删除这部分图元,那么表示这个"权限"脱钩了.所有图元将会变成"你的"...
所以根本实现的方法也只能寄望cad的原生去实现.
关键是,国内cad厂商他们的协同是根据git一样的奇葩思维,所以国内cad厂商可以在这方面发力.
不过,之所以国内cad厂商不给力,主要也因为cad市场已经由大量的桌子用户形成.
加上桌子的二次开发的API提供和帮助方面已经超越了任何国内cad公司.
桌子还要求开发者写博客与二次开发们解答问题呢.
(完)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界