1. Einführung

AXIS ist ein grafisches Frontend für LinuxCNC mit Live-Vorschau und Backplot. Es ist in Python geschrieben und verwendet Tk und OpenGL, um seine Benutzeroberfläche anzuzeigen.

AXIS Hauptfenster
Abbildung 1. Das AXIS-Fenster

2. Erste Schritte

Wenn Ihre Konfiguration derzeit nicht für die Verwendung von AXIS eingerichtet ist, können Sie sie ändern, indem Sie die .ini Datei (INI-Datei) bearbeiten. Ändern Sie im Abschnitt [DISPLAY] die Zeile [DISPLAY] in DISPLAY = axis.

Die Beispielkonfiguration "sim/axis.ini" ist bereits für die Verwendung von AXIS als Front-End konfiguriert.

Wenn AXIS gestartet wird, öffnet sich ein Fenster wie das in der Abbildung [fig:axis-window] oben.

2.1. INI-Einstellungen

Weitere Informationen zur Einstellung der Funktionsweise von AXIS in der INI-Datei, finden Sie in den Abschnitten zu Anzeige und AXIS des Kapitels INI-Konfiguration.

  • CYCLE_TIME - Passen Sie die Antwortrate der GUI in Millisekunden an. Typisch 100, nutzbarer Bereich 50 - 200
    (akzeptiert Zeit in Sekunden (.05 -.2) aus Legacy-Gründen - Millisekunden bevorzugt, um anderen Bildschirmen zu entsprechen).

[DISPLAY]
CYCLE_TIME = 100
  • PREVIEW_TIMEOUT' - Legt den Timeout für das Laden der G-Code-Vorschau in Sekunden fest. Dauert das Parsen des G-Codes länger als diese Zeitspanne, wird ein Hinweis angezeigt und nur der erste Teil des Programms wird in der grafischen Anzeige dargestellt. Die Angabe von 0 oder das Weglassen der Einstellung führt zu keinem Timeout.

[DISPLAY]
PREVIEW_TIMEOUT = 5

2.2. Eine typische Sitzung

  1. Start von LinuxCNC und Auswahl einer Konfigurationsdatei.

  2. Geben Sie den Notaus frei (F1) und schalten Sie das Gerät ein (F2).

  3. Referenzfahrt aller Achsen.

  4. Laden der G-Code-Datei.

  5. Verwenden Sie das Vorschaudiagramm, um zu überprüfen, ob das Programm korrekt ist.

  6. Laden des Materials.

  7. Stellen Sie den richtigen Versatz für jede Achse ein, indem Sie joggen und bei Bedarf die Taste "Touch Off" verwenden.

  8. Führen Sie das Programm aus.

  9. Um dieselbe Datei erneut zu bearbeiten, kehren Sie zu Schritt 6 zurück. Um eine andere Datei zu bearbeiten, kehren Sie zu Schritt 4 zurück.

  10. Wenn der Auftrag abgeschlossen ist, beenden Sie AXIS.

Anmerkung
Nun notwendige Schritte um dasselbe Programm erneut auszuführen, hängen von Ihrem Setup und Ihren Anforderungen ab. Möglicherweise müssen Sie mehr Material laden und Offsets setzen oder einen Offset verschieben und festlegen und dann das Programm erneut ausführen. Wenn Ihr Material fixiert ist, müssen Sie das Programm möglicherweise nur erneut ausführen. Weitere Informationen zum Befehl run finden Sie im Abschnitt zum Menü Maschine.

3. AXIS Fenster

Das AXIS-Fenster enthält die folgenden Elemente:

  • Ein Anzeigebereich, der Folgendes anzeigt:

    • Eine Vorschau der geladenen Datei (in diesem Fall axis.ngc) sowie des aktuellen Speicherorts des "kontrollierten Punktes" der CNC-Maschine. Später wird in diesem Bereich der Pfad angezeigt, den die CNC-Maschine durchlaufen hat, der als "Backplot" bezeichnet wird.

    • Eine große Anzeige der aktuellen Position und aller Offsets.

  • Eine Menüleiste und Symbolleiste, mit der Sie verschiedene Aktionen ausführen können

  • Manuelle Steuerungsregisterkarte (engl. Manual Control Tab) - mit der Sie die Maschine bewegen können, die Spindel ein- oder ausschalten und das Kühlmittel ein- oder ausschalten können, wenn es in der INI-Datei enthalten ist.

  • MDI Tab - in dem G-Code-Programme manuell eingegeben werden können, eine Zeile nach der anderen. Dies zeigt auch die Aktive G-Codes, die zeigen, welche modalen G-Codes in Kraft sind.

  • Vorschub Neufestsetzung (engl. feed override) - mit dem Sie die Geschwindigkeit programmierter Bewegungen skalieren können. Das Standardmaximum beträgt 120 % und kann in der INI-Datei auf einen anderen Wert festgelegt werden. Weitere Informationen finden Sie im Abschnitt Anzeige der INI-Datei.

  • Spindel Neufestsetzung (engl. spindle override) - mit dem Sie die Spindelgeschwindigkeit nach oben oder unten skalieren können.

  • Jog Speed - mit dem Sie die Jog-Geschwindigkeit innerhalb der in der INI-Datei festgelegten Grenzen einstellen können. Weitere Informationen finden Sie im Abschnitt Anzeige der INI-Datei.

  • Max. Geschwindigkeit (engl. max velocity) - ermöglicht es Ihnen, die maximale Geschwindigkeit aller programmierten Bewegungen zu begrenzen (außer spindelsynchronisierte Bewegung).

  • Ein Textanzeigebereich, der den geladenen G-Code anzeigt.

  • Eine Statusleiste, die den Zustand der Maschine anzeigt. In diesem Screenshot ist die Maschine eingeschaltet, hat kein Werkzeug eingesetzt und die angezeigte Position ist "Relativ" (mit allen Offsets) und "Aktuell" (zeigt die Feedback-Position).

3.1. Menüpunkte

Einige Menüelemente sind möglicherweise ausgegraut, je nachdem, wie Sie Ihre INI-Datei konfiguriert haben. Weitere Informationen zur Konfiguration finden Sie im Kapitel INI.

3.1.1. Menü "Datei"

  • Öffnen… - Öffnet ein Standarddialogfeld zum Öffnen einer G-Code-Datei, die in AXIS geladen werden soll. Wenn Sie LinuxCNC für die Verwendung eines Filterprogramms konfiguriert haben, können Sie es auch öffnen. Weitere Informationen finden Sie im Abschnitt FILTER der INI-Konfiguration.

  • „Letzte Dateien“ – Zeigt eine Liste der zuletzt geöffneten Dateien an.

  • Bearbeiten… - Öffnen Sie die aktuelle G-Code-Datei zur Bearbeitung, wenn Sie einen Editor in Ihrer INI-Datei konfiguriert haben. Weitere Informationen zum Angeben eines zu verwendenden Editors finden Sie im Abschnitt DISPLAY.

  • Reload - Laden Sie die aktuelle G-Code-Datei neu. Wenn Sie es bearbeitet haben, müssen Sie es neu laden, damit die Änderungen wirksam werden. Wenn Sie eine Datei stoppen und von vorne beginnen möchten, laden Sie die Datei neu. Das Neuladen der Symbolleiste ist identisch mit dem Menü.

  • G-Code speichern unter… - Speichern Sie die aktuelle Datei unter einem neuen Namen.

  • Eigenschaften - Die Summe der Eilgang- und Vorschubbewegungen. Berücksichtigt keine Beschleunigung, Überblendung oder den Pfadmodus, sodass die gemeldete Zeit nie weniger als die tatsächliche Laufzeit ist.

  • Werkzeugtabelle bearbeiten… - Wie bei Bearbeiten, wenn Sie einen Editor definiert haben, können Sie die Werkzeugtabelle öffnen und bearbeiten.

  • Werkzeugtabelle neu laden - Nach dem Bearbeiten der Werkzeugtabelle müssen Sie diese neu laden.

  • Ladder Editor - Wenn Sie ClassicLadder geladen haben, können Sie es von hier aus bearbeiten. Weitere Informationen finden Sie im Kapitel ClassicLadder.

  • Beenden - Beendet die aktuelle LinuxCNC-Sitzung.

3.1.2. Maschinen-Menü

  • Notaus F1 ein-/ausschalten - Ändern Sie den Zustand des Notaus.

  • Toggle Machine Power F2 - Ändern Sie den Zustand der Maschinenleistung, wenn der Notaus nicht eingeschaltet ist.

  • Programm ausführen - Führt das aktuell geladene Programm von Anfang an aus.

  • „Ab ausgewählter Zeile ausführen“ – Wählen Sie die Zeile aus, bei der Sie zuerst beginnen möchten. Seien Sie vorsichtig, da dies das Werkzeug zuerst an die erwartete Position vor der Zeile bewegt und dann den Rest des Codes ausführt.

