- 博客(20)
- 收藏
- 关注
原创 DWG 2004 格式解析系列(八) DataSection(3) AcDb:AcDbObjects
AcDb:AcDbObject section存储着整个dwg文件中的所有对象,包括object和entity。通常,这个section一般会由多个page组成。通过(二)中的方法可以容易地得到section data,并且藉由Object map根据object的handle定位到编码的数据,最后,根据object的类型解码得到具体的object。在我们得到的data中,前4个字节(CA 0D 00 00)含义未明。00000000 CA 0D 00 00 17 00 8D 01 0C 00
2022-05-15 19:15:47
1336
2
原创 DWG 2004 格式解析系列(七) DataSection(2) AcDb:Handles
简单说,AcDb:Handles section描述的是对象句柄与其存储位置的对应关系,称为ObjectMap,其结构简单易于理解。其中的存储位置,指的是该对象在AcDb:Objects section在解码解压后的数据中的绝对地址。首先要明确的是,其数据是分页存储的。每页以一个BigEndian short值表示页尺寸(page data + crc的尺寸),当页尺寸值为2(即只包含一个CRC)时,则结束。贴代码比文字描述要轻松,其实也没什么需要再描述的了。void CObjectMap::dec
2022-05-07 14:23:12
638
1
原创 DWG 2004 格式解析系列(六) DataSection (1) AcDb:Preview
我们知道,DWG的存储逻辑上是按照SECTION分组的,而且我们已经能够从DWG的数据流中解析出各种SECTION。这里的SECTION与DXF中SECTION是对应的,DXF实质上就是DWG的文本表述。自然而然,我们下一步就是解析各种SECTION。涉及的DATA SECTION为:/// \enum Section type of R2004+typedef enum _tagDwg2004SectionType{ SECTION_UNKNOWN = 0, /
2022-05-06 19:54:53
703
原创 DWG 2004格式解析系列(四) BITCODE
在学习了如何解析DWG的结构后,接下来就是解读各SECTION的内容。不过,在这之前仍然有一件事是必需要了解的,那就是DWG中的数据流的编码格式。Autodesk大概是为了减小保存文件的尺寸,将数据流按位进行了编码(个别section仍然是以字节为单位编码,如Preview),所以,本节只讲位码的编排格式。0,我总是打头阵编码名称含义B1位BB2位3B1-3位BSBit ShortBLBit LongBLLBit Long LongBD
2022-05-03 15:31:08
1821
原创 DWG 2004 解析系列(三)文件结构之2007
前文讲述了2004的文件结构,在引言中层提及2004后的dwg文件结构,除了2007外,基本相同,本文就详细讲述一下2007的文件结构。其实,从2000版后,除了文件结构的不同外(可分为2000,2004,2007三种不同结构),从文件中解析出某个SECTION的数据后,其内部编码都是相同的(即位码,计划后面再详述)。0 总体结构 总体结构依然是文件头+数据页的组织形式,主要差别在于2007的文件头的不同。对文件头的解码过程如下图: 首先从dwg文...
2022-05-02 12:50:00
2042
1
原创 DWG 2004 格式解析系列(二)文件结构
从整体上看,一个dwg文件可分为2部分:文件头和数据,数据部分是在物理上是分页(page)存储的,在逻辑上一个或多个页组成一个段(section)......
2022-04-29 21:12:18
7961
27
原创 DWG 2004 格式解析系列(一)引言
终于下定决心,把我对dwg格式的理解整理成文字。 对dwg格式的认识,可以追溯到200x年开发一款图形编辑软件的时候。除了软件本身提供的编辑功能外,也需要从外部引入矢量图形。大家都知道Autocad在国内的普及程度,因此读入dwg中的图形就是首要的需求。也许有人会说dxf不是很方便吗,干嘛非要从不公开格式的dwg中引入呢?的确,dxf是公开的格式,稍有编程能力的人都能自己解析,但是,你要使用者每次都从dwg转换到dxf,也是一件烦人的事。如果能直接读入dwg,岂不是更方便。...
2022-04-28 22:24:50
3618
7
原创 gbcbig.shx字体的BUG
在解析ACAD中的shx字体文件时,遇到了一点问题,找遍网络也没找到答案,能找到一个帖子也是提问的,如:http://www.cppblog.com/wrhwww/archive/2011/03/23/142544.html?opt=admin我在autodesk论坛上发过一个求助帖,也是无人回答。原文是这样的:-------------------------------------...
2019-05-04 21:31:55
2019
原创 已知圆弧的起点端点和凸度计算圆心
最近翻看我以前的博文,看到计算LWPLINE中凸度圆弧的圆心的公式那篇,一时竟想不起这公式是如何推导的了。(http://blog.sina.com.cn/s/blog_66349acf0102vivw.html)这里把推导过程简单描述一下,为了以后不再忘记。注:本来想发在新浪博客上,奈何人家在维护,要5月才能恢复,已经写好的文,怕丢失,就发到了这里。首先要明确lwpline...
2019-04-17 22:48:26
11713
19
原创 AutoCAD object & entity struct
http://blog.sina.com.cn/s/blog_66349acf0101d56r.html
2014-01-20 17:00:46
934
原创 AutoCAD2004 DWG 格式
http://blog.sina.com.cn/s/blog_66349acf0101d0lt.html
2014-01-20 17:00:04
984
2
原创 判断点在直线段上的方法
看到这个题目,估计很多人都会说,这么简单的问题,还写个日志。呵呵 当然,大多人的想法自然是用数学公式来计算了,我也是,而且是用的最笨的方法,看吧: 一条直线段由两个点确定,假设他们叫a和c,一个点b在这个线段上的条件是,b到a的距离和b到c的距离之和等于a到c的距离。以下假设在二维平面下。 b到a的距离 d1=sqrt((b.x-a.x)*(b.x-a.x) + (b.y-
2013-07-04 13:46:00
4524
原创 ACAD shx字体格式之 unifont
http://blog.sina.com.cn/s/blog_66349acf010149t5.html
2013-02-17 11:04:23
1184
原创 ACAD shx字体格式之BigFont
http://blog.sina.com.cn/s/blog_66349acf01014a0w.html
2013-02-17 11:03:14
2631
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人