搜索
bottom↓
回复: 12

乔恩 · 埃文斯回答 KiCad 的 6 个问题 [ 2021 年 2 月 17 日 ]

[复制链接]

出280入168汤圆

发表于 2021-6-22 21:03:50 | 显示全部楼层 |阅读模式
转自 【技术探索】

二季度无望了 ... 应该在第三季度推出。

1、 原理图不支持 Python 脚本,这个计划大概率会放到了 KiCAD 7 上;

2、 KiCAD 6 的 Python 转到了 Python 3 上,并重新设计了 API;

3、 为了保证老款 Python 插件正常工作,API 分成两个部分,所以老的那部分继续保留;

4、 文件格式做出了改变,kiCAD 5 的项目在 KiCAD 6 中打开需要升级其格式;

5、 意味着 KiCAD 5 不能打开 KiCAD 6 的项目;

6、 ... ...

=======================================
彼得:[00:00:00]乔恩·埃文斯,感谢你今天加入我。你好吗?

乔恩:[00:00:04]我很好,彼得。很高兴再次与你交谈。

彼得:[00:00:06]是的,已经有一段时间了。距离上次有机会已经过去几个月了。这次事情随着 KiCad 6 一起发展。我一直在关注这个项目,这就是我们今天决定聚在一起讨论即将推出的 KiCad 6 的原因,我认为这将是一件大事.

乔恩:[00:00:28]是的,当然。我非常期待 KiCad 6 上市并看到每个人都在使用它。

彼得:[00:00:36]完美。好吧,在我们开始回答我的问题和您的答案之前,您能否花点时间向我们介绍一下您,尤其是您在 KiCad 项目中的角色?

乔恩:[00:00:46]当然。所以,我的名字是 Jon Evans,我是 KiCad 的主要开发人员之一。我已经在这个项目上工作了一段时间了。几年来,我一直在领导开发团队,这意味着我是志愿者团队的一员,他们决定项目的方向,决定每个版本的内容,并帮助实现新功能,并修复我们的用户发现的错误。

彼得:[00:01:13]完美。我在考虑这个是因为我最近写了一篇关于 KiCad 6 的文章。我花了几个星期来玩 - 它还不是候选版本。它的代号为 5.99,它的夜间构建最终将成为 KiCad 6。所以,我花了几个星期来玩弄它并将它与 KiCad 5 进行比较,并写了一篇关于它的文章。人们阅读它并向我发送问题。我想,“好吧,谁最适合回答这些问题?” 那就是你,这就是为什么我邀请你和我一起参加这个会议。所以,我也有一些问题。这些问题大多来自读者。所以,如果你准备好了,我可以开始问了。

乔恩:[00:02:02]我们走吧。

彼得:[00:02:03]好的。第一个来自我,但这是我从很多人那里得到的一个问题,这与 KiCad 6 时间线有关。而且,您知道,您大概什么时候认为 KiCad 6.0 可能会发布?

乔恩:[00:02:18]这是最大的问题,不是吗?我也经常听到这样的话。所以,你知道,我们是一个开源项目,我们正在通过志愿者的工作完成工作。这些志愿者正在努力开发 KiCad,但他们的余生也在继续。

乔恩:[00:02:38]在过去一年左右的时间里,世界发生了很多波动,这也影响了我们所有的开发人员。有些人的日程安排以他们没有预料到的方式发生了变化,有些事情也发生了关于工作之类的事情。所以,这就是为什么与一些商业项目相比,我们提出一个非常具体的发布时间表有点困难。

乔恩:[00:03:03]但我可以说我们非常接近。我们还有一些功能,其中之一是新的 Python API,每个人都在期待谁使用 KiCad 编写 Python 脚本,但尚未加入。我们正在等待在我们准备好说之前加入这些功能我们和发布之间唯一的事情就是修复错误。与此同时,虽然一些开发人员正在努力,但我们其他人正在努力修复我们的用户发现的错误,这些错误是我们测试每晚构建 5.99 构建的用户发现的。

乔恩:[00:03:37]我们有一个很好的错误列表。其中一些可能在一天结束时被确定为低优先级错误。也许有一个解决方法,它只是可以更好地工作的东西。我们可能会将其从 6.0 初始版本中推迟。但是所有严重的错误,那些可能导致你失去工作或妨碍完成严肃设计的错误,我们希望在发布之前修复它们,因为我们希望每个从 5.1 稳定版本升级的人到 6.0 以获得同样流畅的体验,事实上,由于所有改进,体验更流畅。我们不希望他们升级后说:“哦,这个升级看起来不错,但效果不如旧版本。” 因此,我们基本上是在寻找比特定日期更多的状态。

乔恩:[00:04:33]按照我们一直在进行的速度,你知道,今年我们肯定会推出这个。而且,希望在今年上半年,这看起来很有可能。但我只想给出更长的解释,因为我们仍然面临很多不确定性,这些不确定性是由编写此代码的开发人员日常生活中发生的事情引起的。我们都在尽我们所能。但是很难给出一个固定的日期,你知道,剩下要做的事情的清单越来越少。

