¿Diseño de PCB usando código en lugar de hacer clic con el mouse? [cerrado]

14

Me estoy adentrando en el diseño de PCB y generalmente tengo problemas para aprender cómo usar las GUI con menús y clics del mouse. ¿Algunos ingenieros usan algo más como código para generar PCB?

guidoismo
fuente
77
No recomendaría escribir archivos gerber simples ...
Huisman
31
El diseño de PCB es principalmente una tarea visual: mover y rotar cosas para que encaje. Hacerlo por código suena doloroso.
JRE
3
Por lo general, hay teclas de acceso rápido para la mayoría (si no todos) los elementos del menú; la mayoría de las herramientas permiten el ingreso de texto para ubicación y orientación (pero es mucho más doloroso hacer eso que simplemente mover las cosas con el mouse). Utilizo las herramientas de texto para obtener una ubicación precisa de cosas como las vías y los pares diferenciales.
Peter Smith
44
Algunos paquetes CAD son más clicky que otros. En mi experiencia, Orcad Allegro es lo peor por hacerte pasar por muchas acciones GUI sin sentido para hacer las cosas más simples. Diptrace es prácticamente la experiencia de usuario más fácil y fluida. PADS es una cadena de herramientas muy agradable con una interfaz de usuario intuitiva y muchas características de alta gama. PADS es para ingenieros a los que les gusta hacer las cosas, Orcad es para masoquistas. : D
Wossname
2
Hay atajos de teclado y casos únicos en los que la generación programática de patrones tiene sentido, pero el diseño de PCB es principalmente una tarea gráfica interactiva. En contraste, las situaciones en las que la lógica domina sobre la realización física, como FPGA y (muchas partes del) diseño ASIC, generalmente son impulsadas por lenguajes de descripción de hardware que alimentan compiladores lógicos que alimentan herramientas automatizadas de ubicación y ruta. Si todavía estuviéramos construyendo procesadores de mainframe a partir de grandes placas llenas de TTL, podría haber un flujo de diseño comparable para HDL a PCB ... pero afortunadamente no lo somos.
Chris Stratton

Respuestas:

19

Altium tiene un lenguaje de script, de hecho, varios idiomas diferentes. En algunos casos, puede tener sentido usar algoritmos, por ejemplo, para crear diseños repetitivos o partes colocadas con precisión en ciertas posiciones.

Por ejemplo, he visto que solía colocar piezas (LED) en un patrón circular, aunque con su introducción de cuadrículas de coordenadas polares es mucho menos probable que valga la pena.

Hemos utilizado algoritmos para crear formas (piense antenas y ese tipo de cosas) directamente en formato .dxf que luego se pueden importar a una capa de cobre.

En general, el código es poco adecuado para los propósitos de diseño de PCB, particularmente para la tarea de enrutamiento.

Spehro Pefhany
fuente
17

En EAGLE CAD, todo lo que puede hacer con un mouse lo puede hacer desde la línea de comandos. También tiene un lenguaje de usuario que esencialmente puede programar.

Scott Seidman
fuente
2
Muy útil al hacer patrones, etc. Incluso si realiza el 99% del diseño manualmente, aún puede organizar las partes / características con código.
Wesley Lee
1
A menudo codifico en Matlab o en un procesador de texto para generar un lenguaje de script.
Scott Seidman
3
¡Si! Solía ​​hacerlo en Python :)
Wesley Lee
1
Esta es una de las principales ventajas de Eagle. Una vez que comience, solo usará la línea de comando.
D Duck
7

Utilizo código para generar la lista de red para mis PCB. (Es mucho, mucho más rápido escribir un bucle for para construir un multiplexor de N bits que dibujar laboriosamente todo eso en un esquema). Afortunadamente, los archivos de la lista de redes de KiCAD son solo texto, en un formato indocumentado pero razonablemente fácil de revertir -ingeniero.

