sld文件格式的研究
utoCAD 幻灯片文件是由 MSLIDE 命令写入并由 VSLIDE 命令读取的屏幕图像。 本节介绍幻灯文件的格式,以便于希望在程序中融入幻灯支持的开发人员进行开发。
幻灯文件由标题部分(31 字节)以及一个或多个可变长度的数据记录组成。 写入幻灯文件的所有坐标和大小都基于创建幻灯时显示设备的图形区,点 (0,0) 位于图形区的左下角。 对于 AutoCAD R9 以及更高版本,幻灯文件标题由以下字段组成:
幻灯文件标题 | ||
---|---|---|
字段 |
字节 |
说明 |
ID 字符串 |
17 |
“AutoCAD 幻灯片”CR LF ^Z NUL |
类型标识符 |
1 |
当前设置为 56(十进制) |
层指示器 |
1 |
当前设置为 2 |
高 X 点 |
2 |
图形区域的宽度:1,以像素为单位 |
高 Y 点 |
2 |
图形区域的高度:1,以像素为单位 |
宽高比 |
4 |
绘图区域宽高比(以英寸为单位的水平尺寸/竖直尺寸),按 10,000,000 缩放。 通常以低位字节在前的方式写入此数值 |
硬件填充 |
2 |
0 或 2(值不重要) |
测试数字 |
2 |
一个数字(十六进制值 1234),用于确定是以高阶字节在前的顺序(适用于 Intel 8086 系列 CPU)还是以低阶字节在前的顺序(适用于 Motorola 68000 系列 CPU)写入幻灯片中所有的双字节值 |
标题后面是数据记录。 每个数据记录的开头为双字节的字段,其高位字节表示记录的类型。 记录的其余部分可由单字节或双字节的字段组成,如下表所述。 要确定双字节字段是以高阶字节在前的顺序还是以低阶字节在前的顺序写入,请查看上表说明的标题的“测试数字”字段。
幻灯文件数据记录 | |||
---|---|---|---|
记录类型 (十六进制) |
字节 |
含义 |
说明 |
00-7F |
8 |
矢量 |
普通矢量的 from-X 坐标。 并按照后面是 from-Y、to-X 和 to-Y 坐标的顺序作为双字节值。 from- 点保存为上一点 |
80-FA |
— |
未定义 |
保留以供将来使用 |
FB |
5 |
偏移矢量 |
低阶字节和其后的三个字节根据距保存的上一点的偏移量(-128 到 +127)来指定矢量的端点 (from-X,from-Y,to-X,to-Y)。 将经过调整的 from- 点保存为上一点,以供后续矢量使用 |
FC |
2 |
文件结尾 |
低阶字节为 00 |
FD |
6 |
实体填充 |
低阶字节始终为零。 后面的两个双字节值指定要进行实体填充的多边形的一个顶点的 X 坐标和 Y 坐标。 会依次出现三到十个这样的记录。 Y 坐标值为负的实体填充记录表示这种填充序列的开始或结束。 在起点记录中,X 坐标指示要跟随的顶点记录的数目 |
FE |
3 |
常用 端点 矢量 |
这是一个以上一点作为起点的矢量。 低阶字节和其后的字节根据距保存的上一点的偏移量(-128 到 +127)来指定 to-X 和 to-Y。 将经过调整的 to- 点保存为上一点,以供后续矢量使用 |
FF |
2 |
新建颜色 |
使用由低阶字节指示的颜色号绘制后续矢量 |
只要幻灯片包含矢量,“新建颜色”记录将是第一个数据记录。 幻灯片中矢量的顺序和这些矢量端点的顺序可能会变化。
例如,以下是在安装有 IBM 增强型图形适配器的 IBM PC/AT 上创建的简单幻灯文件的十六进制转储(标有注释)。 幻灯片包含一条从绘图区域左下角到右上角的白色对角线、一条位于左下角附近的绿色垂直线以及一个在左下角处的红色小矩形。
41 75 74 6F 43 41 ID 字符串(“AutoCAD 幻灯片”CR LF ^Z NUL)
44 20 53 6C 69 64
65 0D 0A 1A 00
56 类型标识符 (56)
02 层指示器 (2)
3C 02 高 X 点 (572)
24 01 高 Y 点 (292)
0B 80 DF 00 宽高比 (14,647,307 / 10,000,000 = 1.46)
02 00 硬件填充 (2)
34 12 测试数字 (1234 十六进制)
07 FF 新建颜色(7 = 白色)
3C 02 24 01 00 00 00 00 从 572,292 到 0,0 的矢量。 (572,292) 成为“上一个”点
3 FF 新建颜色(3 = 绿色)
0F 00 32 00 0F 00 13 00 从 15,50 到 15,19 的矢量。 \x1115,50 成为 “上一个”点
01 FF 新建颜色(1 = 红色)
12 FB E7 12 CE 从 15+18,50-25 (33,25) 到 15+18,50-50 (33,0) 的偏移矢量。50-50 (33,0). (33,25)成为“上一个”点
DF FE 00 从 33,25 到 33-33,25+0 (0,25) 的公共端点矢量。(0,25). (0,25)成为“上一个”点
00 FE E7 从 (0,25) 到 0+0,25-25 (0,0) 公共端点的矢量。(0,0). (0,0)成为“上一个”点
21 FE 00 从 (0,0) 到 0+33,0+0 (33,0) 公共端点矢量。(33,0)成为“上一个”点
00 FC 文件结尾