CNC Simulator Editor

Heute gibt es eine ganze Menge in einem einzigen Artikel verpackt:

  • Eine interessante Kodierungsidee,

  • ein Beispiel dafür wie schnell man mit KI entwickeln kann,

  • einen Simulator zum Üben der G-Code Programmierung,

  • einen Ausflug in die Leiterplattenentwicklung

  • ein Beispiel für den praktischen Einsatz des Pocket Computers Sharp PC-1251,

  • eine nützliche Erfindung von mir in meinen jungen Jahren und

  • ein Beispiel für den Einsatz von genetischen Algorithmen.

Beruflich hatte ich vor einigen Jahren die Aufgabe eine Maschinensteuerung für Erodiermaschinen auf Basis von Webtechnologie neu zu entwickeln. Die vorhandene Steuerung besaß auch einen einfachen Editor, mit dem die Maschinenbetreuer einfache Werkstückbearbeitung programmieren konnten. Da die Umsetzung sehr viele verschiedene Aufgaben beinhaltete und ich außerdem noch einen Lehrling ‚Fachinformatiker für Anwendungsentwicklung‘ zu betreuen hatte, kam ich nicht dazu allen Teilaufgaben die gleiche Aufmerksamkeit zu schenken. Aber gelegentlich dachte ich darüber nach wie ich den Editor mit Hilfe von HTML, Javascript und CSS umsetzen konnte.

Als Fan von Baumstrukturen wollte ich so Dinge wie Programmschleifen grafisch darstellen und dachte darüber nach wie ich das mit geschachtelten Blöcken realisieren konnte. Bei meinen bisherigen Erfahrungen mit der Entwicklung von Baumeditoren war die Speicherung der Struktur immer unabhängig von der Darstellung. Beim Grübeln über den Editor traf mich plötzlich ein Geistesblitz und mir wurde schlagartig klar, das ich diesmal zur Speicherung der Struktur die Darstellung selbst nutzen konnte! Einfach die Baumstruktur in HTML durch DIVs abgebildet und zur Laufzeit über den DOM manipuliert! Schnell entwarf ich einen simplen Prototyp um meine Überlegungen zu prüfen:

Builder

Leider kam es nicht dazu den Prototyp zu einem vollständigen Produkt weiter zu entwickeln.

Letztens bin ich beim Stöbern in meinen Entwickler Verzeichnissen über den Prototyp des Builder gestoßen und die Idee faszinierte mich sofort wieder. Durch meine in den letzten Monaten gemachten Erfahrungen mit KI entschloss ich mich zu versuchen den Builder weiterzuentwickeln. Das sollte mit KI maximal ein oder zwei Tage dauern. Was dabei heraus gekommen ist könnt Ihr hier sehen:

CNC Simulator Editor

Das Ergebnis mag noch immer kein ausgereiftes Produkt sein, aber es sieht bei weitem besser als der Prototyp aus und besitzt wesentlich mehr Funktionen, wobei die bedeutendsten unter der Haube sind, sprich: im Code versteckt. Denn dort gibt es einen Konfigurationsbereich, mit dem es möglich ist den Editor an ganz verschiedene Aufgaben einfach nur durch Text anzupassen. Auf dem Weg dahin habe ich auch einen universellen Json Editor gebaut. Bei Interesse solch einen Editor bei Ihnen einzusetzen können Sie sich gern an mich wenden.

Warum einen CNC Simulator Editor?

Ganz am Anfang meiner beruflichen Karriere habe ich in einer Firma gearbeitet die Funkgeräte für Militär, Hilfsorganisationen im Bevölkerungsschutz oder Taxis hergestellt hat, die Firma Teletron/Pfitzner. Dort hatte man sich irgendwann entschlossenen auch die elektronischen Platinen für diese Geräte selbst herzustellen und um diese zu fertigen bedurfte es einer CNC Bohr- und Fräsmaschine! Eine Zeit lang habe ich diese bedient und Bohr- und Fräsprogramme dafür erstellt. Aus nostalgischer Erinnerung daran habe ich mir überlegt einen Editor für eine fiktive Bohr- und Fräsmaschine zu entwickeln, der sich stark am sogenannten G-Code für CNC Maschinen orientiert. Kaum nachdem ich diesen fertig hatte dachte ich, es wäre schön den gerade erstellten G-Code auch ausprobieren zu können. Und schon entwickelte ich einen Simulator dafür!

