MasViewer – GCode-Simulation in 3D
Windows-Programm, das CNC-Werkzeugwege aus einer GCode-Datei dreidimensional simuliert – ohne externe Bibliotheken
MasViewer zeigt, was eine CNC-Fräse tun wird, bevor sie es tut. Das Programm liest eine GCode-Datei ein und fährt die Werkzeugwege dreidimensional ab – anhalten, schrittweise weitergehen, an eine bestimmte Zeile springen, Geschwindigkeit ändern.
Entstanden ist es aus dem Bedarf an meiner eigenen CNC-Fräse. Ein Programmierfehler im GCode ist auf der Maschine teuer: Im besten Fall ist das Werkstück Ausschuss, im schlechteren bricht der Fräser oder die Maschine fährt in die Aufspannung. Eine Simulation davor kostet dagegen nichts.
Besonderheit unter der Haube: Die 3D-Darstellung läuft über einen selbstgeschriebenen Software-Renderer auf GDI+ – ohne OpenGL, ohne DirectX, ohne ein einziges NuGet-Paket. Kamera, Projektion und Vektormathematik sind Teil des Projekts. Das macht die Anwendung zu einer einzelnen EXE ohne Laufzeitabhängigkeiten ausser dem, was Windows ohnehin mitbringt.
Technische Daten
| Plattform | Windows 10/11 |
|---|---|
| Technologie | C# / .NET Framework 4.8, WinForms |
| 3D-Darstellung | eigener Software-Renderer auf GDI+, keine NuGet-Pakete |
| Simulierte Maschine | 3-Achsen-CNC, Verfahrweg X 500 · Y 700 · Z 300 mm |
| Installation | MSI-Installer, kein Kompilieren nötig |
| Lizenz | MIT |
Was die Simulation zeigt
Die Werkzeugwege werden nach Bewegungsart eingefärbt: Eilgang G0 orange, Vorschub G1 cyan, Kreisbögen G2/G3 violett. Der noch bevorstehende Weg erscheint gedämpft, der bereits gefahrene kräftig – man sieht auf einen Blick, wo das Programm steht und was noch kommt.
Parallel laufen die Werte mit, die beim Prüfen eines Programms zählen: aktuelle Position X/Y/Z, Vorschub, Drehzahl, Zeilennummer und Modus – dazu die Minimal- und Maximalwerte aller drei Achsen über das gesamte Programm. Gerade Letzteres beantwortet die wichtigste Frage vor dem Start: Bleibt alles im Verfahrweg, und taucht Z nirgends tiefer ein als gewollt?
Bedienung
- Start, Pause, Stop sowie schrittweises Vorgehen: Schritt (ein Segment), Zeile (eine GCode-Zeile) oder Operation (vom aktuellen bis zum nächsten G-Befehl)
- Geschwindigkeit 0,1× bis 20× und ein Fortschritts-Schieber zum Anspringen beliebiger Stellen
- Klick auf eine GCode-Zeile setzt die Simulation genau dorthin – praktisch, wenn man eine verdächtige Stelle gezielt ansehen will
- GCode direkt bearbeiten und speichern: ändern, neu parsen lassen, überschreiben oder unter neuem Namen ablegen
- Frei setzbarer Werkstück-Nullpunkt in X/Y/Z relativ zur Tischebene
- Ansicht: linke Maustaste drehen, rechte verschieben, Mausrad zoomen
Unterstützter GCode
G0/G1– Eilgang und Vorschub, linearG2/G3– Kreisbögen, wahlweise über I/J/K oder RG17/G18/G19– Arbeitsebene XY, XZ, YZG20/G21– Zoll oder MillimeterG90/G91– Absolut- und InkrementalmassG53– zeilenweise Fahrt in Maschinenkoordinaten- Bohrzyklen
G81,G82,G83,G73mitG80,G98/G99– jede Bohrung als eigene Operation SDrehzahl,FVorschub, Kommentare in Klammern und nach Semikolon
Download und Quellcode
Auf GitHub liegt unter „Releases“ ein fertiger MSI-Installer – herunterladen, ausführen, fertig. Voraussetzung ist Windows 10 oder 11 mit .NET Framework 4.8, das dort ohnehin vorhanden ist. Der Quellcode steht unter MIT-Lizenz und lässt sich mit Visual Studio ohne weitere Abhängigkeiten bauen.
Optional kann eine GCode-Datei als Startparameter übergeben werden, dann öffnet sie das Programm direkt.