Skip to content

一个功能完整的 C# WinForms 应用程序,用于查看、管理和转换 AutoCAD SLB(Slide Library)幻灯片库文件。支持多种格式导入导出,完整实现 AutoCAD 矢量渲染和 256 色标准颜色表。

Notifications You must be signed in to change notification settings

Hexon-X/SlbViewer

Repository files navigation

AutoCAD SLB 幻灯片库查看器

.NET 8.0 Windows License Version

一个功能完整的 C# WinForms 应用程序,用于查看、管理和转换 AutoCAD SLB(Slide Library)幻灯片库文件。支持多种格式导入导出,完整实现 AutoCAD 矢量渲染和 256 色标准颜色表。


📑 目录


✨ 功能特性

📂 文件管理

  • ✅ 打开 SLB 库文件并自动解析所有幻灯片
  • ✅ 直接打开单个 SLD 文件快速查看
  • ✅ 显示幻灯片总数和名称列表

🎨 预览渲染

  • ✅ 实时矢量渲染 AutoCAD 幻灯片数据
  • ✅ 完整支持 AutoCAD 标准 256 色索引(ACI)
  • ✅ 双栏布局:列表 + 预览区域

💾 导出功能

支持多种格式导出:

  • 图像格式:PNG、JPG、BMP、WMF(矢量)
  • CAD 格式:SLD、DXF(AutoCAD R12 兼容)
  • 批量导出:单个、多选或全部导出
  • 自定义尺寸:原始尺寸、预设尺寸或自定义尺寸
  • 背景选择:白色或黑色背景

📥 导入功能

  • ✅ 导入 SLD 文件或图像(BMP、PNG、JPG、GIF)
  • ✅ 自动将图像转换为 AutoCAD 矢量格式
  • ✅ 添加到现有库或创建新库
  • ✅ 自动处理重名和非法字符

⚙️ 管理功能

  • ✅ 幻灯片重命名(防重名、验证合法性)
  • ✅ 多选操作(Ctrl/Shift 多选)
  • ✅ 调试模式和文件诊断工具

📸 截图预览

💡 提示:添加项目截图可以让用户更直观地了解应用程序。建议添加以下截图:

  • 主界面预览
  • 幻灯片渲染效果
  • 导出对话框
  • 导入功能演示

主界面 幻灯片预览


🚀 快速开始

系统要求

  • 操作系统:Windows
  • 运行时:.NET 8.0 Desktop Runtime
  • 开发工具(可选):Visual Studio 2022 或 .NET SDK 8.0

📦 安装运行时

如果您只想运行程序,请下载并安装 .NET 8.0 Desktop Runtime:

👉 下载 .NET 8.0 Desktop Runtime

🔨 从源代码编译

  1. 克隆仓库

    git clone https://github.com/Hexon-X/SlbViewer.git
    cd SlbViewer
  2. 编译项目

    dotnet build SlbViewer.csproj
  3. 运行程序

    dotnet run

    或直接运行可执行文件:

    bin\Debug\net8.0-windows\SlbViewer.exe

📦 发布独立应用

生成独立的可执行文件(包含运行时):

dotnet publish -c Release -r win-x64 --self-contained true

发布后的文件位于 bin\Release\net8.0-windows\win-x64\publish\


📖 使用指南

基本操作

1️⃣ 打开文件

  • 打开 SLB 库文件:点击 "打开SLB库..." 按钮 → 选择 .slb 文件
  • 打开单个 SLD 文件:点击 "打开SLD文件..." 按钮 → 选择 .sld 文件

2️⃣ 预览幻灯片

  • 在左侧列表中点击幻灯片名称
  • 右侧预览区域实时显示矢量图形

3️⃣ 多选操作

  • Ctrl + 点击:多选不连续的幻灯片
  • Shift + 点击:选择连续范围

导出幻灯片

快速导出:选择幻灯片 → 点击工具栏 "导出幻灯片" 按钮

高级导出:右键菜单 → "导出幻灯片..." → 配置选项:

  • 格式:PNG、JPG、BMP、WMF、SLD、DXF
  • 范围:当前、所有、选中
  • 尺寸:原始、预设(16×16 ~ 512×512)、自定义
  • 背景:白色或黑色

导入幻灯片

  1. 点击 "导入幻灯片" 按钮
  2. 添加文件(支持 SLD、BMP、PNG、JPG、GIF)
  3. 选择模式:
    • 添加到当前库:导入到已打开的 SLB 文件(同名自动替换)
    • 创建新库:创建新的 SLB 文件
  4. 点击 "导入" 完成

⚠️ 注意:图像导入会自动转换为矢量格式,最大 800×600 像素

重命名幻灯片

右键点击幻灯片 → "重命名..." → 输入新名称 → 确定

高级功能

  • 调试模式:勾选 "显示详细调试信息" 查看解析细节
  • 文件诊断:点击 "诊断文件" 查看完整结构报告

🔧 技术说明

技术栈

  • 框架:.NET 8.0 Windows Forms
  • 语言:C# 12.0
  • 图形渲染:GDI+ (System.Drawing)
  • 文件格式:AutoCAD SLB/SLD、DXF R12、WMF、位图格式

