15.680 Zeilen, 800.053 Zeichen - das ist genau die Größe, mit der mein Skript heute in Altium Designer erstellt wird - einem System zur Entwicklung von Leiterplatten.

Starten Sie
Es war 2014, ich arbeitete als Konstrukteur, entwickelte Leiterplatten. Militärische Akzeptanz, Erstellung der vollständigen Konstruktionsdokumentation (CD), Standardsteuerung der ESKD - all dies beeindruckt die australisch-chinesisch-amerikanische Software, das Altium-System. Da sie sowjetischen GOSTs fremd sind, alte Anweisungen und Standards für die Gestaltung von Zeichnungen. Ein Mitarbeiter unserer Abteilung verbrachte manchmal eine ganze Schicht, damit die Tafelzeichnung alle Regeln und Vorschriften für das Entwerfen einer CD erfüllt.
Jetzt ist es in ca. 10 Minuten erledigt.
Ich habe beschlossen, dass Sie das Leben von sich selbst und einem Dutzend weiterer Menschen bei der Arbeit vereinfachen können. Ich fing an, es herauszufinden, stellte fest, dass es eine offene API gibt, fing an, Beispiele zu betrachten und voila, mein erstes Skript für Altium zeichnet bereits eine Linie an die Tafel - der Freude sind keine Grenzen gesetzt.
Langsam, nach und nach erweiterte ich meine Programmierkenntnisse, weil ich vorher nicht viel davon erlebt hatte. An der Universität erinnere ich mich, dass das Pendel für ein Semester geschrieben wurde und das ist alles.
Erste Schnittstelle
Es kam zu dem Punkt, dass die Schnittstelle erstellt werden musste, ganz am Anfang war es so:

Diese Version wusste bereits, wie man Dimensionen und Beschriftungen mit Pfeilen zeichnet.
Es versteht sich, dass es in der Dokumentation keine spezielle Erklärung gab, niemand Erfahrung mit der Verwendung von Funktionen aus der API hatte, nur einige
Skripte auf dem Github und Standard-Altium-Skripte. Beschreibung im Wiki bis heute aus der Kategorie:
SetState_Enabled method (IPCB_Primitive interface) Syntax Procedure SetState_Enabled (Value : Boolean); Description Example See also IPCB_Primitive interface
Und die ganze Beschreibung, obwohl es möglich war, durch Versuch und Irrtum festzustellen, wie es funktioniert.
Jedes Mal, wenn neue Funktionen eingeführt wurden, war es ein Vergnügen, denn wenn Sie sehen, wie Menschen Ihre Arbeit nutzen und alles funktioniert, werden die Programme nicht erstellt. Zu diesem Zeitpunkt wurde die Zeit für die Erstellung von Zeichnungen bereits um fast die Hälfte reduziert.
Entwicklung
Die nächste Version sah schon so aus:

Sie wusste bereits, wie man Blätter in die Tafel einfügt, Polygone für eine Zeichnung schraffiert, ein Gitter und andere Elemente für eine Zeichnung einfügt.
Das Hauptproblem war, dass die Altium-Entwicklungsumgebung ein System zur Entwicklung von Leiterplatten ist. Es gibt nicht genügend Werkzeuge zum Entwerfen einer CD, und dies gilt umso mehr für russische Verhältnisse. Grundsätzlich hat Scripting das Standard-Toolkit der Umgebung erweitert, sodass Sie auch eine CD entwickeln und ausdrucken können.
Zum Beispiel habe ich das Einfügen von Blättern verschiedener Formate direkt in den Code implementiert, keine separaten Dateien erstellt. Ich habe dafür Excel-Tabellen verwendet, das Format manuell in die PCB-Datei eingefügt und alle Eigenschaften aller Linien, ihre Koordinaten, Breiten, Textkoordinaten usw. hervorgehoben. und setzen Sie all dies in ein reguläres Array. Anschließend erstellte das Skript in der angegebenen Reihenfolge jede der Formatzeilen in der Board-Datei selbst. Und so für jedes Blatt aller Formate.
Unsere Tage
Jetzt sieht das Programm so aus:


Ich bin nie Designer, ich musste manchmal irgendwo Schaltflächen formen, ich habe mir die bekanntesten CAD-Systeme angesehen, wie die Menüs, Einstellungen, Dropdown-Schaltflächen usw. erstellt werden.
Hier ist ein Beispiel für das Skript selbst Insgesamt an Bord:
- Über 50 Einstellungen, die in der Board-Datei gespeichert werden
- Aktualisieren von Zeichnungen, wenn Änderungen an der Platine vorgenommen werden
- Fügen Sie Ansichten automatisch in die Mitte der Blätter ein
- PDF-Generierung mit einer Schaltfläche
- Bearbeiten von Dimensionen mit Neuberechnung von Abweichungen im laufenden Betrieb
- Radiales Netz, 4-seitiges Netz, Risiken, anpassbare Teilung
- Speichern von Miniaturansichten im TXT-Format für die zukünftige Verwendung
und vieles mehr.
Viele Nerven, Kraft, Geduld, schlaflose Nächte - verbracht. Zeichnungen bei der Arbeit zu machen ist von unschätzbarem Wert.
Das Drehbuch wurde von mir allein für das vierte Jahr geschrieben und ohne Verwendung einer Gita, dunkler Themen und anderer Dinge. Nur Pascal, nur Hardcore. Vielen Dank für das Durchblättern bis zum Ende, ich werde gerne kommunizieren!
Ein Beispiel für eine gezeichnete Zeichnung in einer LeiterplatteProgrammversion zum Ausprobieren