Design de PCB usando código em vez de clicar em um mouse? [fechadas]

14

Estou iniciando o projeto de PCB e geralmente tenho problemas para aprender a usar GUIs com menus e cliques no mouse. Alguns engenheiros usam algo mais parecido com código para gerar PCBs?

guidoísmo
fonte
7
Eu não recomendaria a gravação de arquivos gerber comuns ... #
31719 Huisman
31
O layout da placa de circuito impresso é principalmente uma tarefa visual - mover e girar objetos para ajustá-los. Fazer isso por código parece doloroso.
JRE
3
Geralmente, existem teclas de atalho para a maioria dos itens de menu (se não todos); a maioria das ferramentas permite a entrada de texto para localização e orientação (mas é muito mais doloroso fazer isso do que apenas mover as coisas com o mouse). Eu uso as ferramentas de texto para obter um posicionamento preciso de coisas como vias e pares diferenciais.
Peter Smith
4
Alguns pacotes CAD são mais clicáveis ​​que outros. Na minha experiência, o Orcad Allegro é o pior para fazer você passar por muitas ações inúteis da GUI para fazer as coisas mais simples. O Diptrace é praticamente a experiência do usuário mais fácil e fluida. O PADS é uma cadeia de ferramentas muito agradável, com uma interface de usuário intuitiva e muitos recursos avançados. O PADS é para engenheiros que gostam de fazer as coisas, o Orcad é para masoquistas. : D
Wossname 31/07/19
2
Existem atalhos de teclado e casos únicos em que a geração programática de padrões faz sentido, mas o layout da PCB é principalmente uma tarefa gráfica interativa. Em situações de contraste em que a lógica domina sobre a modalidade física, como FPGA e (muitas partes do) design ASIC, normalmente são orientadas por linguagens de descrição de hardware, alimentando compiladores lógicos, alimentando ferramentas automatizadas de local e rota. Se ainda estivéssemos construindo processadores de mainframe a partir de grandes placas cheias de TTL, poderia haver um fluxo de design comparável entre HDL e PCB ... mas felizmente não estamos.
Chris Stratton

Respostas:

19

O Altium possui uma linguagem de script, várias linguagens diferentes, de fato. Em alguns casos, pode fazer sentido usar algoritmos, por exemplo, para criar layouts repetitivos ou peças colocadas precisamente em determinadas posições.

Por exemplo, eu vi que ele costumava colocar peças (LEDs) em um padrão circular, embora com a introdução de grades de pressão de coordenadas polares seja muito menos provável que valha a pena os aborrecimentos.

Usamos algoritmos para criar formas (pense em antenas e esse tipo de coisa) diretamente no formato .dxf, que pode ser importado para uma camada de cobre.

Em geral, o código é pouco adequado para fins de layout de PCB, principalmente para a tarefa de roteamento.

Spehro Pefhany
fonte
17

No EAGLE CAD, tudo o que você pode fazer com um mouse pode ser feito na linha de comando. Ele também possui uma linguagem de usuário na qual você pode essencialmente programar.

Scott Seidman
fonte
2
Muito útil ao fazer padrões, etc. Mesmo se você fizer 99% do layout manualmente, ainda poderá organizar peças / recursos com código.
Wesley Lee
1
Geralmente, codifico no Matlab ou em um processador de texto para gerar uma linguagem de script.
Scott Seidman
3
Sim! Eu costumava fazer isso em Python :)
Wesley Lee
1
Essa é uma das principais vantagens do Eagle. Depois de iniciar, você usará apenas a linha de comando.
D pato
7

Eu uso o código para gerar a netlist para meus PCBs. (É muito, muito mais rápido escrever um loop for para construir um multiplexador de N bits do que desenhar laboriosamente todo esse material em um esquema.) Felizmente, os arquivos de lista de rede do KiCAD são apenas texto, em um formato não documentado, mas razoavelmente fácil de reverter -engenheiro.

Eu escrevi uma pequena biblioteca C # que me permite digitar o que eu quero conectar ao que (em termos de blocos paramétricos reutilizáveis ​​de circuitos), e ela cospe automaticamente uma netlist. Agora eu posso importar isso diretamente para o KiCAD e começar a construir o PCB, sem ter que perder uma hora ou mais desenhando um esquema inútil para ele. (A biblioteca ainda faz algumas verificações muito básicas para garantir que minhas instruções não sejam completamente falsas, embora eu suspeite que o próprio KiCAD faria esse trabalho melhor.)

