站点图标 CNX中文站

如何在Ubuntu 18.04 / 20.04上源码安装KiCad并导入Altium PCB文件

KiCad开源的EDA(电子设计自动化)软件套件现在非常流行,很多新项目都是用它来设计的。像 Olimex 这样的公司就将他们的新设计全都换成了 KiCAD 设计。不过,由于很多原理图和 PCB 布局都使用到了其他工具(例如 EAGLE、Orcad Allegro或Altium PCB设计工具),所以如果能够将这些设计导入KiCad EDA里就更完美了。

这个时候,我们就会想到转换器,大家使用转换器的时间也确实挺长了。比如:在2012年的时候,我就尝试过使用转换器将Beagleboard-xM OrCAD原理图转换导入KiCAD。,当时结果很糟糕,根本无法使用,所以我就放弃了。 但我最近看到Thomas 的一条推特说:现在可以将Altium文件导入KiCAD了。所以,我准备尝试一下。

Thomas推特发布的视频,点击此处可观看

现在,KiCAD发行版本暂还不支持该功能,支持这个功能的暂时只有开发版本。我估计会在以后的某个 KiCAD 发行版本中才会发布(也许是KiCAD 6.0)。如果我们今天要尝试使用它,就需要先构建 KiCAD。 所以,在开始导入Altium文件并查看其运行方式之前,我会先展示如何在Ubuntu 18.04上构建KiCAD。

Ubuntu 18.04 / 20.04上构建KiCAD

KiCAD文档网站上虽然有构建软件的通用说明,但并没有完全适用于所有Linux发行版的内容。 一开始我先使用Ubuntu 18.04.3 LTS来实现这一点,之后我又使用Ubuntu 20.04再次测试。

首先,让我们获取最新的源代码:


然后,我们应该安装一些依赖项:


大家注意,由于我之前构建了其他程序,所以,某些依赖项可能已直接安装好了。 如果你们在缺少了某些依赖项的情况下,尝试自己的Ubuntu 18.04安装,而我又没在本篇文章中提及,请直接留言告知。

我们还需要获取、构建和安装NGSpice库,因为它不是Ubuntu软件包的一部分:


注意:你们可能需要修改get_libngspice_so.sh脚本后再运行,运行时使用make -j <cores>可以加快构建的速度。

现在,我们可以按以下方式配置KiCAD了:


如果你在执行cmake命令期间出错,可以尝试使用像aptitude之类的命令去查找丢失的软件包。

成功配置后执行cmake命令,你应该会看到类似以下的输出:


开始构建KiCAD:


构建完毕后,如果要你要在系统上安装它,请运行:


现在我只想尝试一下,所以我并没有安装,而是直接在build目录中运行了可执行文件:


“ KiCad 5.99”欢迎窗口

运行之后,我们将会看到“KiCad 5.99”欢迎窗口,然后单击“确定”启动该程序。

导入Altium PCB布局文件到KiCad

Thomas在他的Twitter视频中曾以LimeSDR PCB布局作为案例示范。但我会尝试用BeagleBone Black Altium PCB布局代替,你可以在Github上找到(BeagleBoardBlack_RevA5_Altium.zip)。

起初,我试图启动Kicad打开该文件,但我找不到任何方法导入PCB布局,甚至切换到“编辑PCB”了都没找到。最终我才知道应该以独立模式打开pcbnew,然后在“File”里面存在一个“Import Non-KiCad Board File…”选项。

导入非KiCad PCB文件选项

现在我们可以过滤Altium Designer 的“.PcbDoc”文件,并加载它。

加载Altium Designer 的“.PcbDoc”文件

运行后,出现了一些运行错误。 因为Altium PCB导入功能现在仍在开发阶段,所以目前运行中遇到一些错误是可以预见的,我们先忽略这些错误。

导入Altium PCB文件出错

导入后,PCB布局的某些部分看起来还是很不错的。

导入后的效果

但在其他地方,会发现好多地方出现了相互覆盖的问题。

图形错乱

到这里我们发现,文件确实是可以导入的,但还有更多工作要做,或者说BeagleBone Black原理图基于的是一个较老版本的Altium,而KiCad导入功能却不支持该版本。

【更新:实际上,现在导入工作已经可以像预期那样正常运行了… 这就是Altium文件显示的样子。前面遇到问题可以通过代码仓里已经提交的代码来修复。】

上图相关的推特,点击链接即可查看

支持Altium原理图转换的功能即将也要推出了。对于希望导入OrCAD Allegro文件的人们,Thomas解释说,还没有针对Allegro的开源解析器,但是可以通过Allegro转 Altium文件,然后再通过Altium转 KiCad这个步骤来导入文件。 他还提到创建Allegro解析器也是有可能的,但是它们的文件格式似乎是一些自定义二进制的文件,这需要一些时间来研究。

分享这篇文章
退出移动版