Conception de PCB en utilisant du code au lieu de cliquer sur une souris? [fermé]

14

Je commence à peine à concevoir des PCB et j'ai généralement du mal à apprendre à utiliser les interfaces graphiques avec les menus et les clics de souris. Certains ingénieurs utilisent-ils quelque chose de plus comme du code pour générer des PCB?

guidoisme
la source
7
Je ne recommanderais pas d'écrire des fichiers gerber simples ...
Huisman
31
La disposition des PCB est principalement une tâche visuelle - déplacer et faire tourner des éléments pour les adapter. Le faire par code semble douloureux.
JRE
3
Il existe généralement des touches de raccourci pour la plupart (sinon la totalité) des éléments de menu; la plupart des outils permettent la saisie de texte pour l'emplacement et l'orientation (mais il est beaucoup plus pénible de le faire que de simplement déplacer des objets avec une souris). J'utilise les outils de texte pour obtenir un placement précis de choses comme des vias et des paires différentielles.
Peter Smith
4
Certains packages CAO sont plus cliquables que d'autres. D'après mon expérience, Orcad Allegro est le pire pour vous faire passer par de nombreuses actions GUI inutiles pour faire les choses les plus simples. Diptrace est à peu près l'expérience utilisateur la plus simple et la plus fluide. PADS est une très belle chaîne d'outils avec une interface utilisateur intuitive et de nombreuses fonctionnalités haut de gamme. PADS est pour les ingénieurs qui aiment faire avancer les choses, Orcad est pour les masochistes. : D
Wossname
2
Il existe des raccourcis clavier et des cas uniques où la génération programmée de motifs a du sens, mais la disposition des PCB est principalement une tâche graphique interactive. Dans les situations de contraste où la logique domine le mode de réalisation physique comme FPGA et (de nombreuses parties de) la conception ASIC sont généralement pilotées par des langages de description matérielle alimentant des compilateurs logiques alimentant des outils automatisés de localisation et de routage. Si nous étions encore en train de construire des processeurs mainframe à partir de grandes cartes pleines de TTL, il pourrait y avoir un flux de conception comparable pour HDL vers PCB ... mais heureusement, nous ne le sommes pas.
Chris Stratton

Réponses:

19

Altium possède un langage de script, plusieurs langages différents, en fait. Dans certains cas, il peut être judicieux d'utiliser des algorithmes, par exemple pour créer des dispositions répétitives ou des pièces placées précisément dans certaines positions.

Par exemple, je l'ai vu utilisé pour placer des pièces (LED) dans un motif circulaire, bien qu'avec leur introduction de grilles d'accrochage aux coordonnées polaires, il soit beaucoup moins probable que cela en vaille la peine.

Nous avons utilisé des algorithmes pour créer des formes (pensez aux antennes et ce genre de choses) directement au format .dxf qui peuvent ensuite être importées dans une couche de cuivre.

En général, le code est mal adapté aux fins de mise en page PCB, en particulier pour la tâche de routage.

Spehro Pefhany
la source
17

Dans EAGLE CAD, tout ce que vous pouvez faire avec une souris, vous pouvez le faire à partir de la ligne de commande. Il a également une langue utilisateur dans laquelle vous pouvez essentiellement programmer.

Scott Seidman
la source
2
Très utile lors de la création de motifs, etc. Même si vous effectuez 99% de la mise en page manuellement, vous pouvez toujours organiser les pièces / fonctions avec du code.
Wesley Lee
1
Souvent, je code dans Matlab ou un processeur de texte pour produire un langage de script.
Scott Seidman
3
Oui! Je le faisais en Python :)
Wesley Lee
1
C'est l'un des principaux avantages d'Eagle. Une fois que vous aurez commencé, vous n'utiliserez que la ligne de commande.
D Duck
7

J'utilise du code pour générer la netlist de mes PCB. (Il est beaucoup, beaucoup plus rapide d'écrire une boucle for pour construire un multiplexeur N bits que de dessiner laborieusement tout cela dans un schéma.) Heureusement, les fichiers de netlist KiCAD ne sont que du texte, dans un format non documenté mais raisonnablement facile à inverser -ingénieur.

