Combinando PCBs com Gerbmerge

Somos uma pequena startup que desenvolve eletrônicos modernos. Obviamente, fazemos regularmente pequenos lotes de teste para os quais não faz sentido encomendar uma produção completa - o custo da preparação será o maior item do orçamento. Portanto, regularmente sugerimos como é mais rápido, mais barato e mais eficiente coletar esses lotes por conta própria. Às vezes, no processo, algo novo nasce ou algo antigo é adicionado. Periodicamente, compartilharemos o resultado com você.

Uma maneira de reduzir o custo de fabricação de placas de circuito impresso é combinar várias placas em uma peça de trabalho e enviá-la à fábrica como um único projeto. O truque é que fábricas sérias gastam dinheiro para preparar a produção de cada placa, e os chineses orientados para bricolage geralmente oferecem (Seeedstudio, por exemplo) um preço fixo para um tamanho fixo de PCB. No primeiro caso, um único projeto, mesmo que, em última análise, seja cortado em várias placas, será considerado como uma placa e, no segundo, é possível acomodar várias placas pequenas em um espaço em branco padrão.

Além disso, combinar placas é conveniente se você fizer conjuntos fixos - por exemplo, você tem um módulo de controle e quatro módulos executivos em seu projeto; Nesse caso, é comum colocá-los em um espaço em branco e sempre pedir com esse kit.

Nesse caso, tínhamos um e outro - o kit e o desejo de economizar na produção de um lote de teste.



Este é um projeto. Possui 32 placas de 13 tipos diferentes. Como montar um projeto desse tipo em um quarto de hora - abaixo.

Surpreendentemente, uma tentativa de encontrar software pronto e pelo menos relativamente acessível para essa operação rapidamente leva a pessoa à depressão - depois dos cinco primeiros sites que oferecem ligar para o número de telefone especificado para receber uma oferta de preço individual. O problema é que as fábricas geralmente trabalham diretamente com os arquivos no formato Gerber RS-274X e, portanto, o custo de todo esse software é tradicional para uso comercial, a partir de algumas centenas de dólares por estação de trabalho.

As propostas de orçamento podem multiplicar apenas um quadro por muitas cópias (no Eagle, por exemplo, essa é uma função nativa), mas não coletar vários arquivos de projetos diferentes. ou - com mais frequência - eles não sabem de nada. Do relativamente barato, consegui encontrar apenas o ViewMate Deluxe, que, apesar de não ser muito forte, ainda valia menos de US $ 100 e era capaz de editar gerberas - apenas trabalhando em locais muito parecidos com torturas sofisticadas.

Além de toda essa grandeza, há um pacote, totalmente gratuito - GPLv3 - e criado exatamente para esta tarefa: engolir várias gerberas de diferentes projetos e colocá-las em uma folha.

Este é o GerbMerge , um script python . Devorando suas gerberas, por vários minutos, ele tenta organizá-los de milhares de maneiras diferentes, escolhendo entre eles o melhor - do seu ponto de vista.

O GerbMerge só pode funcionar com arquivos Gerber RS-274X e Excellon, mas isso é difícil de considerar uma desvantagem - qualquer CAD que possa ser usado pelo menos teoricamente pode exportar placas nesses formatos e qualquer fábrica pode aceitá-las. Além disso, se você deseja a garantia máxima do resultado e a chance mínima para as mãos tortas da fábrica - foi a Gerber + Excellon que você verificou anteriormente e precisa enviá-las.

Não dou um link para o site GerbMerge agora, porque não está claro o que considerá-lo um site - a julgar pelo histórico de edições e direitos autorais, ele mudou de mãos algumas vezes com pausas por um ano ou dois, e toda vez que era abandonado. Como resultado, quando tentei executá-lo, descobri rapidamente que:

  1. Não está instalado
  2. Uma vez instalado, ele não inicia
  3. Ao executar, ele não digere os arquivos DipTrace
  4. Sendo empurrado, os arquivos em unidades métricas não são digeridos
  5. Sob Cygwin, ele não funciona de todo
  6. Existem tentativas de arrumar o instalador - na direção certa, mas incompleta
  7. Existem tentativas de ordenar as unidades métricas - na direção certa, mas incompletas
  8. Todos os links para pacotes de instalação prontos para Windows geralmente falharam anos atrás


No entanto, não havia alternativas. Portanto, após alguma deliberação, uma equipe de profissionais de marketing, que nunca havia escrito uma linha em Python, sentou-se e colocou a gerbmerge em ordem.

E agora - o link: github.com/unwireddevices/gerbmerge

Na versão 1.9.4, que agora está disponível neste link, gerbmerge:

  • É executado com sucesso no Linux, Windows e Cygwin
  • É instalado em todos os sistemas usando ferramentas padrão sem editar nada manualmente.
  • Entende os arquivos gerados pelo DipTrace
  • Funciona com polegadas e milímetros


Instale o GerbMerge



O GerbMerge é um script python, portanto a instalação tem suas próprias características. Pode ser lançado no Linux e Windows (nativo e sob Cygwin), teoricamente também no MacOS, mas não verifiquei - não há nada.

Linux .

Como você quase certamente já possui python, pip e gcc instalados, resta instalar o simpleparse - o pip install simpleparse e, em seguida, vá para o gerbmerge. Faça o download do arquivo fonte no github , descompacte-o e entre:

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


