G-Code

Aus Attraktor Wiki

Wechseln zu: Navigation, Suche

Um die CNC-Fräse anzusteuern, wird Maschinencode, sogenannter G-Code, benötigt. Das ist eine Liste von Befehlen, die die Achsen an bestimmte Positionen bewegen. Diesen G-Code kann man entweder mit diversen Programmen aus einem 2D- oder 3D-Modell generieren oder selbst schreiben. Wie man G-Code automatisch generieren kann, ist unter CNC-Fräse#G-Code generieren erklärt. Hier soll es allerdings darum gehen, wie man G-Code selbst nach seinen Vorstellungen schreibt.

Es ist auf jeden Fall sinnvoll, G-Code lesen zu können. Manchmal kann es auch sinnvoll sein, G-Code selbst zu schreiben:

  • Man hat immer die komplette Kontrolle über den Code, d. h. man weiß immer, was die Fräse gerade tut.
  • Die Werkzeugbahnen sind sinnvoll. <strikeout>Bisher haben wir noch keine ordentlichen (Open-Source-)G-Code-Generatoren gefunden. Die Bahnen, die ein generierter G-Code fährt, sind meistens wirr und benötigen unnötig viel Zeit und Weg (und damit Verschleiß).</strikeout> Mit MeshCAM kann man sinnvollen G-Code generieren, eine Einzelplatzlizenz kostet 250$ und mit EstlCam kann man die Bahnen selbst grafisch legen.

Für (kommerzielle) Fräsen gibt es die unterschiedlichsten G-Code-Standards. Wir verwenden für die Ansteuerung unserer Fräsen LinuxCNC und halten uns an den EMC2-Standard.


G-Code-Grundlagen

G-Code ist gar nicht so schlimm, wie er vielleicht auf dem ersten Blick aussieht. Leider gibt es bisher noch keine Tutorials, aber man kann sich den G-Code auch anhand der Dokumentation und fertiger generierter Scripts aneignen (generierte Scripts sind einfacher gestrickt und haben keine Variablen, Funktionen etc.). Die Schnellreferenz ist auch sehr hilfreich.


Header

G17 ; XY plane
G21 ; mm mode
G40 ; cancel diameter compensation
G49 ; cancel length offset
G54 ; coordinate system 1
G80 ; cancel motion
G90 ; non-incremental motion
G94 ; feed/minute mode

[...]

M2 ; program end

G-Code Library

Häufig verwendete Funktionen muss man nicht immer neu erfinden. Deshalb sammeln wir hier Unterprogramme und Snippets, die z. B. Taschen oder Bohrungen fräsen. In unseren Funktionen werden folgende globale Variablen benutzt, die vorher deklariert werden müssen:

(bearbeiten klicken zum kopieren)

  1. <_cutter_diameter> = 3 (Durchmesser des Fräsers in mm)
  2. <_cutter_radius> = [#<_cutter_diameter>/2] (Radius des Fräsers in mm)
  3. <_z_safe> = 30 (z-Höhe in mm, in der der Fräser im Eilgang ohne Gefahr über das Werkstück schweben kann)
  4. <_f_xy> = 3000 (Feed Rate/Vorschubgeschwindigkeit in X- und Y-Richtung)
  5. <_f_z> = 300 (Feed Rate/Vorschubgeschwindigkeit in Z-Richtung)


Globale Variablen beginnen mit einem Unterstrich. Die Werte sind natürlich Beispielwerte und müssen an die Maschine, den Fräser, die Drehgeschwindigkeit des selbigen, und das Material angepasst werden.

Rechteck

File:Rechteck.ngc.zip fräst ein Rechteck. Parameter wie die Höhe und Breite des Rechtecks, Fräserdurchmesser oder Plattenstärke sind am Anfang der Datei einstellbar.


Generatoren

Da G-Code Variablen und Funktionen versteht, kann man G-Code-Scripte schreiben, die durch änderbare Parameter unterschiedliche Objekte fräsen können.


Box-Generator

File:Box.ngc.zip: Dieses Script generiert Einzelteile mit Verzahnungen, aus denen man eine Kiste zusammenstecken kann. Man kann die Größe beliebig festlegen und zwischen einer rundum geschlossenen Kiste, einer oben offenen und einer mit Schiebedeckel wählen.


Siehe auch

Diese Seite wurde zuletzt am 9. Januar 2015 um 08:19 Uhr geändert. Diese Seite wurde bisher 48.497 mal abgerufen.