Das alles findet sich in einer einzigen HTML-Seite! Komplett mit HTML, Javascript und CSS. Ihr könnt Euch die Seite herunterladen und lokal verwenden.

Hintergründe

Ich habe für Euch zwei interessante Beispielprogramme erstellt, die jeweils für weitere intellektuelle Anregung verwendet werden können.

Der ‚Nutzen‘

In der Leiterplattenfertigung werden Platinen aus riesigen kupferbeschichtetem Platten aus glasfaserverstärktem Epoxidharz-Kunststoff hergestellt. Damit diese überhaupt auf den Bohrtisch passen, müssen sie in kleinere einzelne Platten mit einer sogenannten Schlagschere zerschnitten werden. Dabei gibt es unterschiedlich viel Verschnitt, je nachdem ob Länge oder Breite der kleineren Platten an Länge und Breite der großen Platten ausgerichtet werden. Das wurde bei uns damals willkürlich gemacht. Eine meiner ersten Maßnahmen dort war es ein Programm für den kleinen Pocket Computer von Sharp PC-1251 zu schreiben, mit dem schnell festgestellt werden konnte, bei welcher Ausrichtung weniger Verschnitt entsteht.

Aber selbst die kleinen Platten wurden noch einmal aufgeteilt, da die in den Funkgeräten verwendeten Platinen noch einmal viel kleiner waren und darum gab es auch auf diesen eine Aufteilung in Reihen und Spalten. Die Platten werden ‚Nutzen‘ genannt.

‚Nutzen‘ ist in der Fertigung ein ziemlich technischer Begriff, kein allgemeiner. Gemeint ist meistens ein größeres Fertigungsstück (Panel, Bogen, Platte, Leiterplattenverbund usw.), auf dem mehrere einzelne Teile gleichzeitig gefertigt werden.

In der Leiterplattenfertigung werden nicht einzelne Platinen hergestellt, sondern ein „Nutzen“ (z. B. 4×6 Platinen auf einer großen Platte). Dieser wird später durch Sägen, Fräsen oder Brechen vereinzelt.

Abbrechkante

So kann ich zum ersten Mal über eine meiner ‚Erfindungen‘ berichten und sie sogar grafisch darstellen. Und zwar sind das die von mir so genannten Abbrechkanten bei elektronischen Platinen. Die Nutzen kamen gleich zwei Mal auf den Bohr-/Frästisch, einmal komplett mit Kupfer beschichtet, dabei gab es auch einseitig und zweiseitig beschichtete Platten. In diesem Zustand wurden Löcher für die sogenannte Durchkontaktierung gebohrt. Danach gingen in sie in die Galvanik um das Kupfer auf den Oberflächen so wegzuätzen, das nur die Leiterbahnen übrig bleiben und um in den Löchern Durchkontaktierungen zu erzeugen. Später kamen sie zurück und es wurden teilweise noch weitere Löcher gebohrt und zum Abschluss die einzelne Platine heraus gefräst. Und genau dabei gab es ein Riesenproblem: Denn in dem Moment in dem die Platine fast fertig heraus gefräst war, knickte sie etwas zur Seite und sorgte dabei oft zum Abbruch des Fräsers. Die waren ziemlich teuer, denn die Drehzahlen der Fräser waren im 5-stelligen Bereich und somit waren das Präzisionswerkzeuge.