Warnung
Verwenden Sie nicht Run From Selected Line, wenn Ihr G-Code-Programm Unterroutinen enthält.
  • Step - Einzelner Schritt durch ein Programm.

  • Pause - Unterbrechung eines Programms.

  • Fortsetzen (engl. resume) - Wiederaufnahme der Ausführung nach einer Pause.

  • Stop - Stoppt ein laufendes Programm. Folgt nach einem Stopp erneut das Kommando "Ausführen!", so wird das Programm von vorne gestartet.

  • Stop at M1 - Wenn ein M1 erreicht ist und dies aktiviert ist, wird die Programmausführung auf der M1-Leitung angehalten. Drücken Sie Fortsetzen, um fortzufahren.

  • Zeilen mit "/" überspringen - Wenn eine Zeile mit / beginnt und dies aktiviert ist, wird die Zeile übersprungen.

  • MDI-Verlauf löschen - Löscht das MDI-Verlaufsfenster.

  • Aus MDI-Verlauf kopieren - Kopiert den MDI-Verlauf in die Zwischenablage

  • In MDI-Verlauf einfügen - Einfügen aus der Zwischenablage in das MDI-Verlaufsfenster

  • Kalibrierung - Startet den Kalibrierungsassistenten (emccalib.tcl). Die Kalibrierung liest die HAL-Datei und erstellt für jedes setp, das eine Variable aus der INI-Datei verwendet, die sich in einem [AXIS_L],[JOINT_N],[SPINDLE_S] oder [TUNE] Abschnitt befindet, ein Eintrag, der bearbeitet und getestet werden kann.

  • HAL-Konfiguration anzeigen - Öffnet das Fenster HAL-Konfiguration, in dem Sie HAL-Komponenten, Pins, Parameter, Signale, Funktionen und Threads überwachen können.

  • HAL-Messgerät - Öffnet ein Fenster, in dem Sie einen einzelnen HAL-Pin, ein Signal oder einen Parameter überwachen können.

  • HAL Scope - Öffnet ein virtuelles Oszilloskop zur Anzeige von HAL-Werten (vertikal) über die Zeit (horizontal) ermöglicht.

  • LinuxCNC-Status anzeigen - Öffnet ein Fenster mit dem Status von LinuxCNC.

  • Debug Level festlegen - Öffnet ein Fenster, in dem Debug-Ebenen angezeigt und einige festgelegt werden können.

  • Referenzfahrt (engl. Homing) - Eine oder alle Achsen zu Referenzpunkt führen.

  • Unhoming - Unhoming einer oder aller Achsen.

  • Nullkoordinatensystem - Setzt alle Versätze im gewählten Koordinatensystem auf Null.

  • Werkzeug Touch Off

    • Werkzeug auf Werkstück aufsetzen - Beim Ausführen von Touch Off bezieht sich der eingegebene Wert auf das aktuelle Werkstückkoordinatensystem (G5x), modifiziert durch den Achsversatz (G92). Wenn die Berührung abgeschlossen ist, wird die relative Koordinate für die gewählte Achse zum eingegebenen Wert. Siehe G10 L10 im G-Code-Kapitel.

    • Werkzeug-Touch Off to Fixture - Beim Ausführen von Touch Off ist der eingegebene Wert relativ zum neunten (G59.3) Koordinatensystem, wobei der Achsenversatz (G92) ignoriert wird. Dies ist nützlich, wenn an einer festen Position auf der Maschine eine Werkzeug-Berührungshalterung vorhanden ist, wobei das neunte (G59.3) Koordinatensystem so eingestellt ist, dass sich die Spitze eines Werkzeugs mit der Länge Null am Ursprung der Halterung befindet, wenn die Relative Koordinaten sind 0. Siehe G10 L11 im G-Code-Kapitel.

3.1.3. Ansicht-Menü

  • Draufsicht (engl. top view) – Die Draufsicht (oder Z-Ansicht) zeigt den G-Code entlang der Z-Achse von positiv nach negativ. Diese Ansicht eignet sich am besten zum Betrachten von X und Y.

  • Gedrehte Draufsicht (engl. rotated top view) - Die gedrehte Draufsicht (oder gedrehte Z-Ansicht) zeigt auch den G-Code an, der entlang der Z-Achse von positiv nach negativ aussieht. Aber manchmal ist es praktisch, die X & Y-Achsen um 90 Grad gedreht anzuzeigen, um besser zum Display zu passen. Diese Ansicht eignet sich auch bestens, um X & Y zu betrachten.

  • Seitenansicht (engl. side view) - Die Seitenansicht (oder X-Ansicht) zeigt den G-Code an, der entlang der X-Achse von positiv nach negativ aussieht. Diese Ansicht eignet sich am besten für den Blick auf Y & Z.

  • Vorderansicht - Die Vorderansicht (oder Y-Ansicht) zeigt den G-Code an, der entlang der Y-Achse von negativ nach positiv aussieht. Diese Ansicht eignet sich am besten für den Blick auf X & Z.

  • Perspektivische Ansicht (engl. perspective view) - Die perspektivische Ansicht (oder P-Ansicht) zeigt den G-Code an, der das Teil aus einem einstellbaren Blickwinkel betrachtet, standardmäßig X+, Y-, Z+. Die Position ist mit der Maus und dem Zug-/Drehwahlschalter einstellbar. Diese Ansicht ist eine Kompromissansicht, und obwohl sie versucht, drei (bis neun!) Diese Ansicht ist am besten, wenn Sie alle drei (bis neun) Achsen gleichzeitig sehen möchten.

Sichtweise

Das AXIS-Anzeigeauswahlmenü "Ansicht" bezieht sich auf die Ansichten "Oben", "Vorne" und "Seitlich". Diese Begriffe sind korrekt, wenn die Z-Achse der CNC-Maschine senkrecht steht, mit positivem Z nach oben. Dies gilt für vertikale Fräsmaschinen, was wahrscheinlich die häufigste Anwendung ist, und auch für fast alle Erodiermaschinen und sogar vertikale Revolverdrehbänke, bei denen sich das Teil unter dem Werkzeug dreht.

Die Begriffe Oben (engl. top), Vorne (engl. front) und Seitlich (engl. side) können verwirrend sein bei anderen CNC-Maschinen, wie z.B. bei einer Standard-Drehmaschine, bei der die Z-Achse horizontal verläuft, oder bei einer horizontalen Fräsmaschine, bei der die Z-Achse ebenfalls horizontal verläuft, oder sogar bei einer umgekehrten vertikalen Revolverdrehmaschine, bei der sich das Werkstück über dem Werkzeug dreht und die positive Richtung der Z-Achse nach unten verläuft!

Denken Sie nur daran, dass die positive Z-Achse (fast) immer vom Werkstück entfernt ist. Seien Sie also mit der Konstruktion Ihrer Maschine vertraut und interpretieren Sie die Anzeige nach Bedarf.

  • Display Inches - Legt die AXIS-Anzeigeskalierung für Zoll fest.

  • Display MM - Legt die AXIS Display-Skalierung auf Millimeter fest.

  • Programm anzeigen - Die Vorschauanzeige des geladenen G-Code-Programms kann auf Wunsch vollständig deaktiviert werden.

  • Zeige Vorschau von Eilgängen (engl. show program rapids) - Die Vorschauanzeige des geladenen G-Code-Programms zeigt die Vorschubbewegungen (G1,G2,G3) immer in weiß an. Die Anzeige von Eilgängen (G0) in cyan kann jedoch auf Wunsch deaktiviert werden.

  • Alpha-Blend-Programm - Diese Option macht die Vorschau komplexer Programme leichter sichtbar, kann aber dazu führen, dass die Vorschau langsamer angezeigt wird.

  • Show Live Plot - Die Hervorhebung der Vorschubpfade (G1,G2,G3) während der Bewegungen des Werkzeugs kann auf Wunsch deaktiviert werden.

  • Werkzeug anzeigen - Die Anzeige des Werkzeugkegels/-zylinders kann auf Wunsch deaktiviert werden.

  • Zeige Ausdehnung - Die Anzeige der Ausdehnung (engl. extents) (maximaler Verfahrweg in jeder Achsenrichtung) des geladenen G-Code-Programms kann auf Wunsch deaktiviert werden.

  • Offsets anzeigen – Der ausgewählte Fixture Offset (G54-G59.3) Ursprungsort kann als Satz von drei orthogonalen Linien angezeigt werden, jeweils eine aus rot, blau und grün. Diese Offset-Ursprungsanzeige (oder Fixture Zero) kann auf Wunsch deaktiviert werden.

  • Maschinenlimits anzeigen - Die maximalen Verfahrwege der Maschine für jede Achse, wie sie in der INI-Datei festgelegt sind, werden als rechteckiges Feld in roten, gestrichelten Linien dargestellt. Dies ist nützlich, wenn Sie ein neues G-Code-Programm laden oder prüfen, wie viel Fixture-Offset benötigt wird, um das G-Code-Programm innerhalb der Reisegrenzen Ihrer Maschine zu bringen. Es kann abgeschaltet werden, wenn es nicht benötigt wird.

  • Geschwindigkeit anzeigen - Eine Anzeige der Geschwindigkeit ist manchmal nützlich, um zu sehen, wie nah Ihre Maschine an ihren Entwurfsgeschwindigkeiten läuft. Sie kann auf Wunsch deaktiviert werden.

  • Restweg anzeigen (engl. Show Distance to Go) - Der Restweg ist ein sehr nützlicher Hinweis, wenn Sie ein unbekanntes G-Code-Programm zum ersten Mal ausführen. In Kombination mit den Eilgang- und Vorschub-Override-Steuerungen können unerwünschte Werkzeug- und Maschinenschäden vermieden werden. Sobald das G-Code-Programm fehlerfrei läuft, kann die Restweg-Anzeige auf Wunsch deaktiviert werden.

  • Koordinaten in großer Schrift… - Die Koordinaten der Achsen und die Geschwindigkeit im Voraus werden in großer Schrift in der Werkzeugwegansicht angezeigt.

  • Live Plot löschen - Während das Werkzeug in der AXIS-Anzeige reist, wird der G-Code-Pfad hervorgehoben. Um das Programm zu wiederholen oder einen Interessenbereich besser zu sehen, können die zuvor markierten Pfade gelöscht werden.

  • Zeige befohlene Position (engl. show commanded position) - Dies ist die Position, die LinuxCNC versuchen wird zu gehen. Sobald die Bewegung gestoppt wurde, ist dies die Position, die LinuxCNC versuchen wird, zu halten.

  • Ist-Position anzeigen (engl. show actual position) - Die Ist-Position ist die gemessene Position, wie sie von den Encodern des Systems zurückgelesen oder von Schrittgeneratoren simuliert wird. Diese kann aus vielen Gründen, wie z. B. PID-Abstimmung, physikalische Einschränkungen oder Positionsquantisierung, leicht von der befohlenen Position abweichen.

  • Maschinenposition anzeigen (engl. show machine position) - Dies ist die Position in nicht verschobenen Koordinaten, wie sie bei der Referenzfahrt ermittelt wurde.

  • Relative Position anzeigen (engl. show relative position) - Dies ist die Maschinenposition, modifiziert durch die Offsets "G5x", "G92" und "G43".