SLB 文件格式(幻灯片库)

AutoCAD SLB 文件是包含多个幻灯片的库文件:

目录结构

  • 每个目录条目:32 字节名称 + 4 字节偏移量(小端序)
  • 目录表以空名称条目结束

SLD 文件格式(单个幻灯片)

文件头格式

AutoCAD 幻灯片有两种文件头格式:

新格式(31字节头) - 层指示器 ≠ 1

字段 字节数 说明
ID字符串 17 "AutoCAD Slide\r\n\x1a\0"
类型标识符 1 56(十进制)
层指示器 1 2(或其他非1值)
高X点 2 图形宽度(像素)
高Y点 2 图形高度(像素)
宽高比 4 按 10,000,000 缩放的整数
硬件填充 2 0 或 2
测试数字 2 0x1234(小端)或 0x3412(大端)

旧格式(34字节头) - 层指示器 = 1

字段 字节数 说明
ID字符串 17 "AutoCAD Slide\r\n\x1a\0"
类型标识符 1 56(十进制)
层指示器 1 1(标识旧格式)
高X点 2 图形宽度(像素)
高Y点 2 图形高度(像素)
宽高比 8 双精度浮点数
硬件填充 2 0 或 2
填充字节 1 保留字节

💡 重要:旧格式没有测试数字字段,默认使用小端序。新格式通过测试数字自动检测字节序。

数据记录类型

记录类型 字节数 说明
00-7F 8 普通矢量:from-X, from-Y, to-X, to-Y
FB 5 偏移矢量:相对偏移量(-128~+127)
FC 2 文件结尾
FD 6 实体填充:多边形顶点
FE 3 通用端点矢量
FF 2 新建颜色

📁 项目结构

SlbViewer/
├── Program.cs                  # 程序入口
├── MainForm.cs                 # 主窗体逻辑
├── MainForm.Designer.cs        # 主窗体 UI 布局
├── SlbReader.cs                # SLB 文件读取器
├── SlbWriter.cs                # SLB 文件写入器
├── SlideParser.cs              # 幻灯片解析器(矢量数据)
├── SlideRenderer.cs            # 幻灯片渲染器(GDI+ 绘制)
├── SlideExporter.cs            # 多格式导出器
├── ImageToSlideConverter.cs    # 图像转幻灯片转换器
├── ExportDialog.cs             # 导出对话框
├── ImportDialog.cs             # 导入对话框
├── AutoCADColors.cs            # AutoCAD 256 色表
├── SlbDiagnostic.cs            # SLB 文件诊断工具
├── AboutDialog.cs              # 关于对话框
├── SlbViewer.csproj            # 项目配置文件
├── README.md                   # 项目说明文档
└── run.bat                     # 快速运行脚本

📝 版本历史

v1.0.7 - 当前版本

  • 🐛 重大修复:支持旧版幻灯片格式(解决字节序问题)
  • 🔧 修复:大端序(Big Endian)文件头解析错误
  • 🔧 修复:旧格式幻灯片(34字节头)无法正常显示的问题
  • ✅ 完整支持线型幻灯片(如 13W100)的渲染
  • 📝 添加字节序自动检测和适配机制
  • 💡 影响:修复了约 3% 的旧格式 SLB 文件显示混乱的问题

v1.0.6

  • ✨ 新增:点(Point)对象的渲染支持
  • 🔧 优化:点的自适应大小显示(根据缩放比例调整)
  • 🐛 修复:包含点对象的幻灯片无法正常显示的问题
  • 🔧 修复:SLB 文件列表缺失最后两个文件的问题
  • 🔧 修复:%%BLANK 特殊幻灯片的解析错误

v1.0.5

  • ✨ 新增:单个 SLD 文件快速查看功能
  • ✨ 新增:工具栏导出按钮
  • 🔧 优化:DXF 导出为 R12 格式,提高兼容性
  • 🐛 修复:DXF 导出导致 AutoCAD 崩溃的问题
  • 💄 优化:界面布局,添加版本和作者信息

v1.0.0 - v1.0.4

  • 🎉 基础功能实现
  • ✅ SLB 库文件查看和预览
  • ✅ 多格式导出支持
  • ✅ 图像导入和转换
  • ✅ 幻灯片重命名功能

🤝 贡献指南

欢迎贡献代码、报告问题或提出新功能建议!

如何贡献

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

报告问题

如果您发现 Bug 或有功能建议,请在 Issues 页面创建新问题。


📄 许可证

版权所有 © 2025 DevinTTX 明经通道-东升铮

本项目仅供学习和研究使用。


👨‍💻 作者信息

  • 作者:DevinTTX
  • 单位:明经通道-东升铮
  • 联系:明经通道论坛

🙏 致谢

感谢明经通道论坛的支持与反馈。


Made with ❤️ for AutoCAD Users

About

一个功能完整的 C# WinForms 应用程序,用于查看、管理和转换 AutoCAD SLB(Slide Library)幻灯片库文件。支持多种格式导入导出,完整实现 AutoCAD 矢量渲染和 256 色标准颜色表。

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published