Guten Tag, für ein internes Projekt habe ich eine in C geschriebene Plugin-Library für das PCB-CAD Programm ABACOM Sprint-Layout 6.0 entwickelt. Die Plugin-Schnittstelle hatte ich vor einiger Zeit zusammen mit ABACOM entworfen und seitdem intern eingesetzt. Eigene Plugins können komplette Platineninhalte oder Selektionen exportieren, importieren, generieren oder verändern. Es ist immer noch einiges zu tun, aber die Basis steht. Besonders fehlen aktuell noch: - Dokumentation - Tests - Beispielprojekte - GUI-Integration - Konfiguration Da das Projekt sonst unveröffentlicht bleiben würde und ich aktuell keine Zeit habe, mich um die obigen Punkte zu kümmern, veröffentliche ich jetzt die Bibliothek für nicht-kommerzielle Zwecke einfach "as-is". Vielleicht hat ja jemand Lust Sprint-Layout etwas zu automatisieren :-) Der Code findet sich hier auf GitHub: https://github.com/LaminoidStudio/SprintTrace Durch die N/C-Klausel möchte ich mir v.A. nicht die Gelegenheit verbauen, die Software für eine mögliche kommerzielle Nutzung lizenzieren zu können. Weiteres zu Sprint-Layout findet sich hier: https://www.electronic-software-shop.com/sprint-layout-60.html ~ Benedikt
:
Bearbeitet durch User
evtl kannst du noch kurz erläutern wie man das installiert und bedient
bernte schrieb: > evtl kannst du noch kurz erläutern wie man das installiert und > bedient Als Anwender kann man die Plugins in einem beliebigen Ordner ablegen und das aktive Plugin über 'Extras -> Plugin definieren' bestimmen. Je nach Plugin-Typ (z.B. Plugin zum Export nach KiCAD, Plugin zum Vektorisieren von Bitmaps, ...) möchte man nun eine optionale Auswahl bestimmter Platinenelemente treffen, die man bearbeiten möchte (ohne Auswahl werden alle Elemente an das Plugin weitergereicht). Das Plugin kann nun entweder die Elemente direkt verarbeiten oder eine GUI anzeigen, in der weitere Einstellungen getroffen werden können (zu vektorisierendes Bild auswählen, Ausgabedatei wählen, Skalierungsfaktor, ...). Schließlich kann das Plugin optional Änderungen an den Elementen zurück in die Platine schreiben. Als Entwickler kann man die Bibliothek mittels CMake in eigene Plugin-Projekte einbinden und statisch linken. Die Plugins sind grundlegend so aufgebaut:
1 | #include <SprintTrace/plugin.h> |
2 | #include <SprintTrace/pcb.h> |
3 | #include <SprintTrace/elements.h> |
4 | #include <SprintTrace/primitives.h> |
5 | #include <SprintTrace/errors.h> |
6 | |
7 | int main(int argc, const char* argv[]) |
8 | {
|
9 | // Kommunikation zu Sprint-Layout herstellen und Daten laden
|
10 | sprint_require(sprint_plugin_begin(argc, argv)); |
11 | |
12 | // Die Platine abholen
|
13 | sprint_pcb* pcb = sprint_plugin_get_pcb(); |
14 | |
15 | // Verarbeiten von pcb.elements...
|
16 | |
17 | // Programm beenden und Daten an Sprint-Layout zurückreichen
|
18 | sprint_require(sprint_plugin_end(SPRINT_OPERATION_REPLACE_RELATIVE)); |
19 | return 0; // Redundant, da sprint_plugin_end() intern exit() aufruft |
20 | }
|
Zusätzlich zur PCB werden einige weitere Parameter aus Sprint-Layout übernommen, wie z.B. die Sprache: sprint_language sprint_plugin_get_language(void);
:
Bearbeitet durch User
Excelente library! I have developed a plugin called SprintFont. https://github.com/cdhigh/sprintFontRelease Unlucky I cannot found any library available before I started, so I spent many time to write a lot of code to interact with Sprint Layout. If I got your library before April 2022, maybe I would compile your library into a DLL and load in my project, that was much efficient.
cdhigh schrieb: > Excelente library! Thanks! > I have developed a plugin called SprintFont. Very well done! I like the explanatory drawings. Concerning features, you’ve done exactly what I was planning to do and more. Are you planning on releasing the source code?
I will release source code after sometime. I been developed by using Python, and the comment of code is all Chinese. There is no need to hide the source code of software developed in Python, because you can decompile it at any time, which is exactly the same as the source code. (only lack of comment)
I will release source code after sometime. It's developed by using Python, and the comment of code is all Chinese (it's useless to you). There is no need to hide the source code of software developed in Python, because you can decompile it at any time, which is exactly the same as the source code. (only lack of comment)
I released source code of SprintFont https://github.com/cdhigh/sprintFont (Don't complain, the comments are all in Chinese)
Cdhigh C. schrieb: > I released source code of SprintFont > https://github.com/cdhigh/sprintFont > > (Don't complain, the comments are all in Chinese) Very nice, thanks for sharing!
>Der Code findet sich hier auf GitHub: >https://github.com/LaminoidStudio/SprintTrace Eine sogenannte "Good Practice" ist eine Kurzbeschreibung zum GitHub Repository. Es sollte folgendermaßen aussehen: 1. What Um welches Thema handelt es sich 2. Why Warum wird die Software gebraucht, wie unterscheidet es sich von anderem, für was ist es gut. 3. How Wie wird die Software angewendet und installiert.
Christoph M. schrieb: > Eine sogenannte "Good Practice" ist eine Kurzbeschreibung zum GitHub > Repository. Die habe ich sonst auch, aber ich wollte das Projekt einfach veröffentlichen, bevor ich es vergesse. Danke für die Erinnerung, ich habe gerade eine kurze Beschreibung ergänzt.
:
Bearbeitet durch User
>Die habe ich sonst auch, aber ich wollte das Projekt einfach >veröffentlichen, bevor ich es vergesse. Danke für die Erinnerung, ich >habe gerade eine kurze Beschreibung ergänzt. Danke für die Beschreibung, so ist es schon einmal klarer. Früher habe ich Eagle benutzt, mittlerweile eher KiCad. Sprint Layout kenne ich gar nicht. Vielleicht müsste man in der Beschreibung noch nachtragen, ob es nur unter Windows oder auch anderen Systemen läuft.
Christoph M. schrieb: > Vielleicht müsste man in der Beschreibung noch > nachtragen, ob es nur unter Windows oder auch anderen Systemen läuft. Ist ergänzt. SprintTrace läuft auf allen drei Platformen (Windows 7+, Linux und macOS), wenn nur Text-IO Dateien verarbeitet werden sollen. Für den gehosteten 'regulären' Plugin-Modus ist jedoch Windows erforderlich.
Ab jetzt gibt es Unterstützung für die neue Soldermask-Cutout-Eigenschaft, die mit dem letzten Update dazugekommen ist
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.