Kiri凭什么同时支持KiCad 5到9?深度解析kicad-cli、xdotool与plotgitsch三条原理图导出路线

发布时间:2026/8/25 17:26:34
Kiri凭什么同时支持KiCad 5到9?深度解析kicad-cli、xdotool与plotgitsch三条原理图导出路线 Kiri凭什么同时支持KiCad 5到9深度解析kicad-cli、xdotool与plotgitsch三条原理图导出路线【免费下载链接】kiriKiri is a visual tool designed for reviewing schematics and layouts of KiCad projects that are version-controlled with Git.项目地址: https://gitcode.com/gh_mirrors/ki/kiriKiriKiCad Revision Inspector是一款面向 Git 版本管理工程的 KiCad 原理图与 PCB 布局审查工具。它的核心价值在于跨版本兼容无论你的工程停留在 KiCad 5、6 还是最新的 8/9Kiri 都会自动检测环境在 kicad-cli、xdotool、plotgitsch 三条原理图导出路线之间智能切换把不同 commit 的图纸渲染成 SVG再放进浏览器里逐页、逐层对比。本文将带你拆解这套三条路线的设计原理。Kiri 是什么把图纸审查搬进浏览器Kiri 的思路很朴素先导出再对比。它会遍历仓库里的历史提交为每个版本生成原理图 / 布局的 SVG 图片然后用内置的 Web 界面assets/index.htmlassets/kiri.js让你在浏览器里穿梭 commit、翻页、切层查看差异。启动只需一行命令在项目仓库内运行kiri即可自动找到.pro/.kicad_pro文件kiri [OPTIONS] [KICAD_PROJECT_FILE]下面是逐页对比原理图的界面效果三条原理图导出路线总览不同 KiCad 版本的图纸 → 图片能力差异很大Kiri 的策略是按环境自动分流。路由判断集中在bin/kiri主脚本的generate_schematic_artifacts()函数中对应关系一目了然你的环境导出路线工作原理KiCad 7 / 8 / 9kicad-cli官方命令行直接转 SVG全程无窗口KiCad 6xdotoolmacOS 用 cliclick模拟键盘鼠标操作 GUI 完成导出KiCad 5plotgitsch / plotkicadsch独立解析旧版.sch文本文件路线一kicad-cli 命令行导出KiCad 7 及以上 kicad-cli 是 KiCad 7 引入的官方命令行工具也是 Kiri 最推荐的路线——文本进、SVG 出稳定且高效。bin/kiri中实际执行的导出命令形如kicad-cli sch export svg --black-and-white --no-background-color --output ./sch myboard.kicad_sch这里有个容易踩的坑kicad-cli 用原理图页的标题而非文件名命名输出。如果图纸标题和文件名不一致新旧版本之间就无法一一对应。Kiri 的解法是预先解析页表sheet hierarchy导出后把 SVG 逐个重命名回文件名保证跨版本的页对齐——这也是 Kiri 在 commit 对比时图片能正确配对的底层保证。路线二xdotool 模拟 GUIKiCad 6 专属KiCad 6 没有 kicad-cliKiri 只好亲自动手启动 KiCad 图形界面用 xdotool 模拟按键完成导出macOS 上则由bin/plot_kicad_sch_macos配合 cliclick 完成需授予终端辅助功能权限。这套GUI 自动化有几个精妙细节都藏在bin/kicad_version_xdotool里强制英文环境设置LC_ALLC.utf8因为菜单快捷键依赖英文界面统一键盘布局先setxkbmap us结束后再还原避免中文键盘布局导致快捷键失灵定位窗口用xdotool search --classname kicad找到 KiCad 主窗口再定向发送按键。例如获取 KiCad 完整版本号模拟的正是帮助 → 关于 → 复制版本号的连招alth → Up → Return → altc——连版本号都是点出来的。⚠️ 需要说明这条路线依赖 X 服务器Windows 下需 Xming / MobaXterm 等 X 服务官方文档也直言它远非理想方案能升级 KiCad 7 的建议优先用 kicad-cli。路线三plotgitsch 解析旧版 .schKiCad 5KiCad 5 的.sch是纯文本 S-表达式Kiri 通过 OCaml 编写的 plotgitsch / plotkicadsch 工具源码位于submodules/plotkicadsch/子模块直接解析文件导出 SVG其中 plotgitsch 可一次处理整个工程的所有页面。两个值得注意的工程细节统一图片风格Kiri 用自写的bin/git-imgdiff替换了 plotgitsch 自带的同名工具并通过bin/plotgitsch_svg_tweaks对 SVG 做统一修整保证三条路线导出的图片风格一致失败兜底若 plotkicadsch 导出失败bin/kiri会自动降级尝试 xdotoolLinux或 cliclickmacOS路线尽力保证图纸出得来。当仓库里同时存在 KiCad 5.sch和 KiCad 6.kicad_sch两个版本的图纸时Kiri 会分别为它们选路并直接在界面上呈现跨版本的对比效果布局层导出为什么不走 kicad-cli一个容易忽略的例外PCB 布局layout的导出对所有版本都使用 KiCad-Diffsubmodules/KiCad-Diff/子模块而不是 kicad-cli。原因是速度——KiCad-Diff 基于 Python 的pcbnew库可以一次性导出所有层而kicad-cli pcb export svg一次只能导一层逐层调用明显更慢。当然你也可以用-k / --kicad-cli参数强制改用 kicad-cli 导出布局。逐层对比布局的界面效果如下版本探测所有分支判断的起点三条路线的入口选择始于对 KiCad 版本的探测。bin/kicad_version.py直接导入pcbnew库调用GetBuildVersion()输出 major/minor/patch 版本号macOS 下还会把 KiCad.app 内部打包的 Python 路径注入sys.path供主脚本做分支判断探测失败时默认按 KiCad 5 处理。快速安装从 clone 到 30 秒跑起来第 1 步获取代码git clone https://gitcode.com/gh_mirrors/ki/kiri第 2 步一键安装依赖运行install_dependencies.sh它会自动识别你的包管理器apt / dnf / pacman / brew安装 git、opam、kicad、xdotool、imagemagick 等并通过 opam 安装 plotgitsch 所需的 OCaml 库。第 3 步安装 Kiri运行install_kiri.sh默认装入~/.local/share/kiri再按 INSTALL.md 配置KIRI_HOME与PATH环境。使用小技巧在 Web 界面中按i键随时查看快捷键清单用方向键快速穿梭 commit、原理图页和布局层比鼠标快得多另外运行install_plugin.sh可以把 Kiri 集成进 KiCad 工具栏kicad/plugin/kiri_v5/与kicad/plugin/kiri_v6/分别对应 KiCad 5 和 6 的插件目录审查图纸再也不用离开 EDA 环境。小结跨版本兼容 版本探测 三条路线 自动兜底Kiri 支撑 KiCad 5 到 9 的秘密并不神秘探测版本 → 选最合适的导出路线 → 失败时自动降级。kicad-cli 负责新版的高效稳定xdotool / cliclick 补上 KiCad 6 的历史空窗plotgitsch 兜住 KiCad 5 的旧格式——三者殊途同归最终都输出可在浏览器中逐页对比的 SVG。这正是 Kiri 在 KiCad 原理图 Git 审查这个细分场景里能通吃全版本的原因。【免费下载链接】kiriKiri is a visual tool designed for reviewing schematics and layouts of KiCad projects that are version-controlled with Git.项目地址: https://gitcode.com/gh_mirrors/ki/kiri创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考