Escribí una pequeña biblioteca de C # que me permite escribir lo que quiero conectar a qué (en términos de bloques de circuitos paramétricos reutilizables), y escupe automáticamente una lista de red. Ahora puedo importar eso directamente en KiCAD y comenzar a construir el PCB, sin tener que perder una hora o más dibujando un esquema inútil. (La biblioteca incluso realiza algunas comprobaciones muy básicas para garantizar que mis instrucciones no sean completamente falsas, aunque sospecho que KiCAD haría ese trabajo mejor).

Archivos PCB KiCAD, por el contrario, son también el texto, pero parecen ser mucho demasiado complejo para generar mediante programación. Lo cual es una lástima, porque KiCAD predetermina el volcado de todos los componentes directamente uno encima del otro, lo que requiere que pase más de 20 minutos separándolos tediosamente para que pueda ver qué demonios estoy haciendo. (KiCAD tiene la desagradable costumbre de tratar de mover el texto en lugar del componente al que está conectado , presumiblemente solo para hacer que los PCB sean más difíciles de diseñar?)

Quizás algún día logre automatizar también el diseño inicial del componente; Sospecho, como han dicho otros, que el bit "diseño de PCB" real siempre involucrará a la GUI.

Orquídea matemática
fuente
Sería bueno conectar uno de los motores de diseño de graphviz a KiCAD para la colocación inicial. He usado graphviz para hacer archivos LTspice para diseños muy simples y funcionó razonablemente bien.
tubería
3
Hay algunas herramientas en kicad para distribuir los componentes inicialmente, se llama "Distribución y ubicación global". Para evitar mover texto, normalmente desactivo las capas de texto para el diseño. Después de todo, uno puede ver el texto haciendo clic si es necesario.
jpa
4

No lo recomendaría, pero si realmente lo desea, puede escribir obras de arte de PCB usted mismo, sin ningún programa de PCB. El código se ve así:

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

Los números de línea en el extremo derecho no son parte del archivo. Examinando este archivo sin ningún conocimiento previo de Gerber, uno deduciría correctamente que cada línea representa un comando de máquina en particular y que el asterisco (*) es el carácter de fin del comando. Parece que hay diferentes tipos de comandos: instrucciones que comienzan con G, D, M y x, datos de coordenadas y.

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

Aquí hay una especificación que muestra los diferentes comandos

Pico de voltaje
fuente
2
Gerber (RS-274X) está relacionado con los archivos de código G (RS-274) utilizados en la programación de CNC. A veces escribo código G directamente con un editor de texto para tareas simples de 2.5D.
Spehro Pefhany
55
Solo una observación: si está codificando directamente gerbers, entonces no hay ninguna verificación de reglas de diseño que no sea la visualización en su cabeza. No puedo imaginar escribir un archivo gerber de texto y enviarlo a fab house sin tener que abrir el archivo en una herramienta GUI con solo mirarlo, a menos que sea un experto en el siguiente nivel.
mkeith
1
No estaba seguro de si Gerber estaba relacionado con el código G, pero tenía una sospecha. Si uno necesita escribir una capa superior simple para una antena o filtro, puede que no sea tan malo codificar algo usted mismo. Solo edité el código G, pero nunca intenté escribirlo.
Voltaje pico
66
Cualquiera que pueda trabajar mejor con el código G que una herramienta visual de algún tipo para un tablero complejo definitivamente sería una persona excepcional. Creo que cualquiera que pueda trabajar directamente en el código G y ser productivo debería ser considerado un sabio.
mkeith
1
No conozco a todos los 7,5 mil millones de personas en el mundo, pero puedo decir con confianza que no existe una sola persona que haga un mejor trabajo mirando el código gerber que una pantalla gráfica para cualquier propósito profesional serio de múltiples capas. tableros.
cuál es el
1

Si está utilizando Kicad, vea algunos de los videos de las charlas en el primer KiCon (2019) en Youtube. Un par de charlas fueron explícitamente sobre las herramientas de escritura de los presentadores para generar las partes, una también sobre las conexiones. Al menos uno usó python, que se hornea como lenguaje de script.

bandido
fuente
1
¿Podría por favor elaborar y agregar enlaces a videos y a las herramientas? (Agitar hacia una conferencia puede ser un comentario que valga la pena, pero no califica como respuesta.)
Nick Alexeev