彼得:[00:05:10]是的。那太棒了。我期待一个特定的日期,比如 7 月 1 日,因为我没有意识到你实际上有你仍在开发的新功能。我的理解是,您目前正在修复错误,并且所有重要的事情,例如新的文件结构,都已完成。但是,是的,Python 脚本的 API,从根本上说是一个新功能。它可能以前确实存在,但我认为您正在扩展它。稍后我确实对此有疑问——或者我可以把它放到我的列表中并现在问你,你能告诉我们更多关于这个功能的信息吗?您认为人们基于 Python 脚本及其 API 开发什么样的应用程序?

乔恩:[00:05:58]当然。因此,Python 脚本已经成为 KiCad 的 PCB 编辑器的一部分有一段时间了。我们的一些用户为此做了很多令人难以置信的事情,以扩展 KiCad 中可以做的事情和容易做的事情,我们想鼓励这样做。现有 Python API 的问题之一是,它的设计方式使得维护底层代码非常困难,这些代码是用 C++ 编写的,其中包含我们所有开发 Python 插件的用户都在开发的 Python 代码。很难让它们保持同步,随着时间的推移会引起一些摩擦。

乔恩:[00:06:38]我们开始着手解决用户遇到的两个问题。一种是跟上 C++ 代码更改的这种努力。另一个是我们的 Python API 仅支持板编辑器。如果您想针对 KiCad 的原理图或其他部分编写代码,那是不可能的。因此,我们正在开发的新 API 旨在支持所有 KiCad,而不仅仅是 PCB 编辑器。我们看到人们用它做什么——我们已经有了一些想法,但我一想到就知道——你知道,人们会开始研究它,他们会想出一些我什至没想过的东西的。

乔恩:[00:07:20]但是,一旦您可以编写 Python 程序,就可以扩展 KiCad 的功能,而无需等待我们这些核心开发人员用 C++ 实现某些内容并发布新的 KiCad 版本。一些 Python 插件开发人员每周甚至每天都会发布新版本的插件。而且您可以在不更新 KiCad 核心的情况下安装新版本的插件。新的稳定 API 将让插件作者编写代码,他们可以在某种程度上依赖于随着新 KiCad 版本的出现而继续工作。并且用户可以相信 Python API 限制了人们可以做的事情。您知道,旧的 Python API 有一些可能被滥用的方式,甚至可能导致 KiCad 崩溃。因此,我们也想解决这些问题,以便让 Python 插件更受信任。

乔恩:[00:08:23]但至于人们可以用它做什么,你知道,人们会想到很多事情,但通常是自动化。因此,如果您想做一些非常特定于您的工作流程的事情,例如,您想要获取原理图中的所有组件并以适合您公司的特定方式更改其字段的某些属性或类似那个,你可以写一个插件来做到这一点。或者,如果您想查看所选零件分销商的零件价格,您可以编写一个插件来执行此操作,并将该零件信息放入您的 BOM 中。像这样的事情,它可能非常特定于您的应用程序,因此我们可能不会为它开发通用的 KiCad 功能。您可以快速轻松地编写这些特定功能,并根据自己的喜好扩展 KiCad。

彼得:[00:09:18]太好了。因此,这似乎正在成为 KiCad 6 及更高版本的一个很酷的功能。我确实有一个关于插件状态和未来的后续问题,因为当我在玩 KiCad 5.9 时,我可以看到插件组件变得比过去更重要的证据。所以,我想问你这个,已经有一个 KiCad 插件生态系统。正如你所说,他们已经在 PCBnew 中工作了,因为在 KiCad 6 中即将推出的 Eeschema 中没有能力做这样的事情。所以,我的问题有两个部分。第一,那些年长的 lugin 会发生什么?他们会在 KiCad 6 中工作吗?或者他们需要修改吗?

彼得:[00:10:10] 第二部分,也许你可以将它们混合在一起,如果通过 Python API 的插件变得如此重要并因此有用意味着人们将使用该功能并且他们将创建插件其他人将能够使用,它可以是免费的插件。我什至可以看到付费插件的生态系统,因此可以通过某些质量标准的高质量插件。您如何看待未来的形成?例如,是否会有某种插件注册表可供人们下载?是否会像我们在其他项目中看到的那样有某种有组织的生态系统?这可能是一个开放式问题,但我想知道您对插件生态系统的看法。

乔恩:[00:11:04]绝对地。那么,这个问题的第一部分,为 KiCad 5 编写的插件是否需要更新为 6?答案通常是需要小幅调整。有些可能无需任何更改即可工作,但对旧 API 和 PCBnew 进行了一些小的更改,这将破坏一些 Python 脚本,它们只需要更改某些函数调用的名称或类似内容。一些插件作者已经在这样做了。他们每晚发布插件的构建版本。而且我看不到旧 API 有任何变化。因此,真正由插件作者决定他们想要做什么,如果他们想要支持夜间构建,或者他们想要等待稳定版本然后更新他们的插件。这真的取决于他们有多少时间来跟踪每晚构建中的变化。

Jon:[00:12:02]计划中的新 Python API 将与旧 API 分开。因此,必须针对新 API 编写新脚本,但在过渡期期间,这两个 API 都将存在于 KiCad 6 中。因此,旧脚本将能够使用旧 API,只要它们使旧 API 成为次要调整。

