Sprint-Layout 6.0 Plugin Library

OP #7119059
Lesenswert?

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
OP #7126115
Lesenswert?

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);
Gast #7140205
Lesenswert?

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)
Gast #7140207
Lesenswert?

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)
#7141752
Lesenswert?

>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.
#7143216
Lesenswert?

>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.
OP #7767973
Lesenswert?

Benny G. schrieb:

Hi Benedikt, ich meinte eine ausführbare Datei die ich als Plugin einbinden kann. Oder verstehe ich dein Plugin falsch? Ich war an der soldermask cutout Funktion interessiert bzw neugierig was dahinter steckt.

Aus Neugier, was möchtest du mit der Soldermask Cutout-Funktion umsetzen?

Die Idee hinter der Plugin Library ist, dass man diese in ein eigenes Programm integrieren kann, um beliebige Aktionen mit den Layouts durchzuführen. Man kann Elemente ersetzen, löschen und durch den Benutzer einfügbar machen. Die Library übernimmt dabei alles (man braucht also nur ein paar Zeilen (statt einigen Tausend) um eigene Projekte umzusetzen.

OP #7768432
Lesenswert?

Benny G. schrieb:

Ich suche nache einer Möglichkeit soetwas, wie hier auf dem Bild gezeigt, umzusetzen

Eine Lösung für das Problem wäre es, die Layer generell zu invertieren. Sprint-Layout kann das nicht direkt, aber man kann die Gerber entsprechend anpassen:

  1. Gerber im Texteditor öffnen
  2. Nach "%IPPOS*%" suchen
  3. "POS" durch "NEG" ersetzen
  4. Speichern

Ob das bei allen Fertigern funktioniert, kann ich nicht sagen.

OP #7769009
Lesenswert?

Benny G. schrieb:

Das klappt nicht. Die Suche findet nichts im Gerber File was ich ersetzen könnte.

Du kannst versuchen, die Zeile am Anfang hinzuzufügen.

Edit: Du hast noch ein Plugin zum Export zu KiCad erwähnt, wo gibt es das? Vielleicht lässt es sich dann über Umwege mit Kicad realisieren.

Das Plugin war mehr eine Empfehlung, was sich damit umsetzen lässt. Ich hatte damals darüber nachgedacht, es zu schreiben um Bauteile importieren zu können, bin aber nie dazu gekommen. Es macht mir weniger Arbeit, neue Footprints einfach selbst anzulegen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren