将PCB与Gerbmerge结合

我们是一家开发现代电子产品的小型创业公司。当然,我们会定期进行小批量生产测试,而批量生产完全合格的生产则毫无意义-准备成本将是最大的预算项目。因此,我们定期提出如何更快,更便宜,更有效地自行收集这些批次的信息。有时,在此过程中会诞生新事物或添加旧事物。我们会定期与您分享结果。

降低制造印刷电路板成本的一种方法是将多个电路板组合在一个工件上,然后将该工件作为一个项目发送到工厂。诀窍是,严肃的工厂会花钱准备每块电路板的生产,而面向DIY的中国人经常以固定的PCB尺寸提供固定的价格(例如Seeedstudio)。在第一种情况下,即使最终将其切割成几块板,也将单个项目视为一个板,在第二种情况下,可以将多个小板容纳到一个标准工件中。

另外,如果您要进行固定设置,则组合板很方便-例如,您的项目中有一个控制模块和四个执行模块。在这种情况下,通常将它们放在一个空白处并始终使用这样的套件订购。

在这种情况下,我们有一个和另一个–套件和节省试生产的愿望。



这是一个项目。它具有32种13种不同类型的板。在下面的一刻钟内如何组装这样的项目。

出乎意料的是,试图为这种操作找到现成的且至少相对负担得起的软件的尝试迅速使人们陷入沮丧-在提供呼叫指定电话号码以接收单个价格报价的前五个站点之后。问题在于工厂通常直接使用Gerber RS-274X格式文件,因此所有此类软件的成本在商业上都是传统的使用,每台工作站数百美元。

预算提案要么只能将一个委员会乘以许多副本(例如,在Eagle中,这是一项本机功能),但不能从不同项目中收集多个文件。或者-通常-他们什么都不知道。从相对便宜的产品中,我设法找到了唯一值得的ViewMate Deluxe,虽然价格不高,但仍然不到100美元,并且能够编辑非洲菊-只能在非常复杂的酷刑中使用。

除了所有这些宏伟的功能外,还有一个完全免费的软件包-GPLv3-正是为此任务而创建的:吞下来自不同项目的一堆非洲菊并将它们放在一张纸上。

这是GerbMerge,一个python脚本。吞噬您的非洲菊,在几分钟内,他尝试以数千种不同的方式排列它们,从他的角度出发,从它们中选择最好的。

GerbMerge只能使用Gerber RS-274X和Excellon文件,但这很难考虑到缺点-至少理论上可以使用的任何CAD都可以以这些格式导出板,任何工厂都可以接受。此外,如果您想最大程度地保证结果,并且让工厂的双手弯曲的机会最小-先前检查的是Gerber + Excellon,则需要将其发送。

我现在没有指向GerbMerge网站的链接,因为目前尚不清楚该网站的名称-从编辑和版权的历史来看,他几次停顿了一年或两年,而每次被抛弃时,他都变了手。结果,当我尝试运行它时,我很快发现:

  1. 未安装
  2. 一旦安装,它将无法启动
  3. 运行时,它不会摘要DipTrace文件
  4. 被推送时,它不会以公制单位显示的文件
  5. 在Cygwin下,它根本不起作用
  6. 尝试整理安装程序-方向正确,但不完整
  7. 尝试按顺序放置度量单位-方向正确,但不完整
  8. Windows的现成安装软件包的所有链接通常在几年前就失效了


但是,根本没有其他选择。因此,经过深思熟虑之后,一个从未使用Python编写过行的专业营销人员团队坐下来整理了gerbmerge。

现在-链接:github.com/unwireddevices/gerbmerge

在版本1.9.4中,该链接gerbmerge现在可用:

  • 在Linux,Windows和Cygwin上成功运行
  • 它使用标准工具安装在所有系统下,无需手动编辑任何内容。
  • 了解DipTrace生成的文件
  • 适用于英寸和毫米


安装GerbMerge



GerbMerge是python脚本,因此安装具有自己的特征。它可以在Linux和Windows(本地和Cygwin下)上启动,理论上也可以在MacOS上启动,但是我没有检查-没有任何东西。

Linux的

由于您几乎可以肯定已经安装了python,pip和gcc,因此仍然需要安装simpleparse- pip install simpleparse,然后转到gerbmerge。从github下载源档案,将其解压缩,然后进入:

python setup.py sdist
sudo pip install dist/gerbmerge-1.9.4.tar_gz


第一个命令将为您的系统准备安装软件包,第二个命令将安装它。当然,您可以立即进行sudo python setup.py install,但是如果您想与gerbmerge分开或对其进行更新,则将删除带有句柄的文件。

Windows / Cygwin

使用python,python-setuptools和gcc软件包安装Cygwin(后者是构建simpleparse所必需的)。下载gerbmerge源档案,将其解压缩,启动Cygwin并转到源目录。

easy_install-x.y pip
pip install simpleparse
python setup.py sdist
pip install dist/gerbmerge-1.9.4.tar_gz


第一个命令(而不是xy将是python的版本,也就是2.7)将安装pip,其余命令将与Linux中的相同。

Windows本机

下载适合您系统python安装程序并安装它-默认情况下,它安装在C:\ Python27 \中,并拖动我们需要的点子。下载gerbmerge,解压缩。运行cmd.exe并转到gerbmerge源文件夹:

c:\python27\scripts\pip.exe install simpleparse
c:\python27\python.exe setyp.py sdist
c:\python27\scripts\pip.exe istall dist\gerbmerge-1.9.4.zip


仅此而已。实际上,如果在以前的情况下通过gerbmerge命令启动了gerbmerge,则要启动它,您需要调用文件c:\ Python27 \ gerbmerge.bat(如果将Python放在其他文件夹中,则必须相应地更改路径)。