3.1.4. Hilfemenü

  • "Über AXIS" - Wir alle wissen, was das ist.

  • Kurzübersicht - Zeigt die Tastenkombinationen an.

3.2. Schaltflächen der Symbolleiste

Von links nach rechts in der AXIS-Anzeige lauten die Schaltflächen der Symbolleiste (Tastenkombinationen werden [in Klammern] angezeigt):

  • Ein-/ausschalten Notaus Umschalten des Notausschalters [F1] (auch E-Stop genannt)

  • Ein-/ausschalten Stromversorgung Umschalten Machinenstrom [F2]

  • G-Code-Datei öffnen G-Code-Datei öffnen [O]

  • Aktuelle Datei neu laden Aktuelle Datei neu laden [Strg-R]

  • Beginn der Ausführung der aktuellen Datei Beginn der Ausführung der aktuellen Datei [R]

  • Nächste Zeile ausführen Nächste Zeile ausführen [T]

  • Ausführung anhalten - Ausführung fortsetzen Ausführung anhalten [P] Ausführung fortsetzen [S]

  • Programmausführung anhalten Programmausführung anhalten [ESC]

  • Zeilen überspringen Zeilen überspringen mit "/" [Alt-M-/] umschalten

  • Optionale Pause einschalten Optionale Pause einschalten [Alt-M-1]

  • Hineinzoomen Vergrößern (engl. zoom in)

  • Herauszoomen Herauszoomen (engl. zoom out)

  • Draufsicht Draufsicht

  • Gedrehte Draufsicht Gedrehte Draufsicht

  • Seitenansicht Seitenansicht

  • Vorderansicht Vorderansicht

  • Perspektivische Ansicht Perspektivische Ansicht

  • Umschalten zwischen Ziehen und Drehen Umschalten zwischen Ziehen und Drehen [D]

  • Live-Backplot löschen Live-Backplot löschen [Strg-K]

3.3. Grafischer Anzeigebereich

Koordinatenanzeige

In der oberen linken Ecke der Programmanzeige befindet sich die Anzeige der Koordinatenposition für jede Achse. Rechts neben der Nummer wird ein Ursprungssymbol Ursprungssymbol wird angezeigt, wenn die Achse referenziert wurde angezeigt, wenn die Achse referenziert wurde.

Ein Grenzwertsymbol Grenzwertsymbol wird rechts neben der Koordinatenpositionsnummer angezeigt, wenn die Achse an einem ihrer Endschalter steht.

Um die Positionsnummern richtig zu interpretieren, beachten Sie die Anzeige "Position:" in der Statusleiste. Wenn die Position "Maschinen-Ist" lautet, dann ist die angezeigte Zahl im Maschinenkoordinatensystem. Steht sie auf "Relativ Aktuell", dann ist die angezeigte Zahl im Offset-Koordinatensystem. Wenn die angezeigten Koordinaten relativ sind und ein Offset eingestellt wurde, enthält die Anzeige eine cyanfarbene Markierung Maschinen-Ursprung (engl. machine origin) cyan Maschinen-Ursprung .

Ist die Position Befohlen (engl. commanded), wird die genaue Koordinate angezeigt, die in einem G-Code-Befehl angegeben wurde. Ist die Position Ist (engl. actual), dann ist es von der Maschine tatsächlich angefahrene Position. Diese Werte können aufgrund von Schleppfehler, Totzone, Messgeräteauflösung oder Schrittweite von der befohlenen Position abweichen. Wenn Sie z. B. eine Bewegung mit X 0,0033 auf Ihrer Fräsmaschine befehlen, aber ein Schritt Ihres Schrittmotors oder eine Encoderzählung 0,00125 beträgt, dann könnte die befohlene Position 0,0033 sein, aber die tatsächliche Position wird 0,0025 (2 Schritte) oder 0,00375 (3 Schritte) sein.

Vorschau-Plot

Wird eine Datei geladen, so wird im Anzeigebereich eine Vorschau angezeigt. Schnelle Bewegungen (z.B. durch den Befehl G0) werden als cyanfarbene Linien dargestellt. Bewegungen im Vorschub (z. B. mit dem Befehl "G1") werden als durchgezogene weiße Linien dargestellt. Verweilzeiten (z. B. durch den Befehl "G4") werden als kleine rosa "X"-Markierungen dargestellt.

G0 (Eilgang) Bewegungen vor einer Vorschubbewegung werden nicht in der Vorschau angezeigt. Eilgangbewegungen nach einem T<n> (Werkzeugwechsel) werden erst nach der ersten Vorschubbewegung in der Vorschau angezeigt. Um eine dieser Funktionen auszuschalten, programmieren Sie einen G1 ohne Bewegungen vor den G0-Bewegungen.

Programm-Extents

Die Ausdehnungen des Programms in jeder Achse werden angezeigt. An den Enden werden die kleinsten und größten Koordinatenwerte angegeben. In der Mitte ist die Differenz zwischen den Koordinaten dargestellt.

Wenn einige Koordinaten die "weichen Grenzen" in der INI-Datei überschreiten, wird die betreffende Abmessung in einer anderen Farbe angezeigt und von einem Kästchen umgeben. In der nachstehenden Abbildung ist die maximale weiche Grenze auf der X-Achse überschritten, was durch das Kästchen um den Koordinatenwert angezeigt wird. Der minimale X-Verfahrweg des Programms ist -1,95, der maximale X-Verfahrweg ist 1,88, und das Programm benötigt einen X-Verfahrweg von 3,83 Zoll. Um das Programm so zu verschieben, dass es sich innerhalb des Verfahrwegs der Maschine befindet, gehen Sie nach links und berühren Sie die X-Position erneut.

Weiche Grenzwerte
Abbildung 2. Weiche Grenzwerte (engl. soft limits)
Werkzeugkegel

Wenn kein Werkzeug geladen ist, wird die Position der Werkzeugspitze durch den „Werkzeugkegel“ angezeigt. Der „Werkzeugkegel“ gibt keine Auskunft über Form, Länge oder Radius des Werkzeugs.

Wenn ein Werkzeug geladen wird (z.B. mit dem MDI-Befehl T1 M6 ), ändert sich der Kegel in einen Zylinder, der den in der Werkzeugtabellendatei angegebenen Durchmesser des Werkzeugs anzeigt.

Backplot

Wenn sich die Maschine bewegt, hinterlässt sie eine Spur, den so genannten Backplot. Die Farbe der Linie gibt die Art der Bewegung an: Gelb für Jogging, blassgrün für schnelle Bewegungen, rot für gerade Bewegungen mit Vorschubgeschwindigkeit und magenta für kreisförmige Bewegungen mit Vorschubgeschwindigkeit.

Raster

AXIS kann in orthogonalen Ansichten optional ein Raster anzeigen. Aktivieren oder deaktivieren Sie das Raster über das Menü "Raster" unter "Ansicht". Wenn es aktiviert ist, wird das Gitter in der Draufsicht und der gedrehten Draufsicht angezeigt; wenn das Koordinatensystem nicht gedreht ist, wird das Gitter auch in der Vorder- und Seitenansicht angezeigt. Die Voreinstellungen im Menü Raster werden durch den Eintrag [DISPLAY]GRIDS in der INI-Datei gesteuert. Wenn nichts angegeben wird, ist die Voreinstellung 10mm 20mm 50mm 100mm 1in 2in 5in 10in.

Die Angabe eines sehr kleinen Rasters kann die Leistung verringern.

Interaktionen

Wenn Sie mit der linken Maustaste auf einen Teil des Vorschaudiagramms klicken, wird die Linie sowohl in der grafischen Darstellung als auch in der Textanzeige hervorgehoben. Wenn Sie mit der linken Maustaste auf einen leeren Bereich klicken, wird die Hervorhebung wieder entfernt.

Durch Ziehen mit gedrückter linker Maustaste wird die Vorschaudarstellung verschoben (Panning).

Durch Ziehen mit gedrückter linker Maustaste bei gedrückter Umschalttaste oder durch Ziehen mit gedrücktem Mausrad wird das Vorschaubild gedreht. Bei einer hervorgehoben Linie ist der Drehpunkt der Mittelpunkt der Linie. Andernfalls ist der Drehpunkt der Mittelpunkt des gesamten Programms.

Durch Drehen des Mausrads oder durch Ziehen mit gedrückter rechter Maustaste oder durch Ziehen mit der Steuerung und gedrückter linker Maustaste wird die Vorschaudarstellung vergrößert oder verkleinert.

Durch Anklicken eines der Symbole "Voreingestellte Ansicht" oder durch Drücken von "V" können mehrere voreingestellte Ansichten ausgewählt werden.

3.4. Textanzeigebereich

Wenn Sie mit der linken Maustaste auf eine Zeile des Programms klicken, wird diese Zeile sowohl in der grafischen als auch in der Textanzeige hervorgehoben.

Wenn das Programm läuft, wird die Zeile, die gerade ausgeführt wird, rot hervorgehoben. Wenn der Benutzer keine Zeile ausgewählt hat, wird die Textanzeige automatisch umgeschaltet, um die aktuelle Zeile anzuzeigen.

