关于 KiCad 9 打开 PCB 没有显示的问题

描述

 最近在社群中看到几个帖子,反馈说 KiCad 9 打开  PCB 时出现问题,所有工作都丢失了。这的确是一个bug,会在特定情况下发生。 

KiCAD

问题描述

当使用 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 这个文件导致的:

KiCAD

该文件用来记录项目中的一些设置,比如 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

当尝试使用 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 开发笔记

插件应用

发布记录

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分