“ 最近在社群中看到几个帖子,反馈说 KiCad 9 打开 PCB 时出现问题,所有工作都丢失了。这的确是一个bug,会在特定情况下发生。 ”
hv0rlfakzez64060626117.png
问题描述当使用 KiCad 9(无论是 9.0.1 还是 9.0.2)打开某些 PCB 文件时会出现类似上图设计对象不显示的情况。调整外观面板的显示设置也不起任何作用。这时用户会误以为 PCB 文件损坏,出现了内容丢失的情况,非常着急。
问题复现步骤使用任意版本的 KiCad 9 创建一个新的 PCB 文件,随意放一些器件或者导线,保存。使用 KiCad 8.0.8 或以下的版本尝试打开这个 PCB 文件,因为版本原因会提示无法打开。此时再用 KiCad 9 尝试打开这个 PCB,发现 PCB 内容不可见。[/ol]遇到该现象的用户通常同时安装了 KiCad 8 和 9 两个版本,且双击默认使用 KiCad 8 打开 PCB,从而触发了步骤 2.问题仅限于 8.0.8 或 以下版本,8.0.9 不会产生问题。问题原因分析
问题是由 *.kicad_prl 这个文件导致的:
mxvkteyupzy64060626217.png
该文件用来记录项目中的一些设置,比如 PCB 中层的可见性、透明度,选择过滤器的勾选情况等。以下是一个 kicad_prl 的实例:
{ "board": { "active_layer": 0, "active_layer_preset": "All Layers", "auto_track_width": true, "hidden_netclasses": [], "hidden_nets": [], "high_contrast_mode": 0, "net_color_mode": 1, "opacity": { "images": 0.6, "pads": 1.0, "shapes": 1.0, "tracks": 1.0, "vias": 1.0, "zones": 0.6 }, "selection_filter": { "dimensions": true, "footprints": true, "graphics": true, "keepouts": true, "lockedItems": false, "otherItems": true, "pads": true, "text": true, "tracks": true, "vias": true, "zones": true }, "visible_items": [], "visible_layers": "fffffff_ffffffff", "zone_display_mode": 0 }, "git": { "repo_password": "", "repo_type": "", "repo_username": "", "ssh_key": "" }, "meta": { "filename": "prl_test.kicad_prl", "version": 3 }, "net_inspector_panel": { "col_hidden": [ false, false, false, false, false, false, false, false, false, false ], "col_order": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "col_widths": [ 162, 147, 91, 67, 91, 91, 91, 71, 91, 91 ], "custom_group_rules": [], "expanded_rows": [], "filter_by_net_name": true, "filter_by_netclass": true, "filter_text": "", "group_by_constraint": false, "group_by_netclass": false, "show_unconnected_nets": false, "show_zero_pad_nets": false, "sort_ascending": true, "sorting_column": 0 }, "open_jobsets": [], "project": { "files": [] }, "schematic": { "selection_filter": { "graphics": true, "images": true, "labels": true, "lockedItems": false, "otherItems": true, "pins": true, "symbols": true, "text": true, "wires": true } }}问题就出在 32 行的 visible_layers。
kteovbismlv64060626317.jpg
当尝试使用 KiCad 8.0.8 及以下版本打开 KiCad 9 的文件时,虽然提示打不开,也并没有修改 PCB 的内容,但确意外修改了 kicad_prl 文件中的内容,导致了 bug 的产生。
其实 PCB 文件并没有损坏,只是因为 kicad_prl 文件中的设置导致层被隐藏了,且无法通过 GUI 恢复。
开发者已经定位到了问题,会在 9.0.3 的版本中修复。
短期解决方案
如果您已经遇到了这个问题,不要着急。其实解决起来很简单:直接删除 kicad_prl 文件重新尝试打开 PCB 即可。
结束语如果遇到可能的数据丢失问题,首先不用惊慌。可以先查看下文件的大小或者用文本编辑器打开,查看内容是否正常。
另外,建议打开自动备份功能,这样即使遇到意外情况,也可以尽可能减小数据丢失的损失。关于自动备份的设置,可以参考:KiCad 中的自动保存与备份。
注意:如果想第一时间收到 KiCad 内容推送,请点击下方的名片,按关注,再设为星标。
常用合集汇总:
和 Dr Peter 一起学 KiCad
KiCad 8 探秘合集
KiCad 使用经验分享KiCad 设计项目(Made with KiCad)常见问题与解决方法KiCad 开发笔记插件应用
发布记录 |