← Zurück zur Werkstatt
Verbindungen

Die Leitung hat sich mit allem verbunden, nur nicht mit dem Richtigen

Wie das Verbindungssystem in Sketrix entstanden ist: aus Frust an einem fremden Werkzeug, über hunderte Sonderfälle, bis zu dem Punkt, an dem das Werkzeug zum Leitungziehen überflüssig wurde.

Was es tut → Schaltplan-Editor

Bevor es Sketrix gab, hab ich versucht, meine Schaltpläne mit einem freien Programm zu zeichnen. Kostenlos, läuft auf dem Mac, klang erstmal gut.

Ich bin damit nicht warm geworden. Das lag nicht am Programm, das bedienen andere Leute prima. Es lag daran, dass ich Jahre Industriekonstruktion in den Fingern hatte. Da zieht man keine Leitung, man setzt ein Symbol und die Verbindung ist da. Ich hab bei jeder einzelnen Verbindung wieder überlegen müssen, wie ich sie jetzt hinbekomme. Irgendwann hab ich das Fenster zugemacht.

Das saß im Hinterkopf, als ich mit Sketrix angefangen hab. Wenn ich schon was Eigenes baue, dann muss das Verbinden passiv gehen. Man zeichnet den Plan so, wie man denkt, und die Software macht die Verbindung, ohne dass man sie darum bittet.

Gleich aussehen heißt nicht gleich funktionieren

Optisch ist das Ergebnis dasselbe wie bei den großen Programmen. Zwei Symbole, dazwischen ein Strich. Der Unterschied liegt darin, wer den Strich zieht.

Jedes Symbol in Sketrix hat Anschlusspunkte, und jeder Anschlusspunkt zeigt in eine Richtung. Wenn zwei davon sich anschauen, gleiche Achse, entgegengesetzte Richtung, dann verbinden sie sich. Setzt man eine Ecke mitten auf eine bestehende Leitung, wird die Leitung an der Stelle geteilt und beide Hälften hängen weiter zusammen. Und bevor man überhaupt klickt, zeigt eine gestrichelte Vorschau, was gleich passieren wird.

Ausschnitt aus Sketrix: eine Abbruchstelle -L1 mit anklickbarem Querverweis auf =MA_1.B2, links die ankommende Leitung im Ort +SS.117 Ausschnitt aus Sketrix: eine Abbruchstelle -L1 mit anklickbarem Querverweis auf =MA_1.B2, links die ankommende Leitung im Ort +SS.117

Das sind drei Regeln. Aufgeschrieben passen sie in drei Sätze. Beim Bauen hatte ich keine Ahnung, was ich da tue, und alles, was zwischen den drei Regeln passiert, hat mir das dann beigebracht.

Hunderte Sonderfälle, und jeder einzelne hat sich gewehrt

Ich wusste damals nicht, was ein Edge-Case ist. Ich hab es dann gelernt, indem ich in jeden einzelnen reingelaufen bin.

Symbole haben sich gegenseitig durchgestrichen. Leitungen sind an Stellen kleben geblieben, die ich schon dreimal repariert hatte. Zwanzig Symbole hintereinander haben sich verbunden, wie sie wollten, und nicht so, wie ich es wollte. Diese verdammte Linie hat sich mit allem verbunden, was in der Nähe war, nur nicht mit dem, was ich verbinden wollte. Jeder Fix hat zwei neue Probleme produziert.

An dem Punkt hab ich ernsthaft überlegt, ob ich das Ganze hinschmeiße.

Stattdessen hab ich zwei Wochen umgebaut, ohne ein einziges neues Feature. Kein sichtbarer Fortschritt, nur Fundament. Danach hat es angefangen zu funktionieren.

Kleine Schritte, über Monate

Der eigentliche Bau liegt vor dem ersten Commit, den es von Sketrix gibt. Als ich das Projekt in die Versionsverwaltung gelegt hab, stand da im ersten Eintrag “MVP, 95 Prozent” und das Verbinden lief schon. Was danach kam, ist trotzdem der größere Teil der Arbeit.

Im Februar kamen die Knotenpunkte an T-Stücken dazu, orientiert an der Norm. Die Datei mit der Verbindungslogik ist zweimal geteilt worden, weil sie zu groß wurde. Im April dann Sachen, an die ich vorher nie gedacht hätte: dass ein senkrechter Anschluss eine Verbindung blockiert, obwohl er gar nichts damit zu tun hat. Dass ein T-Stück eine Kreuzung verhindert, die daneben liegt.

Heute stehen 23 Dateien und rund 7.200 Zeilen allein für das Verbinden. Von 3.074 Commits im Projekt betrifft jeder siebzehnte die Leitungen. Und es gibt acht Testdateien mit 141 Tests, die nichts anderes tun, als zu prüfen, ob sich die richtigen Sachen verbinden.

Der Moment, an dem ich gemerkt hab, dass es trägt, war ein anderer. Im März hab ich das Werkzeug “Leitung hinzufügen” aus der Schnittstelle für die KI-Anbindung wieder entfernt. Das Ding hat einwandfrei funktioniert, es hatte nur nichts mehr zu tun. Wer die Symbole setzt, kriegt die Leitungen dazu.

Und jetzt

Gebaut hab ich das ohne System, ohne Plan, ohne zu wissen, was ich tue. Heute würde ich dasselbe in einem Bruchteil der Zeit hinstellen, weil ich die Strukturen habe und weiß, wo es weh tut.

Gerade ziehe ich es glatt. Das Verbinden funktioniert, aber es hängen noch Reste dran, die aus der Zeit stammen, als ich es nicht besser wusste. Ein paar davon sieht man, die meisten nicht.

Der Bug mit den festklebenden Leitungen war übrigens lange absichtlich drin. Er hat mir gezeigt, welche Elemente wie zusammenhängen, während ich an ganz anderen Sachen saß. Bei diesem Umbau fliegt er jetzt raus. Er hat länger gehalten als geplant.

Martin

Sketrix ist Elektro-CAD (E-CAD) für Stromlaufpläne, Steuerungstechnik und Schaltschrankbau — mit Schaltzeichen orientiert an IEC 60617. Kein PCB-/Leiterplatten-Tool wie KiCad oder Eagle, sondern die Software für Schaltschrank, Klemmenplan und Elektroinstallation.