解析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?那不懂的事情多着呢...
嘻嘻. xinxirong 发表于 2024-12-1 15:54
搞了十年才发现,单线程才是最简单可靠的。
十年前没人教你PLinq无锁编程 大神是搞底层研究的?中国最缺乏的就是这种人才。颇有美国那些做底层科研味道。 我敲lisp是为了加速画图,而你,我的大佬,你是要捣鼓一个CAD 惊佬研究这么深啦 大佬收下我的膝盖
收藏了 大佬收下我的膝盖+1 厉害厉害。。。 大神,收藏了。 搞了十年才发现,单线程才是最简单可靠的。
页:
[1]
2