乔恩:[00:12:25]我认为你问题的第二部分也很有趣。我很想看到这样一个生态系统,人们可以在其中访问插件注册表并查看用户评论和评级等。我认为这需要来自需要帮助解决类似问题的各方的一些努力。当然,我们需要某种网络存在和网络上的软件来处理分发插件并跟踪评级和评论等等。

乔恩:[00:12:57]而且我认为这超出了核心 KiCad 团队可以自己做的事情。但我认为这对生态系统肯定很重要。所以,已经有一些关于如何实现这一点的讨论,我认为一旦新的 API 被合并到每晚构建中,将会有更多的参与和更严肃的讨论。人们可以开始测试它并获得关于如何处理它的想法。所以,我认为我们没有立即的计划,你知道,当 KiCad 6 发布时。不会立即出现一些 KiCad 插件商店。但我认为这是一个绝妙的主意,而且显然对 Python 生态系统有很大帮助。

彼得:[00:13:41]是的。我认为那将是惊人的。例如,我只是从 Python 本身等其他项目中获得灵感,以及让第三方开发人员处理 Python 模块是多么容易。只是一个命令,它只是旧的,然后它就可以工作了。这将是一个非常好的目标。但是,当然,一直以来,我认为 API 是人们开始探索可能性之前需要到位的第一个组件。

乔恩:[00:14:09]是的。甚至在我们拥有某种不错的 Web 服务之前,人们可以在其中放置他们的插件之类的东西,我们计划使安装插件比以前的 KiCad 版本更容易一些,只是为了使它更容易用户更容易参与插件生态系统。

彼得:[00:14:29]会在 6.0 或 6.5 中,也许会推一点-

乔恩:[00:14:36]计划是在 6.0 中实现,所以我们将看看它是如何进行的。但是,是的,目前,我们计划在 6.0 中拥有新的 API,并且还有插件管理器,以便更轻松地安装插件。

彼得:[00:14:51]是的。伟大的。看来今年圣诞节可能会提前到来。好的。我想现在让我们远离插件。让我们来看看其他一些提交的问题。所以,这个来自埃隆。因此,Elon 很想知道弯曲轨迹之后会发生什么。所以,我们现在有了弯曲的痕迹,这太神奇了。你认为会有某种工具可以产生其他类型的痕迹,比如其他几何形状的痕迹?

乔恩:[00:15:21]是的。所以,我可以通过多种不同的方式来回答这个问题,你知道,弯曲轨迹之后的下一步是什么?你知道,接下来我们可能要考虑一百件事。但也许我会特别关注跟踪,以及我们正在考虑的跟踪路由的改进。

乔恩:[00:15:35]因此,现在,路由器和 KiCad 具有一些处理单个迹线、处理差分对等的功能。它比以前好很多,但它的功能不如您在某些高端商业软件包中看到的那种交互式路由器那么完整。因此,我们正在考虑的一些事情是,例如,让路由器能够在您路由时自动更改轨道的宽度。这将允许诸如自动击倒之类的东西穿过狭窄的空间并从 VGA 中逃脱。它还允许为不同层上的受控阻抗线定义不同的走线宽度,并在您更改层时让路由器自动更改为正确的宽度,而无需手动更改宽度。

Jon:[00:16:30]我们正在考虑的另一件事是一次路由多个跟踪。因此,diff 对同时处理加号和减号跟踪。但我们想将其扩展到一般情况。也许您可以将一整条信号总线作为一个总线进行布线,然后将一堆通孔以不同的模式放在一起以更改层。所以,这些只是我们正在使用路由器查看的一些事情。

乔恩:[00:16:58]还有一些可能对铜形状感兴趣的其他东西,我们希望让人们更容易制作更高级的铜形状。因此,我们已经在每晚构建中完成了一些工作,并且将在 6 中完成,例如使在足迹中定义自定义形状垫变得容易。这已经是可能的,但它有点笨重,所以现在更容易了。我们还让导入在不同 CAD 程序(可能是机械 CAD 程序)中设计的形状变得更容易,并将它们转换为铜垫或走线。因此,对于非常特殊的应用,例如某些 RF 和磁性应用,您可能想要设计一个焊盘、一条迹线、一个天线或类似的东西,然后将其导入 KiCad。所以,现在要容易一些。我们在未来版本的路线图中还有一些其他改进。

彼得:[00:17:55]说到垫子,您已经可以在 KiCad 5.99 中创建各种不同的形状。就像,我们可以控制各种参数,例如,弯曲或矩形类型的垫子。所以,很多已经被参数化了。所以,你说的远不止这些,从其他工具导入打击垫。

乔恩:[00:18:20]我认为最重要的部分,不是在 6 中,目前计划在 6 之后的下一个版本中,是完整的焊盘技术支持。因此,这意味着对于焊盘和通孔,能够在每一层上为该焊盘找到不同的形状。因此,您可以在背面有正方形的地方使用衬垫,而在顶层完全没有衬垫。或者,更好地控制过孔,以防您需要背钻和类似的东西,以消除真正高频情况下的存根。

彼得:[00:18:49]酷。那是针对 KiCad 7 的,对吧?人们应该 -

乔恩:[00:18:53]是的。

