【KiCad】KiCon Q&A 问答 文字摘录
Q1:在 Ubuntu 上安装了 ngspice,但在 KiCad 中使用时报错A:可能在 Ubuntu 上安装了不同版本的 ngspice, 但 KiCad 会使用特定版本的 ngspice。建议先删除所有的 ngspice,然后重新安装 KiCad。
Q2:KiCad 7 开始,NetClass网络类的定义发生了巨大的变化,只能使用通配符或正则表达式来定义,无法使用老版本中手动选择、依次添加的方式。很多用户都不习惯,有可能把 NetClass 的定义方式改回去吗?
A:我知道很多习惯了旧方法的人不喜欢新的定义方式。其实有另外一种很多人都不知道的定义网络类的方式,可以直接在原理图编辑器中右键点击网络,然后选择 “关联网络类” 来进行网络类的分配:我们不会把 NetClass 的定义方式改回去。如果你习惯了用通配符或正则表达式,会发现这种方法也相当好用。
Q3:还是关于网络类的问题,如果在原理图上使用 添加网络类标识符(Add netclass directives label)的方法将网络添加到网络类时,在原理图设置中的网络类(NetClass)页面无法看到该网络。也就是说,没有一个统一的地方可以查看所有网络类及网络类成员。
A:好问题,这可能是一个 issue,我们以前没有注意到。但有一种变通的方式,在 PCB 里使用快捷键 Ctrl+G,可以打开 “显示搜索面板”,在里面可以看到所有网络所属的网络类。KiCad 8 之后支持对网络类排序,这样就可以知道网络类中包含哪些成员了。
如果您有任何问题或者需要某些新功能,请在 KiCad 论坛或者 Gitlab 上提出详细的描述,如果英语不方便的话可以用中文!我们会用机器翻译看到您的诉求!
Q4:我有个 KiCad 和 FreeCad 集成的问题。是否可以谈一下 KiCad 和其他软件社区的合作?A:目前只有一些松散的合作,比如导出 3D step 文件,但是还没有正式的集成。如果可以使用 parametric model 把 PCBA 导入到 freecad 中会相当有意义。FreeCad 有一款插件叫 kicadStepUpMod,可以实现基本的 ECAD-MCAD 双向同步功能,可以尝试使用。
Q5:KiCad 是否有类似 Git 的功能?A:是我的错,没有放在功能介绍中。KiCad 8 将支持 Git!你将可以直接从 repository 中拉取或下载您的项目,修改后重新 push 到你的 repository。您现在就可以尝试 KiCad 的 nightly build,试用这一功能并提出建议反馈。
Q6:在早晨的如何为 KiCad 做贡献演讲中,您提到了库(Library)的贡献。目前有很多公司,比如 SnapEDA,已经创建了很多不错的符号库、封装库和3D。KiCad 库的版权和 License 是怎么样的?感觉建库的工作有很多是重复的,是否可以直接和 SnapEDA 合作,使用他们的库?A:我们也与 SnapEDA 接触过,这是家非常棒的公司。然而 SnapEDA 是一家商业公司,与 KiCad 的使命不同。KiCad 的使命是将数据开放给尽可能多的人,KiCad license(CC-NA) 允许任何人使用、修改或 distribute 这些库。而对于 SnapEDA 来说,如果有人 distribute(发布) 了他们的库,会影响他们的商业模式,也违反了版权。KiCad 无法直接使用 SnapEDA 的库因为这样违反了他们的 License。用户有一种方法可以使用 SnapEDA 的库,那就是通过 KiCad 插件,直接从 SnapEDA 的网站下载他们的库和封装。当然,原理图插件 KiCad 8 还不支持,但 KiCad 9 将会支持,我们将会使用 RPC 层的方式支持接口的使用。还有一点,SnapEDA 的库与 KiCad 库的规范(KLC)不同。
Q7:KiCad 文件以及库的格式(format)未来会改变吗?A:未来所有的格式都有可能变,每次我们增加新的功能时,都有可能改变文件格式。比如最近我们的开发者提交了一个变更,用 Tab 代替了 (4个)空格,这样用文本编辑器打开时,会干净很多。KiCad 8 会有不小的格式变化因为多了很多 KiCad 7 没有的新功能。
Q8:您刚提到 KiCad 8 将集成 Git,那是如何处理冲突(Conflict)问题的呢?A:如果你的同事对某一文件做了变更并将其 push 到 repository,同时你对相同的文件做了变更也进行 push 操作,这样就会产生冲突。我们会用两种方式处理。第一种是简单的方式,你需要决定是用他的还是你自己的。你可以根据他们的变更更新(Update)或是覆盖他们的更新。第二种比较复杂,当你获知冲突时与 push 变化的人沟通一下,如果他的变更非常重要,你会想把变更合并进来;当然,你自己的变更也很重要,你希望这两个变更同时保留。这时就会出现 merge resolution。你需要用比较工具对比两个文件的不同,并与对方协商是他将你的变更进行合并还是您将他的变更进行合并。当然这一操作需要手动进行。
Q9:我的问题也是关于比较工具了,您刚才展示了一个很棒的功能,以可视化的方式比较原理图符号及 PCB 封装?我的问题是是否有类似的可视化工具,可以比较 Git 中任意不同版本的原理图和 PCB ?A:当然可以!您可以用命令行指定两个分支进行比较,也可以比较两个不同的 commit,或是将某个 commit 与当前正在工作的文件比较。我们会尽可能使用 GUI 来展示差异。
Q10:在 EDA 工具中集成版本控制,KiCad 是先行者吗?A:我听很多人说 EDA 工具和版本管理合在一起会有很大的问题。这很正常因为历史上版本管理工具是为区分文本文件设计。虽然 KiCad 的文件格式是纯文本(plain text),但你并不想看 PCB 纯文本中的坐标信息。所以问题在于如何将纯文本与可视化的方式互相转换。这不是一个简单的问题,会相当复杂。我不知道我们是不是先行者,但我知道这个功能需求已经被提出了很久,而且 KiCad 马上就会有版本管理的功能了。我知道 Altium 也有类似的版本管理,但他们也会面临类似的问题。我希望我们可以做得更好,请将您的使用经验反馈给我们,帮助我们做得更好。
Q11:KiCad 是否会增加模块复用(Design reuse)的功能,就算类似 Altium snippet 那样简单的功能也可以?A:这个问题其实已经被讨论了很久。目前有个插件(Replicate Layout)可以实现类似的功能,它可以将这个子原理图复制,并在 PCB 中完成多通道的布局、布线的复制。该功能已经有了 Spec,我几乎能肯定 KiCad 9 将会增加这个功能。
Q12:差分对的功能会有改善吗?比如是否可以同时拖拽差分对的 Positive 和 Negative?
A:KiCad 8 中已经有了不少的改进。比如 K8 支持动态蛇形线调制(之前版本调完蛇形线后所有对象都是对立的,无法继续改动)。布线器也会有一些改进,包括线长测量和计算工具。会增加 skew 的 DRC 规则,除了目标线长规则外,允许 DRC 检查一组线的长度差是否满足一定的 tolerance。谈到拖拽,我们有一个贡献者正在做多线的拖拽(group dragging)功能,目前还不能确定 KiCad 8 是否来不及添加这一功能,不过 K9 绝对会支持。
|