Aktuelle und ausgewählte Zeilen
Abbildung 3. Aktuelle und ausgewählte Zeilen

3.5. Manuelle Steuerung

Wenn die Maschine eingeschaltet ist, aber kein Programm abläuft, können die Elemente auf der Registerkarte "Manuelle Steuerung" verwendet werden, um die Maschine zu bewegen oder ihre Spindel und Kühlmittel zu steuern.

Wenn das Gerät nicht eingeschaltet ist oder wenn ein Programm läuft, sind die manuellen Bedienelemente nicht verfügbar.

Viele der im Folgenden beschriebenen Elemente sind nicht bei allen Maschinen sinnvoll. Wenn AXIS feststellt, dass ein bestimmter Pin in HAL nicht angeschlossen ist, wird das entsprechende Element auf der Registerkarte "Manuelle Steuerung" entfernt. Ist zum Beispiel der HAL-Pin "spindle.0.brake" nicht angeschlossen, erscheint die Schaltfläche "Brake" nicht auf dem Bildschirm. Ist die Umgebungsvariable AXIS_NO_AUTOCONFIGURE gesetzt, so ist dieses Verhalten deaktiviert und alle Elemente werden angezeigt.

Die Achsengruppe

Mit AXIS können Sie die Maschine manuell bewegen. Diese Aktion wird als "Jogging" bezeichnet. Wählen Sie zunächst die zu bewegende Achse durch Anklicken aus. Klicken Sie dann auf die Schaltfläche "+" oder "-" und halten Sie sie gedrückt, je nachdem, in welche Richtung Sie verfahren möchten. Die ersten vier Achsen können auch mit den Pfeiltasten (X und Y), den Tasten PAGE UP und PAGE DOWN (Z) und den Tasten [ und ] (A) bewegt werden.

Wenn Sie "Kontinuierlich" auswählen, wird die Bewegung so lange fortgesetzt, wie die Schaltfläche oder Taste gedrückt wird. Wenn ein anderer Wert gewählt wird, bewegt sich die Maschine bei jedem Klicken auf die Schaltfläche oder Drücken der Taste genau um die angezeigte Strecke. Standardmäßig sind die folgenden Werte verfügbar: "0.1000, 0.0100, 0.0010, 0.0001".

Siehe den DISPLAY Abschnitt für weitere Informationen zum Einstellen der Schrittweiten.

Referenzfahrt (engl. homing) (Identitätskinematik)

Die INI-Datei Einstellung [KINS]JOINTS definiert die Gesamtzahl der Gelenke für das System. Ein Gelenk kann mit einem Referenzpunktschalter oder für eine "sofortige" Referenzfahrt konfiguriert werden. Gelenke können eine Referenzfahrt-Reihenfolge angeben, um die Reihenfolge der Referenzfahrt für Gruppen von Gelenken zu organisieren.

Wenn alle Gelenke für die Referenzfahrt konfiguriert sind und über gültige Referenzfahrten verfügen, zeigt die Referenzfahrt-Schaltfläche "Alle Referenzfahrten" an. Durch Drücken der Schaltfläche "Alle referenzieren" (oder der Taste Strg-Pos1 (engl. Ctrl-HOME) ) wird die Referenzfahrt für alle Gelenke unter Verwendung ihrer definierten Referenzfahrt-Sequenzen eingeleitet. Durch Drücken der Taste Pos1/HOME wird die Referenzfahrt für das Gelenk, das der aktuell ausgewählten Achse entspricht, eingeleitet, auch wenn keine Referenzfahrtsequenz definiert ist.

Wenn nicht alle Achsen über gültige Referenzfahrt-Sequenzen verfügen, zeigt die Referenzfahrt-Schaltfläche "Home Axis" (Referenzfahrt-Achse) an und führt die Referenzfahrt nur für die aktuell ausgewählte Achse durch. Jede Achse muss separat ausgewählt und referenziert werden.

Das Dropdown-Menü Maschine/Referenzierung bietet eine alternative Methode zum Referenzieren von Achsen. Das Dropdown-Menü Maschine/Unhoming bietet die Möglichkeit, die Referenzfahrt von Achsen aufzuheben.

Wenn Ihre Maschine keine Home-Schalter in der Konfiguration definiert hat, setzt die Schaltfläche "Home" die aktuelle Position der ausgewählten Achse als absolute Position 0 für diese Achse und setzt das Bit "is-homed" für diese Achse.

Weitere Informationen finden Sie im Kapitel Referenzfahrt Konfiguration.

Referenzfahrt (engl. homing) (nicht-Identität-Kinematik)

Die Bedienung ist ähnlich wie bei der Identitätskinematik, aber vor der Referenzfahrt wählen die Auswahlknöpfe die Gelenke nach Nummern aus. Die Schaltfläche für die Referenzfahrt zeigt "Home All" an, wenn alle Gelenke für die Referenzfahrt konfiguriert sind und über gültige Referenzfahrten verfügen. Andernfalls zeigt die Schaltfläche für die Referenzfahrt "Home Joint" an.

Weitere Informationen finden Sie im Kapitel Referenzfahrt Konfiguration.

Touch-Off

Durch Drücken von Touch Off oder der END-Taste wird der G5x-Offset für die aktuelle Achse geändert, so dass der aktuelle Achsenwert dem angegebenen Wert entspricht. Ausdrücke können nach den Regeln für rs274ngc-Programme eingegeben werden, mit der Ausnahme, dass auf Variablen nicht Bezug genommen werden darf. Der resultierende Wert wird als Zahl angezeigt.

Touch Off Fenster
Abbildung 4. Touch Off Fenster

Siehe auch die Optionen im Menü Maschine: "Werkstück berühren" und "Werkstückhalter berühren".

Werkzeug Touch Off

Durch Drücken der Schaltfläche Tool Touch Off werden die Werkzeuglänge und die Offsets des aktuell geladenen Werkzeugs so verändert, dass die aktuelle Position der Werkzeugspitze mit der eingegebenen Koordinate übereinstimmt.

Werkzeug Touch Off Fenster
Abbildung 5. Werkzeug Touch Off Fenster

Siehe auch die Optionen Werkzeug berühren auf Werkstück und Werkzeug berühren auf Halterung im Menü Maschine.

Grenzwerte überschreiten

Wenn Sie auf "Grenzen außer Kraft setzen" (engl. override limits) klicken, kann die Maschine vorübergehend über einen physischen Endschalter hinausfahren. Dieses Kontrollkästchen ist nur verfügbar, wenn ein Endschalter ausgelöst wird. Die Überbrückung wird nach einem Tippen zurückgesetzt. Wenn die Achse mit separaten positiven und negativen Endschaltern konfiguriert ist, wird LinuxCNC das Joggen nur in der richtigen Richtung erlauben. Die Funktion Override Limits erlaubt kein Überschreiten eines Softlimits. Der einzige Weg, um eine weiche Grenze auf einer Achse zu deaktivieren ist, um einen neuen Referenzpunkt zu bestimmen (engl. unhome).

Die Spindel-Gruppe

Mit den Buttons in der ersten Reihe wählen Sie die Drehrichtung der Spindel aus: Gegen den Uhrzeigersinn, Angehalten, Im Uhrzeigersinn. Gegen den Uhrzeigersinn wird nur angezeigt, wenn der Pin spindle.0.reverse in der HAL-Datei enthalten ist (er kann net trick-axis spindle.0.reverse sein). Die Schaltflächen in der nächsten Zeile erhöhen oder verringern die Drehgeschwindigkeit. Mit dem Kontrollkästchen in der dritten Zeile kann die Spindelbremse aktiviert oder deaktiviert werden. Je nach Maschinenkonfiguration werden möglicherweise nicht alle Elemente in dieser Gruppe angezeigt. Durch Drücken der Spindelstarttaste wird die S-Drehzahl auf 1 gesetzt.

Die Kühlmittelgruppe

Mit den beiden Schaltflächen können die Kühlmittel Nebel und Flut ein- und ausgeschaltet werden. Je nach Konfiguration Ihres Geräts werden möglicherweise nicht alle Elemente in dieser Gruppe angezeigt.

3.6. MDI

Mit MDI können G-Code-Befehle manuell eingegeben werden. Wenn das Gerät nicht eingeschaltet ist oder wenn ein Programm läuft, sind die MDI-Steuerungen nicht verfügbar.

MDI-Registerkarte
Abbildung 6. Die MDI-Registerkarte
  • Verlauf - Hier werden MDI-Befehle angezeigt, die zuvor in dieser Sitzung eingegeben wurden.

  • MDI-Befehl - Hier können Sie einen G-Code-Befehl eingeben, der ausgeführt werden soll. Führen Sie den Befehl aus, indem Sie Enter drücken oder auf "Go" klicken.

  • Aktive G-Codes - Dies zeigt die modalen Codes, die im Interpreter aktiv sind. Zum Beispiel zeigt G54 an, dass der G54-Offset auf alle eingegebenen Koordinaten angewendet wird. In Auto stellen die aktiven G-Codes die Codes nach dem Vorlesen durch den Interpreter dar.

3.7. Vorschub Neufestsetzung (engl. override)

Durch Verschieben dieses Schiebereglers kann der programmierte Vorschub geändert werden. Wenn z.B. ein Programm "F60" verlangt und der Schieberegler auf 120% eingestellt ist, dann ist der resultierende Vorschub 72.

3.8. Spindeldrehzahl-Anpassung

Durch Verschieben dieses Schiebereglers kann die programmierte Spindeldrehzahl geändert werden. Wenn ein Programm beispielsweise S8000 anfordert und der Schieberegler auf 80% eingestellt ist, beträgt die resultierende Spindeldrehzahl 6400. Dieser Punkt erscheint nur, wenn der HAL-Pin spindle.0.speed-out angeschlossen ist.

3.9. Jog-Geschwindigkeit