彼得:[00:18:56]好的。好的。让我们继续。下一个来自 Lars,所以 Lars 对巴士的新功能很感兴趣。因此,您扩展了总线的工作方式,并且可以使用 now 表达式将 nits 匹配到单个总线中。Lars 想知道你是否真的可以延迟设置——实际上是通过让它成为可能来延迟设置总线——抱歉。他有一个很长的问题。我试图简洁地塑造它。

彼得:[00:19:35]所以,他说,作为一个例子,它在 MCU 中很有用,就像一个微控制器单元,它连接到一个静态 RAM 芯片,在那里你如何路由个人并不重要公交车的踪迹。因此,不要在原理图中进行布线,而是允许在布局内编写总线及其组件。然后,一旦布局决定如何进行布线,将该信息发送回原理图,以便您在那里也具有完整性。我认为现在不可能了,对吧?但 Lars 正在询问这在未来是否可能实现。

乔恩:[00:20:16]是的。我想如果我理解正确的话,这是一个我们称之为 PIN 交换的功能。这是 6 中没有的功能,您说得对。但目前计划用于版本 7。这是商业高端布局包的另一个关键功能,而 KiCad 还没有,所以它是版本 7 的一个非常高的优先级。

乔恩:[00:20:39]所以,什么是 PIN 交换,它是一种为特定部件定义这组引脚可以以某种方式交换的方法。也许,就像 Lars 的例子一样,你有一整套行,它们的顺序无关紧要。或者也许有一些行,它们可以交换,但以更受限制的方式。例如,您只能将 1 与 3 交换,将 2 与 4 交换,或类似的东西。但是,基本上,您可以定义它在您的符号和足迹中的工作方式。然后,在布局时,您可以根据使布线最简单的因素做出这些选择,然后将其推回原理图。所以,是的,这是一个好主意,它在路线图上。

彼得:[00:21:23]完美。是的。好吧,你去吧,拉斯。好的。下一位来自李。Lee 对 Netlist 的情况很感兴趣。他正在询问 Netlist 文件的前景如何。似乎他认为网表文件对于您希望与其他外部应用程序(如 HDL 和 Verilog 应用程序)交互并在需要更改文件时使用它的应用程序特别有用。

乔恩:[00:21:53]嗯。我猜 Lee 看到了一些评论,即不再需要网表文件在 KiCad 中的原理图和电路板之间来回传递数据。别担心,网表文件仍然可用。这是可以导出的东西之一。因此,我们绝对仍然具有以几种不同格式导出网表以与不同应用程序对话的所有相同功能。有些人使用它来进行路由和模拟以及与 HDL 工具接口,就像 Lee 提到的那样。所以,这仍然是一种选择。它不再是 KiCad 内部工作流程的一部分。

彼得:[00:22:37]好的。因此,它现在只是从原理图中导出数据的一种方式,以便您可以对数据做一些有用的事情。完美的。好的。下一个是我的。在导入工具(尤其是 EGL)方面有什么故事和进展?所以,比如,我使用我们的 Arduinos,例如——你可能知道——Arduino 发布了 EGL 各种板的原理图。我已使用 EGL 导入工具将它们导入 KiCad 6。它确实做了一些工作,但仍然需要大量的手动和编辑才能把事情做好。所以,我想问你,从 EGL 导入 KiCad 6 的进展如何?但是,也许,您的雷达中可能还有其他工具。

乔恩:[00:23:34]所以,首先,我想说,我们欢迎关于进口商的错误报告。如果您在使用我们支持的一种格式或电路板导入原理图时有什么不对的地方,只需为它打开一个问题。而且有可能我们以前没有见过。因此,EGL 导入器已经存在一段时间了。这对于版本 6 来说并不新鲜。到目前为止,它对版本 6 进行了一些小的改进。但我认为,在我们计划使用 EGL 导入器修复版本 6 时,我们知道的事情并不多特别是。

乔恩:[00:24:17]所以,我肯定会鼓励你,如果你有任何问题,特别是如果它们破坏了你的设计,请报告它们,以便我们了解它们。我想说,对于 EGL,导入 EGL 设计,尤其是导入 EGL 原理图的挑战之一是,EGL 和 KiCad 对原理图上的连接如何工作具有相当不同的内部模型。规则不同。每当您在具有不同规则的两个不同世界之间转换时,都很难准确地做某事。因此,由于这些差异,我们在导入 EGL 原理图时必须做出一些妥协。我们不会在其他一些工具中看到同样的妥协,因为这些其他工具碰巧在原理图中有一个更接近 KiCad 的连接模型。

彼得:[00:25:11]是的。我应该澄清一下,当我进行这样的导入时,布局会很完美。我没有注意到布局有任何问题。正如你所说,这是原理图,我看到了那里的问题,例如缺少符号。所以,KiCad 不知道 EGL 中使用了什么符号,所以它只有一个问号。我无法确切地知道符号系统是如何工作的。但布局是完美的。不过下一次,我会提交一份报告,尤其是涉及到 Eeschema 方面,这似乎更成问题。

乔恩:[00:25:48]我提到——

彼得:[00:25:51]对不起。

乔恩:[00:25:51]继续。前进。

