- 积分
- 13342
- 明经币
- 个
- 注册时间
- 2015-8-18
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 你有种再说一遍 于 2024-12-4 23:26 编辑
2024年都不会自己做一个CAD,那和2014年有什么区别?
做一个CAD之前,我们要懂得如何解析DWG.
https://www.cnblogs.com/JJBox/p/18531399
原理只是为了让你更快知道内容如何解析,因为我们拥有许多开源的库,加之现在NET8.0有NativeAOT编译,能够冷启动,跟C
++一样的启动速度.
1,读取数据,用线程安全的字典进行包裹,这样不就是多线程的修改了吗?
2,并行遍历DWG的句柄区,这样不就获取内容也是多线程模式吗?
3,天正数据是保存到每个Page页,读取分析,不解析不也可以跳过吗?
4,查找和替换字符串,你可以见到04是混合字符串到数据中,07有个字符串区.通过它构造一个分词器和倒序索引,这样岂不是只需要O(1)时间去查找?
为什么要自己造一个CAD?
1,因为Acad阻止你并行遍历,令迭代器失效.
2,构造索引组织表的话,需要保证`修改图元接口`来维护索引组织表的更新.
3,Acad的组织方式不是内存友好,例如频繁SIMD的时候我需要摊平的数据,例如一层索引组织表+SIMD,而现在只能遍历全图.
4,显示层的填充捕捉方式引发卡顿.
5,显示层的文字编辑卡顿.
等等等等...
其实经过学习十亿行天文台数据的操作之后,
我还明白了如何更快地打开DXF文件,
不过...天正数据保存到DXF会引起CAD崩溃,
所以我就没有研究下去了,转而研究DWG读写.
什么?你还在敲Lisp?那不懂的事情多着呢...
嘻嘻. |
|