功能特性¶
本文档详细介绍了 EasyKiConverter 项目的所有功能特性。
核心功能¶
符号转换¶
EasyKiConverter 可以将 EasyEDA 符号转换为 KiCad 符号库格式(.kicad_sym)。
- 支持完整的符号几何数据转换
- 自动处理引脚信息和属性
- 保持符号的原始布局和结构
- 支持多种符号类型(电阻、电容、IC 等)
封装生成¶
从 EasyEDA 封装创建 KiCad 封装格式(.kicad_mod)。
- 支持通孔和表面贴装封装
- 完整的焊盘信息转换
- 自动处理封装边界框
- 支持复杂的封装几何形状
3D 模型支持¶
自动下载并转换 3D 模型,支持多种格式。
- 支持 WRL 格式
- 支持 STEP 格式
- 自动模型定位和缩放
- 模型偏移参数自动计算
批量处理¶
支持同时转换多个元件,提高工作效率。
- 并行数据收集
- 串行数据导出
- 实时进度显示
- 错误隔离和恢复
性能优化¶
并行转换¶
利用多核 CPU 实现并行处理。
- 基于 QThreadPool 的线程池管理
- 每个元件作为独立任务
- 线程安全的数据访问
- 智能任务调度
两阶段导出策略¶
优化批量转换性能的两阶段策略。
阶段一:数据收集(并行) - 使用多线程并行收集所有元件数据 - 充分利用多核 CPU 性能 - 异步网络请求
阶段二:数据导出(串行) - 串行导出所有收集到的数据 - 避免文件写入冲突 - 保证数据一致性
状态机模式¶
使用状态机模式管理数据收集过程。
- 清晰的状态转换
- 异步数据收集
- 提高响应速度
- 易于扩展和维护
内存优化¶
智能指针管理和内存优化。
- 使用 QSharedPointer 和 QScopedPointer
- 自动资源释放
- 减少内存泄漏
- 优化内存使用
网络优化¶
网络重试机制¶
网络请求失败时自动重试。
- 可配置的最大重试次数(默认 3 次)
- 指数退避算法计算重试延迟
- 智能错误判断
- 提高请求成功率
GZIP 解压缩¶
自动解压缩 GZIP 编码的响应数据。
- 减少数据传输量
- 加快下载速度
- 节省带宽
- 透明的解压缩过程
超时控制¶
可配置的请求超时时间。
- 默认超时时间 30 秒
- 可根据网络环境调整
- 防止长时间等待
- 提高用户体验
用户界面¶
现代化界面¶
基于 Qt 6 Quick 的流畅用户界面。
- Material Design 风格
- 卡片式布局
- 响应式设计
- 流畅的动画效果
深色模式¶
支持深色/浅色主题切换。
- 全局样式系统
- 动态主题切换
- 平滑过渡动画
- 配置持久化
实时进度¶
实时显示转换进度和状态。
- 进度条显示
- 状态文本提示
- 错误信息展示
- 结果列表展示
流畅动画¶
各种动画效果提升用户体验。
- 按钮悬停效果
- 卡片进入动画
- 状态切换动画
- 加载动画
缩略图功能¶
自动生成元件符号和封装的缩略图预览。
- 符号缩略图
- 封装缩略图
- 实时生成
- 高速渲染
LCSC 预览图¶
自动获取 LCSC 元件预览图,支持缩略图和悬停预览。
- 自动下载预览图
- 缩略图展示
- 悬停放大预览
- 缓存机制
响应式布局¶
界面能够根据窗口大小自动调整布局。
- 自适应窗口大小
- 动态组件布局
- 流畅的缩放动画
- 最佳显示效果
窗口调整¶
支持无边框窗口的拖拽和大小调整。
- 无边框设计
- 拖拽移动
- 边缘调整大小
- 全屏/窗口切换
退出确认¶
优雅的退出确认对话框,防止意外关闭。
- 退出确认对话框
- 未保存提醒
- 快捷键支持
- 安全退出
高级功能¶
图层映射系统¶
完整的嘉立创 EDA 到 KiCad 图层映射。
- 支持 50+ 图层类型
- 自动单位转换(mil 到 mm)
- 图层类型智能判断
- 支持内层映射(Inner1-32)
多边形焊盘支持¶
支持自定义形状焊盘的正确导出。
- 自动生成 primitives 块
- 坐标自动转换
- 最小尺寸优化
- KiCad 兼容性保证
椭圆弧计算¶
精确的圆弧计算,支持复杂几何形状。
- 完整移植 Python 版本算法
- SVG 弧参数解析
- 圆心和角度计算
- KiCad 格式输出
文本层处理¶
支持类型 "N" 的特殊处理和镜像文本处理。
- 类型 "N" 文本自动转换到制造层
- 底层文本镜像处理
- 显示控制支持
- 字体效果设置
覆盖文件功能¶
支持覆盖已存在的 KiCad V9 格式文件。
- 文件覆盖控制
- KiCad V9 格式专门支持
- 配置持久化
- 直观的 UI 控制
智能提取¶
支持从剪贴板文本中智能提取元件编号。
- 剪贴板支持
- 智能识别
- 批量添加
- 格式验证
BOM 导入¶
支持导入 BOM 文件批量转换元件。
- 解析 BOM 文件
- 自动提取元件编号
- 批量转换
- 结果汇总
调试功能¶
调试模式¶
支持保存原始数据和导出数据用于调试。
- 原始数据保存
- 导出数据保存
- 详细的转换日志
- 错误诊断
架构特性¶
MVVM 架构¶
采用 MVVM (Model-View-ViewModel) 架构模式。
- 清晰的职责分离
- View 负责界面展示
- ViewModel 负责状态管理
- Model 负责数据存储
- Service 负责业务逻辑
详细架构说明请参考:ARCHITECTURE.md
弱网容错优化¶
针对弱网环境的多重容错机制。
- 超时保护: NetworkWorker 统一超时机制,默认 30-45 秒
- 智能重试: 超时后允许重试,递增延迟策略(3s/5s/10s)
- 指数退避: 速率限制时采用指数退避策略(初始 1s,上限 8s)
- 随机抖动: 重试延迟添加 +/-20% 随机抖动,缓解惊群效应
- 内存泄漏修复: 修复 thread_local QNAM 内存泄漏问题
- 容错导出: 3D 模型导出失败不影响符号/封装导出
详见: 弱网支持分析
开发工具¶
版本管理工具¶
自动同步项目版本信息。
manage_version.py: 统一管理 vcpkg.json、CMakeLists.txt 和 src/main.cpp 中的版本- 支持版本检查和更新
- 语义化版本验证
详见: GitHub 工具目录
代码格式化工具¶
自动化代码格式化。
format_code.bat: Windows 平台 C++ 代码格式化format_qml.bat: Windows 平台 QML 代码格式化- 基于 clang-format 和 qmlformat
- 统一代码风格
代码分析工具¶
代码质量和性能分析。
analyze_lines.py: 代码行数统计convert_to_utf8.py: 文件编码转换fix_qml_translations.py: QML 翻译修复
详见: GitHub 工具目录
设计模式¶
项目使用多种设计模式提高代码质量。
- MVVM 模式:清晰的职责分离
- 状态机模式:异步数据收集
- 两阶段导出策略:性能优化
- 单例模式:全局样式管理
- 工厂模式:导出器创建
- 观察者模式:Qt 信号槽机制
- 线程池模式:并发任务管理
兼容性¶
KiCad 版本支持¶
支持多个 KiCad 版本。
- KiCad V9 格式支持
- 向后兼容性
- 格式迁移支持
测试支持¶
QtTest 框架¶
项目集成了 QtTest 测试框架,提供完整的测试支持。
- 单元测试: 测试核心逻辑(EasyEDA API、数据模型、ViewModels)
- 集成测试: 测试组件间的交互
- 基准测试: 性能测试和基准对比
- 手动测试: UI 组件的手动测试场景
- Mock 支持: 依赖注入模式,支持 Mock 网络请求
详见: 测试指南
代码覆盖率¶
支持代码覆盖率分析(GCC/MinGW)。
- 覆盖率报告生成
- HTML 格式报告
- 覆盖率统计
- 覆盖率目标追踪
启用方法:
配置管理¶
命令行参数¶
支持通过命令行参数配置应用程序启动行为。
- 调试模式控制
- 日志级别设置
- 日志文件路径指定
- 配置文件路径指定
- 界面语言设置
- 界面主题设置
- 便携模式启用
- 帮助和版本信息显示
命令行参数优先于其他配置方式,适合自动化脚本和快速配置。
配置持久化¶
保存用户配置和偏好设置。
- 主题设置
- 导出设置
- 文件路径
- 其他用户偏好
配置导入导出¶
支持配置的导入和导出。
- 配置文件格式
- 备份和恢复
- 配置分享
扩展性¶
插件系统(计划中)¶
未来将支持插件系统。
- 自定义导出器
- 自定义图层映射
- 自定义验证规则
API 接口(计划中)¶
未来将提供 API 接口。
- 命令行接口
- 库接口
- 脚本支持
技术特性¶
C++17 特性¶
充分利用 C++17 的新特性。
- 智能指针
- Lambda 表达式
- 结构化绑定
- if constexpr
- std::optional
Qt 6 特性¶
使用 Qt 6 的最新特性。
- Qt Quick 3D
- Qt Property Bindings
- Qt Quick Controls 2
- QML 类型注册
跨平台支持¶
支持多个操作系统。
- Windows 10/11
- macOS
- Linux
安全性¶
输入验证¶
严格的输入验证。
- 元件编号格式验证
- 文件路径验证
- 配置参数验证
错误处理¶
完善的错误处理机制。
- 异常捕获
- 错误日志
- 用户友好的错误提示
- 错误恢复
可维护性¶
代码质量¶
高代码质量标准。
- 代码规范
- 代码审查
- 单元测试
- 文档完整
文档体系¶
完整的文档体系。
- 项目文档
- 架构文档
- API 文档
- 用户指南
- 开发指南
未来计划¶
短期计划¶
- 完成集成测试
- 性能优化
- 兼容性测试
- Bug 修复
中期计划¶
- 打包和发布
- 用户文档完善
- 多语言支持
- 插件系统
长期计划¶
- API 接口
- 云端服务
- 协作功能
- 更多 EDA 工具支持
技术支持¶
如果您在使用过程中遇到问题,请:
- 查阅项目文档
- 搜索现有 Issue
- 提交新的 Issue
反馈¶
我们欢迎任何形式的反馈:
- Bug 报告
- 功能建议
- 改进建议
- 文档改进
您的反馈对我们非常重要!