彼得:[00:25:53]是的。所以,我想我会问这个问题,因为我收到的许多评论来自目前正在使用不同工具的人,他们希望随着时间的推移能够将他们的项目带到 KiCad。我想这就是进口变得重要的地方。

乔恩:[00:26:10]当然。因此,我们所有不同的导入器都来自某种拥护者和开发人员,他们既能够处理 KiCad 代码,也有动力摆脱某种工具。因此,我们实际上在第 6 版中添加了两个新的导入器。这样,一个来自 Altium Designer 及其相关产品,例如 Altium Circuit Maker,一个来自 CADSTAR。所以,这两个都是由两个不同的人完成的,你知道,他们可以使用这些工具,并且有能力检查进口商是否在他们自己的设计上做正确的事情。

乔恩:[00:26:46]所以,逆向工程总是很困难,因为所有这些格式,在大多数情况下,EGL 在这方面都有点不同。并且发布了一些 EGL 文件格式。但是其中一些其他格式,您只需要对它们进行逆向工程并希望得到最好的结果。因此,当进口商走出去时,人们在自己的设计中使用它们,并发现我们不知道或我们没有正确完成的事情,并且它们会随着时间的推移而发展。因此,我希望随着人们报告有关它们的问题,它们会越来越好。但是,我们已经有很多人在测试这些新的进口商并取得了一些成功。因此,我期待 KiCad 能够帮助拥有传统设计和其中一些工具的人们。

彼得:[00:27:34]是的。这是一个难题。我通常建议人们,在 KiCad 中开始你的新项目,这样它就干净了,你不必担心过渡。

彼得:[00:27:45]下一位来自尼古拉斯。所以,尼古拉斯实际上有两个问题。第一个与 S-Expressions 有关,他问,您现在选择 S-Expressions 作为布局中 Eeschema 的文件格式,而不是更常见的 JSON 或 YMAL 格式的原因是什么?

乔恩:[00:28:09]所以,这个决定比我在这个项目上的时间早了一点。我们在第 6 版中决定将原理图文件格式移至 S-Expressions 以及长期以来一直是 S-Expressions 的 PCB 的部分原因是因为该决定已经做出并且继续使用该格式比再次移动所有文件格式更有意义。您知道,PCB 和封装格式在第 6 版中进行了一些细微更改,以添加新功能并修复一些错误。但是,从高层次来看,它看起来与第 5 版中的格式非常相似。

乔恩:[00:28:53]至于文件格式,你知道,每个人都可以对文件格式有自己的看法。我认为我们喜欢 S-Expressions 的一件事,它不是 S-Expressions 独有的,但它是一个属性,可以说它是一种非常强类型的语言。您知道,我们构建了 KiCad 文件含义的语法,它并没有真正开放解释。

乔恩:[00:29:21]所以,这意味着当我们导入文件或打开文件时,我们可以非常确定文件应该是什么。而且它们不像 JSON 这样的一些格式那样含糊不清。我们也使用 JSON。我们将它用于配置文件和 Gerber 作业文件以及诸如此类的东西,其中的东西可以更灵活一点,但可以缺少一些东西。如果只是缺少配置值,KiCad 可以假定它是默认值等等。

乔恩:[00:29:57]在文件格式方面,我们希望事情更加严格。但是,你知道,为什么是 S-Expressions?仅仅因为有人决定并为其编写代码。而且,你知道,它并不完美,但它就在那里并且正在发挥作用。所以,我认为我们有更好的事情要做,而不是仅仅为了改变它而改变它。

彼得:[00:30:18]是的。我认为尼古拉斯很好奇。当然,他并不是建议改变,但他很好奇 S-Expression 是否有什么独特之处。我认为你所说的它是强类型的,因此,没有歧义,我可以看到它非常重要。这可能就是它被选中的原因。你知道,我们在过去没有做出选择。而且还不错。有用。它运行良好,所以让我们保留它。他说还有其他事情要做,其他事情要担心。

彼得:[00:30:51]现在,尼古拉斯提出的另一个问题与设置董事会技术偏好有关。他在问 KiCad 6 是否会有导入/导出技术文件。我想制造商将能够在网站上发布。然后,我将能够下载它并将其放入我的 KiCad 实例中。然后,我的 KiCad Instant 会知道我能做什么和不能做什么,以便我的最终设计与该制造商的能力兼容。所以,你认为这样的事情会发生吗?

乔恩:[00:31:30]是的。因此,我们没有像技术文件格式那样的单独文件格式。我知道其他一些工具有这种东西。我们可能愿意在未来添加它。我认为它只是还没有达到第 6 版的要求。所以,我们所拥有的是项目文件格式中的所有设计规则。这些存储在 JSON 中,这是标准设计规则的类型。因此,制造商可以以 KiCad 可以导入的格式发布这些内容。它不会是这种技术文件格式,它的唯一目的是传达董事会的能力和类似的东西。

乔恩:[00:32:17]所以,这绝对是可能的。它的工作方式与其他一些软件工具的工作方式不同。这绝对是我们未来愿意改变的事情。你知道,说到 Python API,我认为人们可以用 Python API 来做这件事。应该可以编写一个 Python 程序,该程序可以从某个董事会那里收集需求并将它们应用于设计或类似的东西。

