Mientras escribía el guión más grande para Altium Designer

15,680 líneas, 800,053 caracteres: este es exactamente el tamaño que hoy creó mi script dentro de Altium Designer, un sistema para desarrollar placas de circuito impreso.

imagen

Inicio


Era 2014, trabajé como ingeniero de diseño, desarrollé placas de circuito. Aceptación militar, preparación de documentación de diseño completa (CD), control estándar de ESKD: todo esto hace que el software australiano-chino-estadounidense, que es el sistema Altium, sea asombroso. Dado que son ajenos a los GOST soviéticos, las antiguas instrucciones y estándares para el diseño de dibujos. Un empleado de nuestro departamento a veces pasaba un turno completo para que el dibujo de la junta satisficiera todas las reglas y regulaciones para diseñar un CD.
Ahora se hace en unos 10 minutos.

Decidí que puedes simplificar tu vida y la de una docena más de personas en el trabajo. Comencé a resolverlo, descubrí que hay una API abierta, comencé a mirar ejemplos y listo, mi primer script para Altium ya está dibujando una línea en el tablero: no hay límite para la alegría.

Poco a poco, poco a poco, amplié mis conocimientos de programación, ya que antes no había encontrado mucho de eso, en la universidad recuerdo que el péndulo escribió durante un semestre y eso es todo.

Primera interfaz


Llegó al punto de que la interfaz debía hacerse, al principio era así:

imagen

Esta versión ya sabía cómo dibujar dimensiones, llamadas con flechas.

Debe entenderse que no había una explicación especial en la documentación, nadie tenía experiencia en el uso de funciones de la API, solo algunos scripts en los scripts github y altium estándar. Descripción en la wiki hasta el día de hoy de la categoría:

SetState_Enabled method (IPCB_Primitive interface) Syntax Procedure SetState_Enabled (Value : Boolean); Description Example See also IPCB_Primitive interface 

Y toda la descripción, aunque fue posible determinar cómo funciona por prueba y error.

Cada vez que introducía nuevas funciones era un placer, porque cuando ve cómo la gente usa su trabajo y todo funciona, no es por eso que se crean los programas. En esta etapa, el tiempo para elaborar dibujos ya se ha reducido a la mitad.

Desarrollo


La siguiente versión ya se veía así:

imagen

Ella ya sabía cómo insertar hojas dentro del tablero, sombrear polígonos para un dibujo, insertar una cuadrícula y otros elementos para un dibujo.

El principal problema era que el entorno de desarrollo Altium es un sistema para desarrollar placas de circuito. No tiene suficientes herramientas para diseñar un CD, y aún más para los estándares rusos. Básicamente, las secuencias de comandos expandieron el conjunto de herramientas estándar del entorno para que también pudiera desarrollar un CD e imprimirlo.

Por ejemplo, implementé la inserción de hojas de diferentes formatos directamente en el código, no hice archivos separados. Utilicé tablas de Excel para esto, inserté manualmente el formato en el archivo pcb, destaqué todas las propiedades de todas las líneas, sus coordenadas, anchos, coordenadas de texto, etc. y poner todo esto en una matriz regular. Luego, el script creó en orden cada una de las líneas de formato en el archivo del tablero. Y así para cada hoja de todos los formatos.

Nuestros dias


Ahora el programa se ve así:

imagen

imagen

Nunca soy diseñador, a veces tuve que esculpir botones en cualquier lugar, miré los sistemas CAD más famosos, cómo se hacen los menús, configuraciones, botones desplegables, etc.

Aquí hay un ejemplo del script en sí
imagen

imagen

Total a bordo:

  • Más de 50 configuraciones, guardándolas dentro del archivo de la placa
  • Actualización de dibujos al hacer cambios en el tablero
  • Insertar vistas automáticamente en el centro de las hojas.
  • Generación de PDF con un botón
  • Edición de dimensiones con recálculo de desviaciones sobre la marcha
  • Malla radial, malla de 4 lados, riesgos, tono personalizable
  • Guardar miniaturas en formato txt para uso futuro

y mucho mas

Un montón de nervios, fuerza, paciencia, noches de insomnio. Hacer dibujos en el trabajo no tiene precio.

El guión fue escrito por mí solo por cuarto año, y sin el uso de un gita, temas oscuros y otras cosas). Solo pascal, solo hardcore. ¡Gracias por hojear hasta el final, estaré encantado de comunicarme!

Un ejemplo de un dibujo dibujado dentro de una PCB

Versión del programa para probar

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


All Articles