“最近在社群中看到几个帖子,反馈说 KiCad 9 打开 PCB 时出现问题,所有工作都丢失了。这的确是一个bug,会在特定情况下发生。”
问题描述
当使用 KiCad 9(无论是 9.0.1 还是 9.0.2)打开某些 PCB 文件时会出现类似上图设计对象不显示的情况。调整外观面板的显示设置也不起任何作用。这时用户会误以为 PCB 文件损坏,出现了内容丢失的情况,非常着急。
问题复现步骤
使用任意版本的 KiCad 9 创建一个新的 PCB 文件,随意放一些器件或者导线,保存。
使用 KiCad 8.0.8 或以下的版本尝试打开这个 PCB 文件,因为版本原因会提示无法打开。
此时再用 KiCad 9 尝试打开这个 PCB,发现 PCB 内容不可见。
遇到该现象的用户通常同时安装了 KiCad 8 和 9 两个版本,且双击默认使用 KiCad 8 打开 PCB,从而触发了步骤 2. 问题仅限于 8.0.8 或 以下版本,8.0.9 不会产生问题。
问题原因分析
问题是由*.kicad_prl这个文件导致的:
该文件用来记录项目中的一些设置,比如 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。
当尝试使用 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 开发笔记
插件应用
发布记录
审核编辑 黄宇
-
pcb
+关注
关注
4373文章
23559浏览量
412477 -
KiCAD
+关注
关注
5文章
279浏览量
9687
发布评论请先 登录
用VSCode编写自己的KiCad插件(上)详细步骤教程

abg欧博DFM支持KiCad PCB了

KiCad 与 Altium Designer 图纸互转详解

KiCad 直播系列活动预告(一):KiCad 9 新功能揭秘

KiCad 9 引入新的API机制

KiCad 9 探秘(二):多通道设计工具

Kerman的KiCad学习笔记:第6章 PCB设计流程

KiCon演讲回顾(一):KiCad 9 功能及 K10 预览
KiCad PCB中原点的设置与使用

在KiCad中使用AD的封装库(Pcblib)

评论