彼得:[00:32:45]你去吧。这是一个很好的建议,实际上。所以,这是 Python API 可以改变游戏规则的另一个原因。许多这些要求未来版本中潜在功能的问题实际上可以通过 Python 脚本来满足,利用新的 API。凉爽的。

彼得:[00:33:07]下一个,瓦西利斯询问是否有任何自动路由的计划。因此,目前有我们用于自动路由的外部工具。任何计划整合的东西,也许?

乔恩:[00:33:24]目前,我们不打算开发自动布线器。关于这个我会多说一点,因为我知道这有时对某些人来说是一个分裂的话题。因此,自动路由器是创建非常复杂的软件。我已经使用了其中的一些。我要说的是,我和他们的结果好坏参半。即使使用由多年工作的付费软件工程师团队创建的路由器,他们有时最终也没有像承诺的那样节省时间。他们创建了需要大量清理的东西,并且需要大量的设置时间。

乔恩:[00:34:03]现在,我设计了大板。我完全知道在某些情况下自动路由器很有用。我不确定的是,相对于我们可以处理的其他一些事情,KiCad 团队应该优先考虑哪些方面。当我们每天去和设计板和 KiCad 的人交谈时,特别是那些在高级板和使用多种工具工作的人,我们有很多用户在 KiCad 中做一些板,他们做一些Allegro 或 Altium 或其他一些付费产品中的板,其中 KiCad 的功能无法提供他们所需的相同效率。

乔恩:[00:34:42]自动路由通常不会作为这些人的功能请求出现。通常会出现诸如更好的交互式路由之类的东西,就像我之前所说的那样,能够一次路由整个总线,能够进行更有针对性的自动路由,比如能够自动扇出 VGA。或者,一旦你已经完成了 90% 的路线,就可以完成它。或者像给路由器一个你希望走线如何流动的草图,路由器解决使走线遵循该草图的细节,看起来不错等等。

Jon:[00:35:24]所以,首先,我要说的是,我们知道如何在路由器上工作的团队非常小。这真的只是几个人,他们是志愿者。这是一个相当复杂的软件。毫无疑问,KiCad 最复杂的部分是路由器。当我们查看我们可以添加的各种东西时,我认为现在还没有自动布线器。即使对它有普遍的高需求,目前还不清楚这是我们所有用户的最高优先级,我们也不会让开发人员做一个好的自动布线器。而且我不确定做一个糟糕的自动布线器是否能很好地利用我们的时间。

Jon:[00:36:10]所以,我们肯定会继续支持使用外部自动路由器的工作流程。但是,除非我们的资源发生重大变化,并且我们有能力让开发人员解决一般自动布线背后的真正困难的问题,否则我认为我们不会很快拥有全板自动布线器。

彼得:[00:36:34]是的。不,我想你做到了。这就是我的感觉。我自己并不在复杂的电路板上工作,但它们并没有真正受到自动布线器工作方式复杂性的影响。因此,我自己将自动布线器视为一种节省时间的工具。外部自动布线器完美运行。但是我与确实构建了更复杂和高速的电路板、更高的要求等的人进行了讨论,而不是一个发生故障的路由器。它只是不够有用。所以,我认为这个案子已经结束了。

彼得:[00:37:16]好的。让我们继续下一个。下一个是关于钻孔工具的。我没有问这个问题的人的名字,没关系。他在问绘图工具是否会有任何改进。他举了例子,修剪的能力。例如,捕捉或添加偏移线和组件距离之间的参数约束,诸如此类。

乔恩:[00:37:49]是的。所以,在 6.0 中,我认为绘图的最大改进是一些新的绘图基元。所以,现在,绘制矩形和圆弧之类的东西很容易。还有一些对捕捉的改进,捕捉到对象上的不同点比旧版本好得多。该列表中的其他一些内容,您知道,修剪线、约束和参数化设计元素尚未包含在 KiCad 中。

乔恩:[00:38:17]就未来 KiCad 中的内容而言,我们仍在努力弄清楚。我认为,如果我们正在考虑如何利用我们有限的开发时间,就需要划清界限。有些专门从事机械设计的工具具有极其复杂的绘图工具。例如,如果您留在开源世界中,他们拥有参数化 CAD 引擎,您可以在其中执行所有这些操作,然后导入 KiCad。

乔恩:[00:38:50]所以,在某些时候,当我们可以在 KiCad 和机械 CAD 工具之间更好地互操作时,我们复制这些外部工具的所有工作是没有意义的。但我认为我们仍有空间将其中一些内容添加到 KiCad。我只是认为我们可能不会优先考虑将 KiCad 变成与专用机械绘图工具一样好的机械绘图工具。您知道,我们可以花时间研究其他特定于电气 CAD 的事情。

乔恩:[00:39:27]这总是归结为我们如何度过我们的时间。我们没有那么大的团队。而且,你知道,如果我们突然接触到相当多的开发人员,我所说的一切都可能会改变。但是看看我们现在所处的位置,我想,你知道,我们正在考虑一些简单的限制。我们正在考虑,你知道,像偏移工具这样的东西会很容易。但我认为,你在机械工具中获得的完整参数化草图可能有点遥远。

