你有种再说一遍 发表于 2024-11-30 05:28:10

解析DWG

本帖最后由 你有种再说一遍 于 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?那不懂的事情多着呢...
嘻嘻.

你有种再说一遍 发表于 2024-12-1 16:09:39

xinxirong 发表于 2024-12-1 15:54
搞了十年才发现,单线程才是最简单可靠的。

十年前没人教你PLinq无锁编程

pxt2001 发表于 2024-12-1 06:17:52

大神是搞底层研究的?中国最缺乏的就是这种人才。颇有美国那些做底层科研味道。

cghdy 发表于 2024-12-1 15:06:49

我敲lisp是为了加速画图,而你,我的大佬,你是要捣鼓一个CAD

Wanda 发表于 2024-11-30 08:08:05

惊佬研究这么深啦

Syu 发表于 2024-11-30 10:05:37

大佬收下我的膝盖
收藏了

edrise 发表于 2024-11-30 14:18:38

大佬收下我的膝盖+1

gf123 发表于 2024-11-30 14:35:03

厉害厉害。。。

season_88 发表于 2024-12-1 08:42:26

大神,收藏了。

xinxirong 发表于 2024-12-1 15:54:42

搞了十年才发现,单线程才是最简单可靠的。
页: [1] 2
查看完整版本: 解析DWG