O primeiro comando irá preparar o pacote de instalação para o seu sistema, o segundo irá instalá-lo. Obviamente, você pode instalar o sudo python setup.py imediatamente , mas se você deseja se familiarizar com o gerbmerge ou atualizá-lo, excluirá seus arquivos com alças.

Windows / Cygwin .

Instale o Cygwin com os pacotes python, python-setuptools e gcc (este último é necessário para compilar simpleparse). Faça o download do arquivo de origem gerbmerge, descompacte-o, inicie o Cygwin e vá para o diretório de origem.

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


O primeiro comando (em vez de xy será a versão do seu python, ou seja, provavelmente 2.7) instalará o pip, o restante será o mesmo que no Linux.

Windows nativo .

Faça o download do instalador do python para o seu sistema e instale-o - por padrão, ele está instalado em C: \ Python27 \ e arrasta o pip que precisamos com você. Faça o download do gerbmerge, descompacte. Execute o cmd.exe e vá para a pasta de origem 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


Só isso. Se nos casos anteriores o gerbmerge foi iniciado, de fato, pelo comando gerbmerge, para iniciá-lo, é necessário chamar o arquivo c: \ Python27 \ gerbmerge.bat (se você colocar o Python em uma pasta diferente, o caminho deverá ser alterado de acordo).

Usando o GerbMerge



O Gerbmerge requer um arquivo de configuração e conjuntos de arquivos com gerberas das placas de origem. No github da pasta de exemplos, existem exemplos de ambos, tanto para gerberas em polegadas quanto para métricas.

O arquivo de configuração descreve vários parâmetros básicos e, depois deles, lista todas as placas que você precisará montar - indicando onde seus arquivos estão localizados e como são chamados, além de quantas partes de cada uma delas devem ser colocadas no projeto final:

[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


Neste exemplo, existem duas placas localizadas nas pastas aa e bb , os arquivos nelas estão com nomes de exportação padrão do DipTrace. As pastas estão próximas, o gerbmerge começa ali mesmo, portanto o diretório do projeto é apenas “.”, E os caminhos para as pastas são, respectivamente, “./aa” e “./bb”. A primeira prancha precisa ser feita 10 peças em uma peça, a segunda - seis. As gérberas estão em milímetros, o tamanho máximo do painel é de 400 × 300 mm, devem ser feitos intervalos de 2 mm entre as placas para que a fábrica os corte com uma fresa (pergunte à fábrica específica as dimensões dos painéis e folgas). Registre o formato Excellon para a furadeira com zeros no início, na ausência de qualquer arquivo do palavrão acima. O resultado deve ser salvo na pasta mesclada com os nomes de arquivo especificados.

Observe que todos os arquivos, exceto BoardOutline e Drills, começam com um asterisco - este é o caminho a percorrer. Se você colocar AllowMissingLayers na unidade, os arquivos com asteriscos poderão estar ausentes. Mas o asterisco deve ser de qualquer forma (não muito lógico, mas esses insignificantes já são preguiçosos demais para corrigir, não incomodam ninguém).

Após criar a configuração, resta apenas executar o gerbmerge como o único parâmetro:

gerbmerge layout.cfg


Ou, se você ainda não se uniu ao mundo da Liberdade, Igualdade e Fraternidade (como eu) e também não gosta de Cygwin (não como eu), então:

C:\Python27\gerbmerge.bat layout.cfg


Quando você inicia o gerbmerge, a folha de isenção fica pendurada e aguarda o pressionamento do “y”; se você está cansado disso, adicione o parâmetro “-s”.



Salvo indicação em contrário na configuração, o gerbmerge funciona para sempre, relatando periodicamente que não está morto. Você pode interrompê-lo a qualquer momento pressionando Ctrl-C - ele salvará a configuração das placas, que neste momento serão consideradas as mais bem-sucedidas, em arquivos, e completas. Infelizmente, é impossível rastrear o êxito do resultado, portanto, dê tempo suficiente a ele - de cinco minutos, em média, Core i * a quinze no AMD Sempron é suficiente para obter uma localização clara, mesmo para um projeto como o descrito antes do corte.

Uma característica interessante do gerbmerge é que ele corta automaticamente o que sai das bordas de uma placa específica. Portanto, por exemplo, se você tiver componentes com tela de seda projetada para fora (um conector que se projeta além das bordas, por exemplo), essa impressão de tela de seda no projeto final não chegará à placa vizinha. O corte de furos e a serigrafia podem ser desativados nas opções da linha de comando.

Os arquivos resultantes devem ser verificados familiarmente por qualquer visualizador de Gerber (eu geralmente uso o Viewplot ) - e se nada der errado, envie-o para a fábrica.

Limitações



  • : , - .
    , , , Placement.txt —  . , gerbmerge (--place-file=), . : gerbmerge .
  • O script não entende a mistura de arquivos em polegadas e métricas. Todas as gerberas recebidas devem estar no mesmo sistema que corresponde ao especificado na configuração. Em princípio, esta é uma ocasião para um maior desenvolvimento, mas porque por dentro, gerbmerge com o trabalho com unidades de medida agora que ainda mingau, dificilmente vou me comprometer com isso.


Proofpeak



O mesmo projeto de 32 placas de 13 tipos, executado no PCB pela empresa Microlit:



Não houve perguntas da fábrica, não houve reclamações sobre a qualidade.

Perguntas frequentes



Q: Para o inferno com você, existem tantas placas ???
A: Aqui para este projeto .

Source: https://habr.com/ru/post/pt389775/


All Articles