彼得:[00:39:58]我认为对于任何对这种功能感兴趣的人来说,学习 FreeCAD 可能更容易。我也将对此进行调查。我一直在玩 FreeCAD,但我还不需要将它用于特定项目。但这是我要进一步调查的事情。所以,我可以看到这两个开源工具之间的协同作用。所以,我或许可以为此做点什么。好的。

彼得:[00:40:27]乔恩,我还有一个问题要完成本次会议,它与 KiCad 用户之间的项目共享有关。所以,我想问你这个,所以现在 KiCad 的原理图和布局部分使用相同的格式,据我所知,这些文件也是独立的。这意味着任何需要的封装或符号都可以存储在同一个原理图和布局文件中,而不是依赖于外部库的链接。那么是否有可能只打包一个 KiCad 项目,可能是一个 zip 文件或其他一些文件,可能是一个或两个 S-Expression 文件。然后,将它们通过电子邮件发送给同事,然后该同事将能够在自己的 KiCad Instants 中打开它们并继续工作,而无需在其他地方追逐库文件?

乔恩:[00:41:32]是的。所以,有一些例外,但总的来说,现在效果很好。它的效果比以前的版本好得多。所以,就像你说的,我们新的原理图文件格式将符号存储在原理图中,这意味着它们总是可以从外部库中更新。但是,打开原理图不需要存在该外部库。并且没有像我们在以前版本的 KiCad 中那样的单独缓存库文件。因此,您可以在没有任何其他文件的情况下获取 KiCad 原理图文件并将其发送出去,它就会打开。

乔恩:[00:42:09]就整个项目而言,是的,您绝对可以将其打包成 zip 并发送出去。我们甚至有一个功能可以让项目经理自动执行此操作。您可以单击一个按钮并创建一个 zip 文件。执行此操作时需要注意一些事项,其中之一是 3D 模型。因此,如果您在封装中使用 3D 模型,则这些模型当前不会保存在封装内或电路板内。因此,您需要能够在任何计算机上找到它们,以便显示 3D 预览或导出步骤模型。但除此之外,它通常可以很好地在不同计算机上的不同人之间移动设计。如果您想对这些库进行更新或从这些库中引入新的更改,您只需要拥有这些库。

彼得:[00:43:01]太好了。所有这些文件,那些可共享的文件,都是基于文本的文件,对吧?这意味着您可以使用社交控制,并且您也拥有一切。所以,我猜这是一种额外的共享中介机制,而不仅仅是电子邮件。

乔恩:[00:43:18]是的。我们知道很多用户在 KiCad 设计中使用源代码控制,我们鼓励这样做。我们对版本 6 中的文件格式所做的其中一项工作是进行了一些调整,以最大限度地减少我们所说的文件中的流失量。因此,当您实际上没有更改设计中的某些内容时,对文件进行的无用更改,我们几乎消除了所有这些。我认为我们现在已经消除了董事会文件中的所有内容。因此,基本上,它们与版本控制系统一起工作得更好。

乔恩:[00:43:49]在 KiCad 5 中,当您打开一个板并更改您正在查看的层或显示隐藏层时,所有这些都保存在板文件中。因此,仅通过查看电路板,您就可以进行市场修改。然后,如果您使用的是版本控制系统,那会变得很混乱。在 KiCad 6 中,我们已将所有这些内容提取到一个项目文件中。我们现在实际上有两个项目文件,其中一个旨在与设计文件一起检入到您的源代码管理中。它包含所有重要的项目信息和设计规则等等。另一个文件有点像本地状态项目文件。它包含诸如您正在查看的层以及是否打开高对比度模式以及 PCBnew 之类的信息。

乔恩:[00:44:40]所以,这意味着,您可以关闭并重新打开相同设计的 KiCad,并完全按照您的方式恢复您的视图。但是,如果您将它签入源代码管理或压缩它,您也可以忽略此文件。并且所有仅针对您查看方式的更改都在这个可以排除的文件中。

彼得:[00:45:06]完美。好的。是否有一些文档可以让我们找到,例如,哪个文件包含您的项目细节或您正在查看的图层状态?

乔恩:[00:45:21]是的。因此,KiCad 文档正在开发中。如果有人访问过我们的文档站点,您就会知道在我们对程序进行更改时保持更新是一项艰巨的任务。通过删除所有旧信息并为所有新工具编写新文档,我们正在努力为第 6 版发布做准备。有些文档甚至自第 4 版以来就没有更新过,所以它们已经过时了。

Jon:[00:45:50]其中一个已经更新的是 KiCad 程序的主要文档。因此,我们的文档针对不同的子程序分为不同的章节。KiCad 项目经理程序的一个已经更新。如果您访问我们的文档站点,则只需确保您查看的是夜间文档而不是稳定版本。但是在那里,我们对 KiCad 使用的所有不同文件类型进行了描述,并说明了使用它时应将哪些文件签入源代码管理以及诸如此类的内容。

彼得:[00:46:27]我去看看。好的。就是这样,乔恩。非常感谢你。这非常有帮助。感谢您今天抽出时间与我交谈。