Durch Bewegen dieses Schiebereglers kann die Geschwindigkeit des Joggens geändert werden. Zum Beispiel, wenn der Schieberegler auf 1 Zoll / min eingestellt ist, dann wird ein 0,01-Zoll-Joggen in etwa 0,6 Sekunden oder 1/100 einer Minute abgeschlossen. In der Nähe der linken Seite (langsames Joggen) sind die Werte eng beieinander angeordnet, während sie in der Nähe der rechten Seite (schnelle Jogs) viel weiter voneinander entfernt sind, was eine breite Palette von Jog-Geschwindigkeiten mit feiner Kontrolle ermöglicht, wenn es am wichtigsten ist.

Auf Maschinen mit Drehachse wird ein zweiter Jog-Speed-Slider angezeigt. Dieser Schieberegler legt die Jog-Rate für die Drehachsen (A, B und C) fest.

3.10. Max. Geschwindigkeit

Durch Verschieben dieses Schiebereglers kann die maximale Geschwindigkeit eingestellt werden. Damit wird die maximale Geschwindigkeit für alle programmierten Bewegungen außer spindelsynchronisierten Bewegungen begrenzt.

4. Tastatursteuerung

Fast alle Aktionen in AXIS können über die Tastatur ausgeführt werden. Eine vollständige Liste der Tastaturkürzel finden Sie in der AXIS-Kurzreferenz, die Sie über Hilfe > Kurzreferenz aufrufen können. Viele der Tastenkombinationen sind im MDI-Modus nicht verfügbar.

4.1. Vorschub-Neufestsetzung (engl. override)-Tasten

Anmerkung
Einzelheiten zur spanischen Tastaturbelegung entnehmen Sie bitte der übersetzten Dokumentation.

Die Vorschub-Override-Tasten verhalten sich im manuellen Modus anders. Die Tasten 12345678 wählen eine Achse aus, wenn diese programmiert ist. Wenn Sie 3 Achsen haben, wählt ' die Achse 0, 1 die Achse 1 und 2 die Achse 2. Die übrigen Zifferntasten stellen weiterhin den Vorschub-Override ein. Wenn Sie ein Programm ausführen, stellt '1234567890 den Vorschub-Override auf 0% - 100% ein.

Die am häufigsten verwendeten Tastaturkürzel sind in der folgenden Tabelle aufgeführt:

Tabelle 1. Häufigste Tastaturkürzel
Tastenkombination Ergriffene Maßnahmen Modus

F1

Notaus ein-/ausschalten

Jede (engl. any)

F2

Maschine ein-/ausschalten

Jede (engl. any)

`, 1 .. 9, 0

Vorschub-Override von 0% bis 100% einstellen

Variiert

X, `

Erste Achse aktivieren

Handbuch

Y, 1

Zweite Achse aktivieren

Handbuch

Z, 2

Dritte Achse aktivieren

Handbuch

A, 3

Vierte Achse aktivieren

Handbuch

I

Jog-Inkrement auswählen

Handbuch

C

Kontinuierliches Joggen

Handbuch

Steuerung-Pos1 (engl. Home)

Referenzfahrt durchführen

Handbuch

Ende

Touch off: G5x Offset für aktive Achse setzen

Handbuch

Links, Rechts

Erste Achse joggen

Handbuch

Hoch, Runter

Zweite Achse joggen

Handbuch

Bild Hoch, Bild Runter (engl. Pg Up, Pg Dn)

Joggen der dritten Achse

Handbuch

[, ]

Vierte Achse joggen

Handbuch

O

Datei öffnen

Handbuch

Steuerung-R

Datei neu laden

Handbuch

R

Datei ausführen

Handbuch

P

Ausführung anhalten

Auto

S

Ausführung fortsetzen

Auto

Esc

Ausführung stoppen

Auto

Steuerung-K

Backplot löschen

Auto/Manuell

V

Wechseln zwischen voreingestellten Ansichten

Auto/Manuell

Umschalttaste-Links,Rechts

Eilgang X-Achse

Handbuch

Umschalttaste-Hoch/Runter

Eilgang Y-Achse

Handbuch

Umschalt-Bild auf, Bild ab

Eilgang Z-Achse

Handbuch

@

Umschalten Ist/Befehl

Jede (engl. any)

#

Umschalten Relativ/Maschine

Jede (engl. any)

5. LinuxCNC-Status anzeigen (linuxcnctop)

AXIS enthält ein Programm namens linuxcnctop, das einige der Details des LinuxCNC-Status anzeigt. Sie können dieses Programm ausführen, indem Sie Maschine > LinuxCNC-Status anzeigen aufrufen

LinuxCNC-Statusfenster
Abbildung 7. LinuxCNC-Statusfenster

Der Name jedes Elements wird in der linken Spalte angezeigt. Der aktuelle Wert wird in der rechten Spalte angezeigt. Wenn sich der Wert kürzlich geändert hat, wird er rot unterlegt angezeigt.

6. MDI-Schnittstelle

AXIS enthält ein Programm namens mdi, das die Eingabe von MDI-Befehlen im Textmodus in eine laufende LinuxCNC-Sitzung ermöglicht. Sie können dieses Programm ausführen, indem Sie ein Terminal öffnen und eingeben:

mdi

Sobald es läuft, wird die Eingabeaufforderung MDI> angezeigt. Bei Eingabe einer leere Zeile wird die aktuelle Position der Maschine angezeigt. Ein eingegebener Befehl wird an LinuxCNC gesendet, um ausgeführt zu werden.

Dies ist eine Beispielsitzung von mdi:

$ mdi
MDI>
(0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
MDI> G1 F5 X1
MDI>
(0.5928500000000374, 0.0, 0.0, 0.0, 0.0, 0.0)
MDI>
(1.0000000000000639, 0.0, 0.0, 0.0, 0.0, 0.0)

7. axis-remote

AXIS enthält ein Programm namens axis-remote, das bestimmte Befehle an einen laufenden AXIS senden kann. Die verfügbaren Befehle werden durch Ausführen von axis-remote --help angezeigt und umfassen die Überprüfung, ob AXIS läuft (--ping), das Laden einer Datei nach Namen, das erneute Laden der aktuell geladenen Datei (--reload) und das Beenden von AXIS (--quit).

8. Manueller Werkzeugwechsel

LinuxCNC enthält eine nicht-Echtzeit-HAL-Komponente namens hal_manualtoolchange, die ein Fenster zeigt, das Ihnen sagt, welches Werkzeug erwartet wird, wenn ein M6-Befehl ausgegeben wird. Nach dem Drücken der Schaltfläche OK wird die Ausführung des Programms fortgesetzt.

Die Komponente hal_manualtoolchange enthält einen HAL-Pin für eine Taste, die mit einer physischen Taste verbunden werden kann, um den Werkzeugwechsel abzuschließen und die Fensteraufforderung zu entfernen (hal_manualtoolchange.change_button).

Die HAL-Konfigurationsdatei lib/hallib/axis_manualtoolchange.hal enthält die HAL-Befehle, die zur Verwendung dieser Komponente erforderlich sind.

hal_manualtoolchange kann auch verwendet werden, wenn AXIS nicht als GUI verwendet wird. Diese Komponente ist besonders nützlich, wenn Sie voreinstellbare Werkzeuge haben und die Werkzeugtabelle verwenden.

Anmerkung
Wichtiger Hinweis: Eilgänge werden nach der Ausgabe eines T<n> bis zum nächsten Vorschub nach dem M6 nicht in der Vorschau angezeigt. Dies kann für die meisten Anwender sehr verwirrend sein. Um diese Funktion für den aktuellen Werkzeugwechsel auszuschalten, programmieren Sie ein G1 ohne Vorschub nach dem T<n>.
Fenster für Manuellen Werkzeugwechsel
Abbildung 8. Fenster für manuellen Werkzeugwechsel

9. Python-Module

AXIS enthält mehrere Python-Module, die für andere nützlich sein können. Für weitere Informationen über eines dieser Module verwenden Sie pydoc <Modulname> oder lesen Sie den Quellcode. Zu diesen Modulen gehören:

  • emc' ermöglicht den Zugriff auf die LinuxCNC Befehls-, Status- und Fehlerkanäle

  • gcode bietet Zugriff auf den RS274NGC-Interpreter

  • rs274 bietet zusätzliche Tools für die Arbeit mit RS274NGC-Dateien

  • hal ermöglicht die Erstellung von in Python geschriebenen nicht-Echtzeit-HAL-Komponenten

  • _togl stellt ein OpenGL-Widget bereit, das in Tkinter-Anwendungen verwendet werden kann

Um diese Module in Ihren eigenen Skripten zu verwenden, müssen Sie sicherstellen, dass sich das Verzeichnis, in dem sie sich befinden, im Modulpfad von Python befindet. Wenn Sie eine installierte Version von LinuxCNC ausführen, sollte dies automatisch geschehen. Wenn Sie "in-place" laufen, können Sie dies mit "scripts/rip-environment" tun.

10. Verwendung von AXIS im Drehmaschinenmodus

Durch Einfügen der Zeile LATHE = 1 in den Abschnitt [DISPLAY] der INI-Datei wählt AXIS den Drehmaschinenmodus. Die Y-Achse wird in den Koordinatenanzeigen nicht angezeigt, die Ansicht wird so geändert, dass die Z-Achse nach rechts und die X-Achse zum unteren Rand des Bildschirms zeigt, und mehrere Steuerelemente (z. B. die für voreingestellte Ansichten) werden entfernt. Die Koordinatenanzeigen für X werden durch Durchmesser und Radius ersetzt.

AXIS-Drehmaschinenmodus
Abbildung 9. AXIS-Drehmaschinenmodus

Durch Drücken von V wird die gesamte Datei angezeigt, sofern eine solche geladen ist.

Im Drehmaschinenmodus wird die Form des geladenen Werkzeugs (falls vorhanden) angezeigt.

Drehwerkzeug-Form
Abbildung 10. Drehwerkzeug-Form

Um die Anzeige in eine Drehbank mit hinterem Werkzeug zu ändern, müssen Sie sowohl LATHE = 1 als auch BACK_TOOL_LATHE = 1 in der Sektion [DISPLAY] eingeben. Dadurch wird die Ansicht umgedreht und das Werkzeug auf die Rückseite der Z-Achse gelegt.

Form des hinteren Drehwerkzeugs
Abbildung 11. Form des hinteren Drehwerkzeugs

11. Verwendung von AXIS im Modus Schaumstoffschneiden (engl. foam cutting mode)

Durch Einfügen der Zeile FOAM = 1 in den [DISPLAY]-Abschnitt der INI-Datei wählt AXIS den Schaumschneidemodus. In der Programmvorschau werden die XY-Bewegungen in einer Ebene und die UV-Bewegungen in einer anderen Ebene angezeigt. In der Live-Darstellung werden Linien zwischen entsprechenden Punkten auf der XY-Ebene und der UV-Ebene gezeichnet. Die speziellen Kommentare (XY_Z_POS) und (UV_Z_POS) legen die Z-Koordinaten dieser Ebenen fest, die standardmäßig 0 und 1,5 Maschineneinheiten betragen.

Modus Schaumstoffschneiden
Abbildung 12. Modus Schaumstoffschneiden

12. Erweiterte Konfiguration

Wenn AXIS gestartet wird, werden die HAL-Pins für die grafische Benutzeroberfläche erstellt und die in der INI-Datei genannte HAL-Datei ausgeführt: [HAL]POSTGUI_HALFILE=<Dateiname>. Typischerweise ist <Dateiname> der Basisname der Konfiguration + _postgui + .hal, z.B. lathe_postgui.hal, kann aber jeder beliebige Dateiname sein. Diese Befehle werden nach der Erstellung des Bildschirms ausgeführt und garantieren, dass die HAL-Pins des Widgets verfügbar sind. Sie können mehrere Zeilen mit POSTGUI_HALFILE=<Dateiname> in der INI haben. Sie werden nacheinander in der Reihenfolge ausgeführt, in der sie erscheinen.

Weitere Informationen zu den Einstellungen in der INI-Datei der Funktionsweise von AXIS, finden Sie im Kapitel INI-Konfiguration zur Display Section.

12.1. Programm-Filter

AXIS hat die Möglichkeit, geladene Dateien durch ein "Filterprogramm" zu schicken. Dieser Filter kann jede gewünschte Aufgabe erfüllen: Etwas so Einfaches wie sicherzustellen, dass die Datei mit "M2" endet, oder etwas so Kompliziertes wie die Erzeugung von G-Code aus einem Bild.

Der Abschnitt [FILTER] der INI-Datei steuert, wie die Filter funktionieren. Schreiben Sie zunächst für jeden Dateityp eine PROGRAM_EXTENSION-Zeile. Dann geben Sie das Programm an, das für jeden Dateityp ausgeführt werden soll. Dieses Programm erhält den Namen der Eingabedatei als erstes Argument und muss rs274ngc-Code in die Standardausgabe schreiben. Diese Ausgabe ist das, was im Textbereich angezeigt wird, in der Vorschau im Anzeigebereich, und dann auch von LinuxCNC ausgeführt wird. Die folgenden Zeilen fügen Unterstützung für den in LinuxCNC enthaltenen "image-to-gcode" (engl. für Bild zu G-Code) -Konverter hinzu:

[FILTER]
PROGRAM_EXTENSION = .png,.gif Greyscale Depth Image
png = image-to-gcode
gif = image-to-gcode

Es ist auch möglich, einen Interpreter anzugeben:

PROGRAM_EXTENSION = .py Python Script
py = python

Auf diese Weise kann jedes Python-Skript geöffnet werden, und seine Ausgabe wird als G-Code behandelt. Ein solches Beispielskript ist unter "nc_files/holecircle.py" verfügbar. Dieses Skript erzeugt G-Code für das Bohren einer Reihe von Löchern entlang des Umfangs eines Kreises.

Kreisförmige Löcher
Abbildung 13. Kreisförmige Löcher

Wenn die Umgebungsvariable AXIS_PROGRESS_BAR gesetzt ist, werden in stderr Zeilen der Form

FILTER_PROGRESS=%d

setzt den AXIS-Fortschrittsbalken auf den angegebenen Prozentsatz. Diese Funktion sollte von jedem Filter verwendet werden, der lange läuft.

12.2. Die X-Ressourcen-Datenbank

Die Farben der meisten Elemente der AXIS-Benutzeroberfläche können über die X-Ressourcen-Datenbank angepasst werden. Die Beispieldatei axis_light_background ändert die Farben des Backplot-Fensters in ein Schema "dunkle Linien auf weißem Hintergrund" und dient auch als Referenz für die konfigurierbaren Elemente im Anzeigebereich. Die Beispieldatei axis_big_dro ändert die Positionsanzeige in eine größere Schriftart. So verwenden Sie diese Dateien:

xrdb -merge /usr/share/doc/emc2/axis_light_background

xrdb -merge /usr/share/doc/emc2/axis_big_dro

Informationen zu den anderen Elementen, die in Tk-Anwendungen konfiguriert werden können, finden Sie auf den Manpages von Tk.

Da moderne Desktop-Umgebungen automatisch einige Einstellungen in der X-Ressourcen-Datenbank vornehmen, die sich nachteilig auf AXIS auswirken, werden diese Einstellungen standardmäßig ignoriert. Damit die Elemente der X-Ressourcen-Datenbank die AXIS-Standardeinstellungen außer Kraft setzen, fügen Sie die folgende Zeile in Ihre X-Ressourcen ein:

*AXIS*optionLevel: widgetDefault

Dies bewirkt, dass die eingebauten Optionen auf der Optionsebene widgetDefault erstellt werden, so dass X-Ressourcen (die der Ebene userDefault angehören) sie außer Kraft setzen können.

12.3. Handrad (engl. jogwheel)

Um die Interaktion von AXIS mit einem physischen Jogwheel zu verbessern, wird die aktuell aktive Achse, die in der GUI ausgewählt wurde, auch an einen HAL-Pin mit einem Namen wie axisui.jog.x gemeldet. Außer für eine kurze Zeit nach dem Wechsel der aktuellen Achse ist jeweils nur einer dieser Pins TRUE, die anderen bleiben FALSE.

Nachdem AXIS diese HAL-Pins erstellt hat, führt es die HAL-Datei aus, die mit: [HAL]POSTGUI_HALFILE deklariert ist. Was unterscheidet sich von [HAL]HALFILE, die nur einmal verwendet werden kann.

12.4. ~/.axisrc

Wenn sie existiert, wird der Inhalt von ~/.axisrc als Python-Quellcode ausgeführt, kurz bevor die AXIS-GUI angezeigt wird. Die Details dessen, was in ~/.axisrc geschrieben werden kann, können sich während des Entwicklungszyklus ändern.

Im Folgenden wird Strg-Q als Tastenkombination für Beenden hinzugefügt.

Beispiel einer .axisrc-Datei
root_window.bind("<Control-q>", "destroy .")
help2.append(("Control-Q", "Quit"))

Das folgende Beispiel stoppt den Dialog "Wollen Sie wirklich beenden".

root_window.tk.call("wm","protocol",".","WM_DELETE_WINDOW","destroy .")

12.5. USER_COMMAND_FILE

Eine konfigurationsspezifische Python-Datei kann mit einer INI-Datei-Einstellung [DISPLAY]USER_COMMAND_FILE=filename.py angegeben werden. Wie eine ~/.axisrc-Datei wird diese Datei kurz vor der Anzeige der AXIS-GUI aufgerufen. Diese Datei ist spezifisch für eine INI-Dateikonfiguration und nicht für das Home-Verzeichnis des Benutzers.

12.6. user_live_update()

Die AXIS-GUI enthält eine No-Op-Funktion (Platzhalter) namens user_live_update(), die am Ende der update()-Funktion der LivePlotter-Klasse ausgeführt wird. Diese Funktion kann in einem ~/.axisrc-Python-Skript oder einem [DISPLAY]USER_COMMAND_FILE-Python-Skript implementiert werden, um benutzerdefinierte, periodische Aktionen auszuführen. Die Details dieser Funktion hängen von der AXIS-GUI-Implementierung ab und können sich im Laufe des Entwicklungszyklus ändern.

12.7. user_hal_pins()

Die AXIS-GUI enthält eine No-Op-Funktion (Platzhalter) namens user_hal_pins().
Sie wird unmittelbar nach dem Aufruf der .axisrc-Datei und unmittelbar vor der Initialisierung von GladeVCP-Panels / eingebetteten Registerkarten ausgeführt.
Diese Funktion kann in einem ~/.axisrc Python-Skript oder einem [DISPLAY]USER_COMMAND_FILE Python-Skript implementiert werden, um benutzerdefinierte HAL-Pins zu erstellen, die das Präfix axisui. verwenden.
Verwenden Sie comp als Referenz für die HAL-Komponenteninstanz.
HAL comp.ready() wird unmittelbar nach der Rückkehr dieser Funktion aufgerufen.

12.8. Externer Editor

Die Menüpunkte Datei > Bearbeiten… und Datei > Werkzeugtabelle bearbeiten… werden nach der Definition des Editors im INI-Abschnitt [DISPLAY] verfügbar. Nützliche Werte sind EDITOR=gedit und EDITOR=gnome-terminal -e vim. Weitere Informationen finden Sie unter Display Section im Kapitel INI-Konfiguration.

12.9. Virtuelles Bedienfeld (engl. virtual control panel, kurz VCP)

AXIS kann ein benutzerdefiniertes virtuelles Bedienfeld entweder in der rechten Spalte oder in der unteren Zeile anzeigen. Zusätzlich können ein oder mehrere Bedienfelder als eingebettete Registerkarten angezeigt werden. Sie können Schaltflächen, Indikatoren, Datenanzeigen und mehr programmieren. Weitere Informationen finden Sie in den Kapiteln PyVCP und GladeVCP.

12.10. Vorschau-Steuerung

Spezielle Kommentare können in die G-Code-Datei eingefügt werden, um zu steuern, wie sich die Vorschau von AXIS verhält. Wenn Sie das Zeichnen der Vorschau einschränken wollen, verwenden Sie diese speziellen Kommentare. Alles, was zwischen (AXIS,hide) und (AXIS,show) liegt, wird während der Vorschau nicht gezeichnet. (AXIS,hide) und (AXIS,show) müssen paarweise verwendet werden, wobei (AXIS,hide) an erster Stelle steht. Alles, was nach einem (AXIS,stop) kommt, wird während der Vorschau nicht gezeichnet.

Diese Kommentare sind nützlich, um die Anzeige der Vorschau zu entschlacken (z. B. kann man bei der Fehlersuche in einer größeren G-Code-Datei die Vorschau für bestimmte Teile, die bereits gut funktionieren, deaktivieren).

  • (AXIS,hide) Stoppt die Vorschau (muss zuerst sein)

  • (AXIS,show) Setzt die Vorschau fort (muss auf ein hide folgen)

  • (AXIS,stop) Stoppt die Vorschau von hier bis zum Ende der Datei.

  • (AXIS,notify,the_text) Zeigt the_text als Infoanzeige an

Diese Anzeige kann in der AXIS-Vorschau nützlich sein, wenn (Debug-, Nachrichten-) Kommentare nicht angezeigt werden.

13. Axisui

Um die Interaktion von AXIS mit physischen Jogwheels zu verbessern, wird die aktuell in der GUI ausgewählte Achse auch auf einem Pin mit einem Namen wie axisui.jog.x gemeldet. Einer dieser Pins ist immer TRUE, die anderen sind FALSE. Diese sind dazu gedacht, die Jog-Aktivierungspins von Motion zu steuern.

Axisui-Pins

AXIS verfügt über HAL-Pins, die anzeigen, welcher Jog-Radio-Button auf der Registerkarte "Manuelle Steuerung" ausgewählt ist.

Type Dir  Name
bit  OUT  axisui.jog.x
bit  OUT  axisui.jog.y
bit  OUT  axisui.jog.z
bit  OUT  axisui.jog.a
bit  OUT  axisui.jog.b
bit  OUT  axisui.jog.c
bit  OUT  axisui.jog.u
bit  OUT  axisui.jog.v
bit  OUT  axisui.jog.w

AXIS verfügt über einen HAL-Pin zur Anzeige der auf der Registerkarte "Manuell" ausgewählten Schrittweite.

Type  Dir Name
float OUT axisui.jog.increment

AXIS hat einen HAL-Ausgangspin, der anzeigt, wenn ein Abbruch stattgefunden hat. Der Pin axisui.abort wird TRUE und kehrt nach 0,3 ms auf FALSE zurück.

Type  Dir    Name
bit   OUT    axisui.abort

AXIS verfügt über einen HAL-Ausgabe-Pin, der anzeigt, wenn ein Fehler aufgetreten ist. Der Pin axisui.error bleibt TRUE, bis alle Fehlerbenachrichtigungen geschlossen wurden.

Type  Dir    Name
bit   OUT    axisui.error

AXIS verfügt über HAL-Eingangspins, um die Popup-Benachrichtigungen nach Fehlern und Informationen zu löschen.

Type  Dir    Name
bit   IN     axisui.notifications-clear
bit   IN     axisui.notifications-clear-error
bit   IN     axisui.notifications-clear-info

AXIS verfügt über einen HAL-Eingangspin, der die Funktion "Pause/Resume" deaktiviert/aktiviert.

Type  Dir    Name
bit   IN     axisui.resume-inhibit

14. Hinweise zur AXIS-Anpassung

AXIS ist eine ziemlich große und schwer zu durchdringende Codebasis. Das ist hilfreich, um den Code stabil zu halten, macht es aber schwierig, ihn anzupassen.
Hier werden wir Codeschnipsel zeigen, um das Verhalten oder die Darstellung des Bildschirms zu ändern. Bitte beachten Sie, dass sich der interne Code von AXIS von Zeit zu Zeit ändern kann.
Es ist nicht garantiert, dass diese Schnipsel weiterhin funktionieren - sie müssen möglicherweise angepasst werden.

14.1. Die Update-Funktion

In AXIS gibt es eine Funktion namens user_live_update, die jedes Mal aufgerufen wird, wenn AXIS sich selbst aktualisiert. Sie können diese Funktion verwenden, um Ihre eigenen Funktionen zu aktualisieren.

# continuous update function
def user_live_update():
    print('i am printed every update...')

14.2. Deaktivieren des Schließen-Dialogs

# Deaktivieren Sie den "Do you want to close"-Dialog
root_window.tk.call("wm", "protocol",".", "WM_DELETE_WINDOW", "destroy .")

14.3. Ändern Sie die Textschriftart

# Schriftart ändern

font = 'sans 11'
fname,fsize = font.split()
root_window.tk.call('font','configure','TkDefaultFont','-family',fname,'-size',fsize)

# den Text in den Tabs so umgestalten, dass er die Größe der neuen Standardschriftart annimmt

root_window.tk.call('.pane.top.tabs','itemconfigure','manual','-text',' Manual - F3 ')
root_window.tk.call('.pane.top.tabs','itemconfigure','mdi','-text',' MDI - F5 ')
root_window.tk.call('.pane.top.right','itemconfigure','preview','-text',' Preview ')
root_window.tk.call('.pane.top.right','itemconfigure','numbers','-text',' DRO ')


# G-Code-Schriftart ist unabhängig

root_window.tk.call('.pane.bottom.t.text','configure','-foreground','blue')
#root_window.tk.call('.pane.bottom.t.text','configure','-foreground','blue','-font',font)
#root_window.tk.call('.pane.bottom.t.text','configure','-foreground','blue','-font',font,'-height','12')

14.4. Ändern der Rapid Rate mit Tastenkombinationen

# Verwenden Sie Control + ` oder 1-0 als Tastaturkürzel für die rapid rate und behalten Sie ` oder 1-0 für feedrate
# fügt auch Text zur Kurzreferenz in der Hilfe hinzu

help1.insert(10,("Strg+ `,1..9,0", _("Set Rapid Override from 0% to 100%")),)

root_window.bind('<Control-Key-quoteleft>',lambda event: set_rapidrate(0))
root_window.bind('<Control-Key-1>',lambda event: set_rapidrate(10))
root_window.bind('<Control-Key-2>',lambda event: set_rapidrate(20))
root_window.bind('<Control-Key-3>',lambda event: set_rapidrate(30))
root_window.bind('<Control-Key-4>',lambda event: set_rapidrate(40))
root_window.bind('<Control-Key-5>',lambda event: set_rapidrate(50))
root_window.bind('<Control-Key-6>',lambda event: set_rapidrate(60))
root_window.bind('<Control-Key-7>',lambda event: set_rapidrate(70))
root_window.bind('<Control-Key-8>',lambda event: set_rapidrate(80))
root_window.bind('<Control-Key-9>',lambda event: set_rapidrate(90))
root_window.bind('<Control-Key-0>',lambda event: set_rapidrate(100))
root_window.bind('<Key-quoteleft>',lambda event: set_feedrate(0))
root_window.bind('<Key-1>',lambda event: set_feedrate(10))
root_window.bind('<Key-2>',lambda event: set_feedrate(20))
root_window.bind('<Key-3>',lambda event: set_feedrate(30))
root_window.bind('<Key-4>',lambda event: set_feedrate(40))
root_window.bind('<Key-5>',lambda event: set_feedrate(50))
root_window.bind('<Key-6>',lambda event: set_feedrate(60))
root_window.bind('<Key-7>',lambda event: set_feedrate(70))
root_window.bind('<Key-8>',lambda event: set_feedrate(80))
root_window.bind('<Key-9>',lambda event: set_feedrate(90))
root_window.bind('<Key-0>',lambda event: set_feedrate(100))

14.5. Lesen der INI-Datei

# INI-Dateielement lesen
machine = inifile.find('EMC','MACHINE')
print('machine name =',machine)

14.6. Lesen des LinuxCNC-Status

# LinuxCNC-Status kann aus s gelesen werden.
print(s.actual_position)
print(s.paused)

14.7. Ändern der aktuellen Ansicht

# Legen Sie die Ansicht der Vorschau fest.
# gültige Ansichten sind view_x view_y view_y2 view_z view_z2 view_p
commands.set_view_z()

14.8. Erstellen neuer AXISUI HAL-Pins

def user_hal_pins():
    comp.newpin('my-new-in-pin', hal.HAL_BIT, hal.HAL_IN)
    comp.ready()

14.9. Neue HAL-Komponente und Pins erstellen

# Komponente erstellen

mycomp = hal.component('meine_Komponente')
mycomp.newpin('idle-led',hal.HAL_BIT,hal.HAL_IN)
mycomp.newpin('pause-led',hal.HAL_BIT,hal.HAL_IN)
mycomp.ready()

# Pins verbinden

hal.new_sig('idle-led',hal.HAL_BIT)
hal.connect('halui.program.is-idle','idle-led')
hal.connect('my_component.idle-led','idle-led')

# Pin setzen

hal.set_p('meine_Komponente.pause-led','1')

# Pin auslesen (engl. get) ab Version 2.8

value = hal.get_value('halui.program.is-idle')
print('value is a',type(value),'value of',value)

14.10. Tabs wechseln mit HAL-Pins

# HAL Pins von einem GladeVCP-Panel werden nicht bereit sein, wenn user_live_update ausgeführt wird.
# um sie zu lesen, müssen Sie sie in einen try/except-Block setzen

# Das folgende Beispiel geht von 5 HAL-Tasten in einem GladeVCP-Panel aus, die zum Umschalten
# die Registerkarten von AXIS.
# Die Namen der Schaltflächen sind 'manual-tab', 'mdi-tab', 'preview-tab', 'dro-tab', 'user0-tab'.
# Die Registerkarte "user_0" wäre, falls vorhanden, die erste in GladeVCP eingebettete Registerkarte.

# LinuxCNC ab Version 2.8

def user_live_update():
    try:
        if hal.get_value('gladevcp.manual-tab'):
            root_window.tk.call('.pane.top.tabs','raise','manual')
        elif hal.get_value('gladevcp.mdi-tab'):
            root_window.tk.call('.pane.top.tabs','raise','mdi')
        elif hal.get_value('gladevcp.preview-tab'):
            root_window.tk.call('.pane.top.right','raise','preview')
        elif hal.get_value('gladevcp.numbers-tab'):
            root_window.tk.call('.pane.top.right','raise','numbers')
        elif hal.get_value('gladevcp.user0-tab'):
            root_window.tk.call('.pane.top.right','raise','user_0')
    except:
        pass

14.11. Hinzufügen einer GOTO Referenzpunkt (engl. Home)-Taste

def goto_home(axis):
    if s.interp_state == linuxcnc.INTERP_IDLE:
        home = inifile.find('JOINT_' + str(inifile.find('TRAJ', 'COORDINATES').upper().index(axis)), 'HOME')
        mode = s.task_mode
        if s.task_mode != linuxcnc.MODE_MDI:
            c.mode(linuxcnc.MODE_MDI)
        c.mdi('G53 G0 ' + axis + home)

# einen Button für die Y-Achse erzeugen
root_window.tk.call('button','.pane.top.tabs.fmanual.homey','-text','Home Y','-command','goto_home Y','-height','2')

# Platzieren des Button
root_window.tk.call('grid','.pane.top.tabs.fmanual.homey','-column','1','-row','7','-columnspan','2','-padx','4','-sticky','w')

# jede Funktion, die aus Tcl aufgerufen wird, muss zu TclCommands hinzugefügt werden
TclCommands.goto_home = goto_home
Befehle = TclCommands(root_window)

14.12. Button zum manuellen Rahmen hinzufügen

# Erstellen eines neuen Button und einfügen in den manuellen Rahmen

root_window.tk.call('button','.pane.top.tabs.fmanual.mybutton','-text','My Button','-command','mybutton_clicked','-height','2')
root_window.tk.call('grid','.pane.top.tabs.fmanual.mybutton','-column','1','-row','6','-columnspan','2','-padx','4','-sticky','w')

# Die obigen senden den Befehl "mybutton_clicked", wenn sie angeklickt werden
# Weitere Optionen sind das Binden eines Druck- oder Freigabebefehls (oder beides) an die Schaltfläche
# diese können zusätzlich oder anstelle des angeklickten Befehls sein,
# dann '-command','mybutton_clicked' aus der ersten Zeile löschen.

# Button-1 = linke Maustaste, 2 = rechte oder 3 = mittlere Maustaste

root_window.tk.call('bind','.pane.top.tabs.fmanual.mybutton','<Button-1>','mybutton_pressed')
root_window.tk.call('bind','.pane.top.tabs.fmanual.mybutton','<ButtonRelease-1>','mybutton_released')

# Funktionen, die von den Buttons aufgerufen werden

def mybutton_clicked():
    print('mybutton was clicked')
def mybutton_pressed():
    print('mybutton was pressed')
def mybutton_released():
    print('mybutton was released')

# jede Funktion, die von Tcl aufgerufen wird, muss zu TclCommands hinzugefügt werden

TclCommands.mybutton_clicked = mybutton_clicked
TclCommands.mybutton_pressed = mybutton_pressed
TclCommands.mybutton_released = mybutton_released
commands = TclCommands(root_window)

14.13. Interne Variablen lesen

# die folgenden Variablen können aus der vars-Instanz gelesen werden

print(vars.machine.get())
print(vars.emcini.get())

    active_codes            = StringVar
    block_delete            = BooleanVar
    brake                   = BooleanVar
    coord_type              = IntVar
    display_type            = IntVar
    dro_large_font          = IntVar
    emcini                  = StringVar
    exec_state              = IntVar
    feedrate                = IntVar
    flood                   = BooleanVar
    grid_size               = DoubleVar
    has_editor              = IntVar
    has_ladder              = IntVar
    highlight_line          = IntVar
    interp_pause            = IntVar
    interp_state            = IntVar
    ja_rbutton              = StringVar
    jog_aspeed              = DoubleVar
    jog_speed               = DoubleVar
    kinematics_type         = IntVar
    linuxcnctop_command     = StringVar
    machine                 = StringVar
    max_aspeed              = DoubleVar
    max_maxvel              = DoubleVar
    max_queued_mdi_commands = IntVar
    max_speed               = DoubleVar
    maxvel_speed            = DoubleVar
    mdi_command             = StringVar
    metric                  = IntVar
    mist                    = BooleanVar
    motion_mode             = IntVar
    on_any_limit            = BooleanVar
    optional_stop           = BooleanVar
    override_limits         = BooleanVar
    program_alpha           = IntVar
    queued_mdi_commands     = IntVar
    rapidrate               = IntVar
    rotate_mode             = BooleanVar
    running_line            = IntVar
    show_distance_to_go     = IntVar
    show_extents            = IntVar
    show_live_plot          = IntVar
    show_machine_limits     = IntVar
    show_machine_speed      = IntVar
    show_program            = IntVar
    show_pyvcppanel         = IntVar
    show_rapids             = IntVar
    show_tool               = IntVar
    show_offsets            = IntVar
    spindledir              = IntVar
    spindlerate             = IntVar
    task_mode               = IntVar
    task_paused             = IntVar
    task_state              = IntVar
    taskfile                = StringVar
    teleop_mode             = IntVar
    tool                    = StringVar
    touch_off_system        = StringVar
    trajcoordinates         = StringVar
    tto_g11                 = BooleanVar
    view_type               = IntVar

14.14. Widgets ausblenden

# ein Widget ausblenden
# 'grid' oder 'pack' verwenden, je nachdem, wie es ursprünglich platziert wurde
root_window.tk.call('grid','forget','.pane.top.tabs.fmanual.jogf.zerohome.tooltouch')

14.15. Ändern eines Labels

# Label eines Widgets ändern
root_window.tk.call('setup_widget_accel','.pane.top.tabs.fmanual.mist','Downdraft')

# sicherstellen, dass es erscheint (in diesem Fall nur erforderlich, wenn die Schaltfläche mist ausgeblendet war)
root_window.tk.call('grid','.pane.top.tabs.fmanual.mist','-column','1','-row','5','-columnspan','2','-padx','4','-sticky','w')

14.16. Einen bestehenden Befehl umleiten

# einen bestehenden Befehl abgreifen
# ursprünglich ruft die Schaltfläche mist die Funktion mist auf
root_window.tk.call('.pane.top.tabs.fmanual.mist','configure','-command','hijacked_command')

# Die neue Funktion
def hijacked_command():
    print('abgegriffener mist command')

# Hinzufügen der Funktion zu TclCommands
TclCommands.hijacked_command = hijacked_command
Befehle = TclCommands(root_window)

14.17. Ändern Sie die DRO-Farbe

# dro-Bildschirm ändern
root_window.tk.call('.pane.top.right.fnumbers.text','configure','-foreground','green','-background','black')

14.18. Ändern der Buttons der Werkzeugleiste

# ändern der Werkzeugleisten-Buttons

buW = '3'
buH = '2'
boW = '3'

root_window.tk.call('.toolbar.machine_estop','configure','-image','','-text','ESTOP','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.machine_power','configure','-image','','-text','POWER','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.file_open','configure','-image','','-text','OPEN','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.reload','configure','-image','','-text','RELOAD','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.program_run','configure','-image','','-text','RUN','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.program_step','configure','-image','','-text','STEP','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.program_pause','configure','-image','','-text','PAUSE','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.program_stop','configure','-image','','-text','STOP','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.program_blockdelete','configure','-image','','-text','Skip /','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.program_optpause','configure','-image','','-text','M1','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.view_zoomin','configure','-image','','-text','Zoom+','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.view_zoomout','configure','-image','','-text','Zoom-','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.view_z','configure','-image','','-text','Top X','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.view_z2','configure','-image','','-text','Top Y','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.view_x','configure','-image','','-text','Right','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.view_y','configure','-image','','-text','Front','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.view_p','configure','-image','','-text','3D','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.rotate','configure','-image','','-text','Rotate','-width',buW,'-height',buH,'-borderwidth',boW)
root_window.tk.call('.toolbar.clear_plot','configure','-image','','-text','Clear','-width',buW,'-height',buH,'-borderwidth',boW)

14.19. Plotterfarben ändern

Im RGBA-Format, in dieser Reihenfolge: Joggen, Eilgang, Vorschub, Lichtbogen, Werkzeugwechsel, Messtaster

# Plotterfarben ändern
try:
    live_plotter.logger.set_colors((255,0,0,255),
                                    (0,255,0,255),
                                    (0,0,255,255),
                                    (255,255,0,255),
                                    (255,255,255,255),
                                    (0,255,255,255))
except Exception as e:
    print(e)