Ich hatte mir das eine Zeit lang angesehen – ich besaß damals noch nicht die innere Einstellung für jedes Problem sofort eine Lösung zu entwickeln – bis ich anfing mir zu überlegen was man dagegen tun konnte. Schließlich hatte ich die Idee die Platine nicht komplett auszufräsen, sondern stattdessen an ein paar Seiten eine Reihe winziger Löcher mit sehr geringen Abständen zu bohren. Das sorgte dafür das die Platine nicht beim Ausfräsen schon lose wurde, sondern das man sie in einem weiteren Arbeitsschritt herausbrechen musste. Das sparte Fräser, das Wechseln abgebrochener Fräser, und die Neupositionierung des Fräskopfes an der abgebrochenen Stelle. Es sparte Zeit und Geld und verbesserte meinen Ruf in der Firma.

Vor ein paar Jahren bestellte ich irgendeine Platine aus China und erkannte sofort die typischen Abbrechstellen. Im ersten Moment dachte ich meine Idee von damals hat sich bis nach China verbreitet, ich hätte vielleicht ein Patent anmelden sollen. Aber wahrscheinlicher ist es das die gleichen Probleme auch unabhängig voneinander zu ähnlichen Lösungen führen. Wie auch immer, hier ist ein Nutzenprogramm für so eine Platine und Ihr könnt Euch den Fräsvorgang live mit meinem Simulator ansehen:

Platinen Nutzen

Speichert das Programm lokal ab. Dann könnt Ihr es im Simulator laden.

Etwas später in meinem Leben, während meines Informatik Studiums, wurde ich mit dem Travelling Salesman Problem (TSP) konfrontiert. Dabei geht es um die optimale bzw. kürzeste Route durch alle von einem Handlungsreisenden zu besuchenden Städte. Ich habe das damals durch genetische Algorithmen gelöst! Hier findet Ihr einen Film von mir dazu. Zum Testen des Laufzeitunterschieds kann man aber auch das Bohrprogramm einer Platine nehmen! Seht mal hier auf Seite 19:

https://epic.awi.de/id/eprint/6637/1/Hat2001d.pdf

Ich habe Euch genau diese 442 Koordinaten als noch relativ unsortierte Liste und einmal schon optimierte Liste hingelegt. Ihr könnt sie Euch herunterladen und ausprobieren:

TSP – Platine vor Optimierung

TSP – Platine nach Optimierung

Vergleicht man die beiden Programme beim Simulator Lauf so ist intuitiv klar, dass eine optimierte Tour deutlich schneller abläuft. Und einmal mehr in diesem Artikel bedeutet das, das Zeit Geld ist und so eine Optimierung von wirtschaftlicher Bedeutung ist.

Hier noch ein Programm von mir für den PC-1262:

https://tinkerpete.wordpress.com/2013/05/27/grundrechenarten-lernprogramm-fur-sharp-pocket-computer/

  • Related Posts

    Classic Computing 2025 in Hof

    13.09.2025, Samstag Mein erstes Mal Classic Computing hatte ich 2014 in Schönau im Odenwald. Die geringe Entfernung zu unserem Wohnort machte es mir einfach, einmal mit der gesamten Familie einer…

    Lokale KI mit Ryzen 9950 X3D und RTX 5090 – Geht da was?

    Neue Hardware – neue Möglichkeiten Seit kurzem steht mir ein aktueller (Mitte 2025) PC mit einem AMD Ryzen 9950 X3D Mikroprozessor und einer Nvidia RTX 5090 Grafikkarte zur Verfügung. Das…

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

    You Missed

    Schnäppchen oder Spec-Theater?

    • Von Zuseway
    • Oktober 5, 2025
    • 77 views

    Windows-10-Gnadenfrist in der EU: Chance oder verschobenes Problem?

    Vulkan, Lumen, Limit

    • Von Zuseway
    • Oktober 5, 2025
    • 51 views
    Vulkan, Lumen, Limit

    Pestjäger aus der Luft

    • Von Zuseway
    • September 28, 2025
    • 75 views
    Pestjäger aus der Luft

    GPD Win 5: Handheld mit Strix-Halo-Power und Strix-Halo-Preis

    Pyramiden für Bits

    • Von Zuseway
    • September 28, 2025
    • 69 views
    Pyramiden für Bits