乔恩:[00:46:38]当然。很高兴与您交谈,也很高兴听到一些问题。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2021-6-23 07:41:24 来自手机 | 显示全部楼层
我在ubuntu20.04,开始制造kicad的轮子了

出615入1076汤圆

发表于 2021-6-23 13:05:25 来自手机 | 显示全部楼层
我一直在用穩定版本,好幾年前配套的就是 python3 了呀。

出280入168汤圆

 楼主| 发表于 2021-6-23 13:17:51 | 显示全部楼层
dukelec 发表于 2021-6-23 13:05
我一直在用穩定版本,好幾年前配套的就是 python3 了呀。

KiCAD 5 自带的是 Python 2.7 ,打开它的脚本控制台就能看到版本号,在安装目录下也能看到 : C:\Program Files\KiCad\bin 。

熟练的 KiCAD 用户可以自行修改使用环境,但要注意已安装的插件可能会出错,毕竟早期的脚本都是在 Python 2 下编写的。

例如:早期的 print 语句的指令在 Python 2 中无需括号,但 Python 3 中将 print 改成了函数,没括号就报错。

出615入1076汤圆

发表于 2021-6-23 13:22:27 来自手机 | 显示全部楼层
chunjiu 发表于 2021-6-23 13:17
KiCAD 5 自带的是 Python 2.7 ,打开它的脚本控制台就能看到版本号,在安装目录下也能看到 : C:\Program ...


我用的 gentoo 系統安裝 kicad,会自動適配系統當前的 python 版本。

出280入168汤圆

 楼主| 发表于 2021-6-23 14:11:55 | 显示全部楼层
dukelec 发表于 2021-6-23 13:22
我用的 gentoo 系統安裝 kicad,会自動適配系統當前的 python 版本。

我忘了  

在 Linux 下,KiCAD 好像是和系统的 Python 版本挂钩的。

出0入0汤圆

发表于 2021-6-25 09:58:00 | 显示全部楼层
chunjiu 发表于 2021-6-23 14:11
我忘了   ,

在 Linux 下,KiCAD 好像是和系统的 Python 版本挂钩的。

请教大佬用的 kicad 哪个版本

为在 5.99 版本上遇到一个问题

用脚本添加 Track 后界面无法更新,需要重启 Pcbnew 界面,目前官方还没有处理这个问题

bug 链接

大佬如果也用的 5.99 这个版本的话,想问问有没有思路可以处理或者绕过这个bug

出280入168汤圆

 楼主| 发表于 2021-6-25 10:01:11 | 显示全部楼层
zyqcome 发表于 2021-6-25 09:58
请教大佬用的 kicad 哪个版本

为在 5.99 版本上遇到一个问题

5.99 只是拿来看看的,试一下新功能。工作还是坚持用 5.10 ,免得延续性出问题,耽误了工作。

出0入0汤圆

发表于 2021-6-25 10:04:29 | 显示全部楼层
chunjiu 发表于 2021-6-25 10:01
5.99 只是拿来看看的,试一下新功能。工作还是坚持用 5.10 ,免得延续性出问题,耽误了工作。 ...



那我已经上当了,

再请教,怎么把 5.99 的工程转回 5.1.10

出280入168汤圆

 楼主| 发表于 2021-6-25 10:08:57 | 显示全部楼层
zyqcome 发表于 2021-6-25 10:04
那我已经上当了,

再请教,怎么把 5.99 的工程转回 5.1.10

官方的再三警告:没有回退项,所以我的项目用 5.99 做实验都是副本啊 ...

如果兄弟试过 git 就容易回退了,目前还没有好方法来回退项目版本。

出280入168汤圆

 楼主| 发表于 2021-6-25 10:11:29 | 显示全部楼层
chunjiu 发表于 2021-6-25 10:01
5.99 只是拿来看看的,试一下新功能。工作还是坚持用 5.10 ,免得延续性出问题,耽误了工作。 ...

刚才看了一下兄弟提交的报告,讨论结果是需要改动 KiCAD 的内部功能操作流程,所以工作量太大,似乎没人同意这么做。

出0入0汤圆

发表于 2021-6-25 11:03:43 | 显示全部楼层
chunjiu 发表于 2021-6-25 10:11
刚才看了一下兄弟提交的报告,讨论结果是需要改动 KiCAD 的内部功能操作流程,所以工作量太大,似乎没人 ...

确实是大意了,

我其实是做了一个 Plugin 想来半自动添加走线,

这个在 pcbnew.Action 这个类的 run() 方法中  pcbnew.Refresh() 是能执行成功的,

这也是 RF-tools-KiCAD 能工作在 5.99 的原因

我想找绕过的原因是,使用很频繁的话,挥动鼠标 点击 工具栏的按钮会很麻烦

要是能够找到刷新的方法,我就可以在python中监听鼠标点击,生活就变得更美好了,

我已经很笨拙的尝试的一段时间,

目前看到的结果是,在 5.1.10 重新画工程,我的插件就可以愉快的工作了

出0入135汤圆

发表于 2021-6-25 15:11:52 | 显示全部楼层
期待6.0的差分布线功能能提升下,现在用的5.14走差分简直是个灾难,随你怎么移动鼠标就是不给你连上去
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 16:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表