Arquivos PCB KiCad, por outro lado, são também texto, mas parece ser muito complexo demais para gerar programaticamente. O que é uma pena, porque o KiCAD padroniza o despejo de todos os componentes diretamente em cima um do outro, exigindo que eu gaste mais de 20 minutos tediosamente os separando novamente para que eu possa ver o que diabos estou fazendo. (O KiCAD tem o hábito desagradável de tentar mover o texto em vez do componente ao qual está anexado , presumivelmente apenas para tornar os PCBs mais difíceis de projetar?)

Talvez um dia eu consiga automatizar também o layout inicial do componente; Suspeito, como outros já disseram, que o bit "PCB design" real sempre envolva a GUI.

MathematicsOrchid
fonte
Seria bom para ligar um dos do GraphViz motores de layout até KiCad para a colocação inicial. Eu usei o graphviz para criar arquivos LTspice para layouts muito simples e funcionou razoavelmente bem.
pipe
3
Existem algumas ferramentas no Kicad para espalhar os componentes inicialmente, é chamado "Global spread and place". Para evitar mover texto, normalmente desabilito as camadas de texto para o layout. Afinal, pode-se ver o texto clicando se necessário.
jpa
4

Eu não recomendaria, mas se você realmente deseja, pode escrever a arte do PCB, sem nenhum programa de PCB. O código fica assim:

G90 *
1 G70 *
2 G54D10 *
3 G01X0Y0D02 *
4 X450Y330D01 *
5 X455Y300D03 *
6 G54D11 *
7 Y250D03 *
8 Y200D03 *
9 Y150D03 *
10 X0Y0D02 *
11 M02 *
12

Os números de linha na extrema direita não fazem parte do arquivo. Examinando esse arquivo sem nenhum conhecimento prévio de Gerber, deduziríamos corretamente que cada linha representa um comando de máquina específico e que o asterisco (*) é o caractere de fim de comando. Parece haver diferentes tipos de comandos: instruções iniciadas com dados de coordenadas G, D, M e x, y.

Fonte: https://www.artwork.com/gerber/appl2.htm

Aqui está uma especificação que mostra os diferentes comandos

Voltage Spike
fonte
2
Gerber (RS-274X) está relacionado aos arquivos de código G (RS-274) usados ​​na programação do CNC. Às vezes, escrevo o código G diretamente com um editor de texto para tarefas 2.5D simples.
Spehro Pefhany 31/07/19
5
Apenas uma observação: se você é gerber de codificação direta, não há nenhuma verificação de regra de design que não seja visualizada em sua cabeça. Não consigo imaginar digitar um arquivo de texto gerber, enviá-lo para a fab house sem nunca abrir o arquivo em uma ferramenta GUI apenas olhando para ele, a menos que você seja de algum tipo mais experiente.
mkeith 31/07/19
1
Eu não tinha certeza se Gerber estava relacionado ao código G, mas suspeitava. Se alguém precisar escrever uma camada superior simples para uma antena ou filtro, pode não ser tão ruim codificar algo por conta própria. Eu apenas editei o código G, mas nunca tentei escrevê-lo.
Voltage Spike
6
Qualquer pessoa que possa trabalhar melhor com o código G do que uma ferramenta visual de algum tipo para uma placa complexa seria definitivamente uma pessoa excepcional. Qualquer um que possa trabalhar diretamente no código G e ser produtivo teria que ser considerado um sábio, eu acho.
mkeith 31/07/19
1
Não conheço todos os 7,5 bilhões de pessoas no mundo, mas posso dizer com confiança que não existe uma única pessoa que faça um trabalho melhor olhando código gerber do que uma exibição gráfica para qualquer propósito profissional sério e de várias camadas Pranchas.
Whatsisname
1

Se você estiver usando o Kicad, veja alguns dos vídeos das palestras no primeiro KiCon (2019) no Youtube. Algumas das palestras foram explicitamente sobre os apresentadores que escreveram ferramentas para gerar as partes, uma também sobre as conexões. Pelo menos um python usado, que é incorporado como uma linguagem de script.

bandido
fonte
1
Você poderia elaborar e adicionar links para vídeos e ferramentas. (Acena para uma conferência pode ser um comentário interessante, mas não chega a qualificar-se como uma resposta.)
Nick Alexeev