# SlbViewer **Repository Path**: comblue/SlbViewer ## Basic Information - **Project Name**: SlbViewer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-15 - **Last Updated**: 2026-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 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 多选) - ✅ 调试模式和文件诊断工具 --- ## 📸 截图预览 > 💡 **提示**:添加项目截图可以让用户更直观地了解应用程序。建议添加以下截图: > - 主界面预览 > - 幻灯片渲染效果 > - 导出对话框 > - 导入功能演示 [主界面](screenshots/main.png) [幻灯片预览](screenshots/preview.png) --- ## 🚀 快速开始 ### 系统要求 - **操作系统**:Windows - **运行时**:.NET 8.0 Desktop Runtime - **开发工具**(可选):Visual Studio 2022 或 .NET SDK 8.0 ### 📦 安装运行时 如果您只想运行程序,请下载并安装 .NET 8.0 Desktop Runtime: 👉 [下载 .NET 8.0 Desktop Runtime](https://dotnet.microsoft.com/download/dotnet/8.0) ### 🔨 从源代码编译 1. **克隆仓库** ```bash git clone https://github.com/Hexon-X/SlbViewer.git cd SlbViewer ``` 2. **编译项目** ```bash dotnet build SlbViewer.csproj ``` 3. **运行程序** ```bash dotnet run ``` 或直接运行可执行文件: ```bash bin\Debug\net8.0-windows\SlbViewer.exe ``` ### 📦 发布独立应用 生成独立的可执行文件(包含运行时): ```bash 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](https://github.com/Hexon-X/SlbViewer/issues) 页面创建新问题。 --- ## 📄 许可证 **版权所有** © 2025 DevinTTX 明经通道-东升铮 本项目仅供学习和研究使用。 --- ## 👨‍💻 作者信息 - **作者**:DevinTTX - **单位**:明经通道-东升铮 - **联系**:明经通道论坛 --- ## 🙏 致谢 感谢明经通道论坛的支持与反馈。 ---

Made with ❤️ for AutoCAD Users