使用GerbMerge



Gerbmerge需要配置文件和带有源板的非洲菊的文件集。在github上的examples文件夹中,有两个示例,分别用于英吋非洲菊和公制。

配置文件描述了几个基本参数,并在它们之后列出了您需要组装的所有板卡-指示了它们的文件位于何处以及它们被称为什么,以及每个文件要放入最终项目中的多少块:

[DEFAULT]
projdir = .

[Options]
ExcellonLeadingZeros = 1
PanelWidth = 400
PanelHeight = 300
XSpacing = 2
YSpacing = 2
MeasurementUnits = mm
AllowMissingLayers = 0

[MergeOutputFiles]
Prefix = %(projdir)s/merged
*TopLayer=%(prefix)s/Top.gbr
*BottomLayer=%(prefix)s/Bottom.gbr
*TopSilkscreen=%(prefix)s/TopSilk.gbr
*BottomSilkscreen=%(prefix)s/BottomSilk.gbr
*TopSoldermask=%(prefix)s/TopMask.gbr
*BottomSoldermask=%(prefix)s/BottomMask.gbr
Drills=%(prefix)s/Drills.txt
BoardOutline=%(prefix)s/BoardOutline.gbr
ToolList = %(prefix)s/Tools.drl
Placement = %(prefix)s/Placement.txt

[aa]
Prefix=%(projdir)s/aa
*TopLayer=%(prefix)s/Top.gbr
*BottomLayer=%(prefix)s/Bottom.gbr
*TopSilkscreen=%(prefix)s/TopSilk.gbr
*TopSoldermask=%(prefix)s/TopMask.gbr
*BottomSilkscreen=%(prefix)s/BottomSilk.gbr
*BottomSoldermask=%(prefix)s/BottomMask.gbr
Drills=%(prefix)s/Through.drl
BoardOutline=%(prefix)s/BoardOutline.gbr

Repeat = 10

[bb]
Prefix=%(projdir)s/bb
*TopLayer=%(prefix)s/Top.gbr
*BottomLayer=%(prefix)s/Bottom.gbr
*TopSilkscreen=%(prefix)s/TopSilk.gbr
*TopSoldermask=%(prefix)s/TopMask.gbr
*BottomSilkscreen=%(prefix)s/BottomSilk.gbr
*BottomSoldermask=%(prefix)s/BottomMask.gbr
Drills=%(prefix)s/Through.drl
BoardOutline=%(prefix)s/BoardOutline.gbr

Repeat = 6


在此示例中,文件夹aabb中有两块板,它们中的文件具有标准DipTrace导出名称。文件夹在附近,gerbmerge从那里开始,因此项目目录只是“。”,文件夹的路径分别是“ ./aa”和“ ./bb”。第一块木板需要在一个工件上制成10个,第二个木板需要六个。非洲菊的单位为毫米,最大面板尺寸为400×300毫米,板之间必须留有2毫米的间隙,以便工厂用铣刀将其切割(向特定的工厂询问板的尺寸和间隙)。在没有上述任何文件的情况下,请在开头用零记录钻孔机的Excellon格式-宣誓。结果必须以指定的文件名保存在合并的文件夹中。

请注意,除了BoardOutline和Drills以外的所有文件都以星号开头-这是一种方法。如果将AllowMissingLayers放置在设备中,则带有星号的文件可能会丢失。但是无论如何,星号都应该是(不是很合逻辑,但是这样的琐事已经太懒了,无法解决,它们不会打扰任何人)。

创建配置后,仅将gerbmerge作为唯一参数运行即可:

gerbmerge layout.cfg


或者,如果您仍然没有加入自由,平等和兄弟会的世界(像我一样),并且也不喜欢Cygwin(不像我一样),那么:

C:\Python27\gerbmerge.bat layout.cfg


开始时,gerbmerge挂出免责声明,并等待按下“ y”,如果您对此感到厌倦,请添加“ -s”参数。



除非在配置中另有说明,否则gerbmerge可以永久工作,并定期报告它尚未失效。您可以随时按Ctrl-C停止它-它会保存板子的配置,这时将被认为是最成功的模板,以文件形式显示,并且是完整的。不幸的是,无法跟踪结果的成功程度,所以只给他足够的时间-从平均Core i *的五分钟到AMD Sempron的十五分钟就足以获得一个整洁的位置,即使对于像之前提到的那样的项目也是如此。

gerbmerge的一个不错的功能是,它会自动切断从特定板的边缘出来的东西。因此,例如,如果您的丝网印刷组件向外凸出(例如,连接器凸出边缘),则最终项目中的丝网印刷将不会到达相邻的电路板上。可以在命令行选项中禁用孔修整和丝网印刷。

生成的文件应该由任何Gerber查看器(我通常使用Viewplot熟悉地检查-如果没有任何问题,则将其发送到工厂。

局限性



  • : , - .
    , , , Placement.txt —  . , gerbmerge (--place-file=), . : gerbmerge .
  • 该脚本无法理解英制和公制文件的混合。所有传入的非洲菊必须与配置中指定的非洲菊在同一系统中。原则上,这是进一步发展的机会,但是因为 在gerbmerge内部,现在仍然用稀饭来计量单位,我几乎不会为此承担任何责任。


证明高峰



由Microlit公司在PCB中执行的同一项目,包含32种13种类型的电路板:



工厂没有问题,也没有质量问题。

常见问题



问:和你在一起到底有多少板???
答:这里是这个项目

Source: https://habr.com/ru/post/zh-CN389775/


All Articles