Comme j'ai écrit le plus gros script pour Altium Designer

15 680 lignes, 800 053 caractères - c'est exactement la taille aujourd'hui mon script est créé dans Altium Designer - un système pour développer des cartes de circuits imprimés.

image

Commencer


C'était en 2014, j'ai travaillé comme ingénieur de conception, développé des circuits imprimés. Acceptation militaire, préparation de la documentation de conception complète (CD), contrôle standard de l'ESKD - tout cela fait peur au logiciel australo-sino-américain, qui est le système Altium. Puisqu'ils sont étrangers aux GOST soviétiques, les anciennes instructions et normes pour la conception des dessins. Un employé de notre département a parfois passé un quart de travail afin que le dessin du tableau satisfasse à toutes les règles et réglementations pour la conception d'un CD.
Maintenant, cela se fait en 10 minutes environ.

J'ai décidé que vous pouvez vous simplifier la vie et celle d'une douzaine de personnes au travail. J'ai commencé à comprendre, j'ai trouvé qu'il y avait une API ouverte, j'ai commencé à regarder des exemples et le tour est joué, mon premier script pour Altium dessine déjà une ligne au tableau - il n'y a pas de limite à la joie.

Lentement, petit à petit, j’ai élargi mes connaissances en programmation, car avant je n’en avais pas rencontré grand chose, à l’université je me souviens du pendule écrit pour un semestre et c’est tout.

Première interface


Il est arrivé au point que l'interface devait être faite, au tout début c'était comme ceci:

image

Cette version savait déjà dessiner des cotes, des légendes avec des flèches.

Il faut comprendre qu'il n'y avait aucune explication particulière dans la documentation, personne n'avait d'expérience dans l'utilisation des fonctions de l'API, seulement quelques scripts sur le github et les scripts altium standard. Description sur le wiki à ce jour de la catégorie:

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

Et toute la description, bien qu'il ait été possible de déterminer comment cela fonctionne par essais et erreurs.

À chaque fois, introduire de nouvelles fonctions était un plaisir, car lorsque vous voyez comment les gens utilisent votre travail et que tout fonctionne, ce n'est pas pourquoi les programmes sont créés. A ce stade, le temps de réalisation des dessins a déjà été réduit de près de moitié.

Développement


La prochaine version ressemblait déjà à ceci:

image

Elle savait déjà insérer des feuilles à l'intérieur du tableau, hachurer des polygones pour un dessin, insérer une grille et d'autres éléments pour un dessin.

Le principal problème était que l'environnement de développement Altium est un système de développement de circuits imprimés. Il ne dispose pas de suffisamment d'outils pour concevoir un CD, et encore plus selon les normes russes. Fondamentalement, les scripts ont étendu la boîte à outils standard de l'environnement afin que vous puissiez également développer un CD et l'imprimer.

Par exemple, j'ai implémenté l'insertion de feuilles de différents formats directement dans le code, je n'ai pas fait de fichiers séparés. J'ai utilisé des tableaux Excel pour cela, inséré manuellement le format dans le fichier pcb, mis en évidence toutes les propriétés de toutes les lignes, leurs coordonnées, largeurs, coordonnées de texte, etc. et mettre tout cela dans un tableau régulier. Ensuite, le script dans l'ordre a créé chacune des lignes de format dans le fichier de carte lui-même. Et donc pour chaque feuille de tous les formats.

Nos journées


Maintenant, le programme ressemble à ceci:

image

image

Je ne suis jamais designer, j'ai parfois dû sculpter des boutons n'importe où, j'ai regardé les systèmes de CAO les plus célèbres, comment les menus, les paramètres, les boutons déroulants, etc.

Voici un exemple du script lui-même
image

image

Total à bord:

  • Plus de 50 paramètres, les enregistrant dans le fichier de la carte
  • Mise à jour des dessins lors de la modification de la carte
  • Insérer automatiquement des vues au centre des feuilles
  • Génération de PDF en un seul bouton
  • Modification des dimensions avec recalcul des écarts à la volée
  • Maille radiale, maille 4 côtés, risques, pas personnalisable
  • Enregistrement des vignettes au format txt pour une utilisation future

et bien plus.

Beaucoup de nerfs, de force, de patience, de nuits blanches - passées. Faire des dessins au travail n'a pas de prix.

Le script a été écrit par moi seul pour la quatrième année, et sans l'utilisation d'une gita, de thèmes sombres et d'autres choses). Seulement pascal, seulement hardcore. Merci d'avoir feuilleté jusqu'au bout, je me ferai un plaisir de communiquer!

Un exemple d'un dessin dessiné à l'intérieur d'un PCB

Version du programme à essayer

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


All Articles