明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1932|回复: 14

[图形系统] 解析DWG

[复制链接]
发表于 2024-11-30 05:28:10 | 显示全部楼层 |阅读模式
本帖最后由 你有种再说一遍 于 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?那不懂的事情多着呢...
嘻嘻.

点评

大佬厉害,曾经都是看你的博客进入C#编程,现在还在前行,顶顶顶 dwg结构分析我应用了一点,判断加密和缩略图提取http://ijpai.com/cad.html,目前还没遇到缩略图错误的,下次遇到了再去抄抄你的文案  发表于 2025-2-9 15:46
回复

使用道具 举报

 楼主| 发表于 2024-12-1 16:09:39 | 显示全部楼层
xinxirong 发表于 2024-12-1 15:54
搞了十年才发现,单线程才是最简单可靠的。

十年前没人教你PLinq无锁编程
回复 支持 反对

使用道具 举报

发表于 2024-12-1 06:17:52 来自手机 | 显示全部楼层
大神是搞底层研究的?中国最缺乏的就是这种人才。颇有美国那些做底层科研味道。
回复 支持 反对

使用道具 举报

发表于 2024-12-1 15:06:49 | 显示全部楼层
我敲lisp是为了加速画图,而你,我的大佬,你是要捣鼓一个CAD
回复 支持 反对

使用道具 举报

发表于 2024-11-30 08:08:05 | 显示全部楼层
惊佬研究这么深啦
回复 支持 反对

使用道具 举报

发表于 2024-11-30 10:05:37 | 显示全部楼层
大佬收下我的膝盖
收藏了
回复 支持 反对

使用道具 举报

发表于 2024-11-30 14:18:38 | 显示全部楼层
大佬收下我的膝盖+1
回复 支持 反对

使用道具 举报

发表于 2024-12-1 08:42:26 | 显示全部楼层
大神,收藏了。
回复 支持 反对

使用道具 举报

发表于 2024-12-1 15:54:42 来自手机 | 显示全部楼层
搞了十年才发现,单线程才是最简单可靠的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-4-1 09:44 , Processed in 0.377816 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表