J'ai écrit une petite bibliothèque C # qui me permet de taper ce que je veux connecté à quoi (en termes de blocs de circuits paramétriques réutilisables), et il crache automatiquement une netlist. Maintenant, je peux simplement importer cela directement dans KiCAD et commencer à construire le PCB, sans avoir à perdre une heure ou plus à dessiner inutilement un schéma pour cela. (La bibliothèque effectue même des vérifications très basiques pour s'assurer que mes instructions ne sont pas complètement fausses, bien que je soupçonne que KiCAD lui-même ferait mieux ce travail.)

Les fichiers PCB KiCAD, d'autre part, sont également du texte, mais semblent être beaucoup trop complexes pour être générés par programme. Ce qui est dommage, car KiCAD par défaut vide tous les composants les uns sur les autres, ce qui m'oblige à passer plus de 20 minutes à les séparer à nouveau pour que je puisse voir ce que je fais. (KiCAD a la méchante habitude d'essayer de déplacer le texte plutôt que le composant auquel il est attaché , probablement pour rendre les PCB plus difficiles à concevoir?)

Peut-être qu'un jour je parviendrai à automatiser également la disposition initiale des composants; Je soupçonne, comme d'autres l'ont dit, que le bit "PCB design" impliquera toujours l'interface graphique.

MathematicalOrchid
la source
Ce serait bien de connecter un des moteurs de mise en page de graphviz à KiCAD pour le placement initial. J'ai utilisé graphviz pour créer des fichiers LTspice pour des mises en page très simples et cela a fonctionné assez bien.
pipe
3
Il y a quelques outils dans kicad pour étaler les composants au départ, c'est ce qu'on appelle "propagation et emplacement global". Pour éviter de déplacer du texte, je désactive généralement les calques de texte pour la mise en page. Après tout, on peut voir le texte en cliquant si nécessaire.
jpa
4

Je ne le recommanderais pas, mais si vous le désirez vraiment, vous pouvez écrire des illustrations de PCB vous-même, sans aucun programme PCB. Le code ressemble à ceci:

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

Les numéros de ligne à l'extrême droite ne font pas partie du fichier. En examinant ce fichier sans aucune connaissance préalable de Gerber, on déduirait correctement que chaque ligne représente une commande de machine particulière et que l'astérisque (*) est le caractère de fin de commande. Il semble qu'il existe différents types de commandes: des instructions commençant par les données de coordonnées G, D, M et x, y.

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

Voici une spécification qui montre la différentes commandes

Pic de tension
la source
2
Gerber (RS-274X) est lié aux fichiers de code G (RS-274) utilisés dans la programmation CNC. J'écris parfois du code G directement avec un éditeur de texte pour de simples tâches 2.5D.
Spehro Pefhany
5
Juste une observation: si vous êtes des gerberistes à codage direct, il n'y a pas de vérification des règles de conception autre que celle que vous visualisez dans votre tête. Je ne peux pas imaginer taper un fichier gerber de texte, l'envoyer à fab house sans jamais ouvrir le fichier dans un outil graphique en le regardant, à moins que vous ne soyez un savant de niveau supérieur.
mkeith
1
Je ne savais pas si Gerber était lié au code G, mais j'avais des soupçons. Si l'on avait besoin d'écrire une simple couche supérieure pour une antenne ou un filtre, il ne serait peut-être pas trop mal de coder quelque chose vous-même. Je n'ai édité que du code G, mais je n'ai jamais essayé de l'écrire.
Voltage Spike
6
Quiconque peut mieux travailler avec le G-code qu'un outil visuel quelconque pour une carte complexe serait certainement une personne exceptionnelle. Quiconque peut travailler directement en G-code et être productif devrait être considéré comme un savant, je pense.
mkeith
1
Je ne connais pas les 7,5 milliards de personnes dans le monde, mais je peux dire en toute confiance qu'il n'y a pas une seule personne qui ferait un meilleur travail en regardant le code Gerber qu'un affichage graphique pour un usage professionnel sérieux et multicouche planches.
whatsisname
1

Si vous utilisez Kicad, regardez certaines des vidéos des conférences lors du premier KiCon (2019) sur Youtube. Quelques discussions ont été explicitement sur les outils d'écriture des présentateurs pour générer les pièces, une aussi sur les connexions. Au moins un python utilisé, qui est intégré dans un langage de script.

bandit
la source
1
Pourriez-vous s'il vous plaît élaborer et ajouter des liens vers des vidéos et vers les outils. (Agiter vers une conférence pourrait être un commentaire valable, mais cela ne constitue pas tout à fait une réponse.)
Nick Alexeev