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.
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
-
Start von LinuxCNC und Auswahl einer Konfigurationsdatei.
-
Geben Sie den Notaus frei (F1) und schalten Sie das Gerät ein (F2).
-
Referenzfahrt aller Achsen.
-
Laden der G-Code-Datei.
-
Verwenden Sie das Vorschaudiagramm, um zu überprüfen, ob das Programm korrekt ist.
-
Laden des Materials.
-
Stellen Sie den richtigen Versatz für jede Achse ein, indem Sie joggen und bei Bedarf die Taste "Touch Off" verwenden.
-
Führen Sie das Programm aus.
-
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.
-
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.
-
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):
-
Umschalten des Notausschalters [F1] (auch E-Stop genannt)
-
Umschalten Machinenstrom [F2]
-
G-Code-Datei öffnen [O]
-
Aktuelle Datei neu laden [Strg-R]
-
Beginn der Ausführung der aktuellen Datei [R]
-
Nächste Zeile ausführen [T]
-
Ausführung anhalten [P] Ausführung fortsetzen [S]
-
Programmausführung anhalten [ESC]
-
Zeilen überspringen mit "/" [Alt-M-/] umschalten
-
Optionale Pause einschalten [Alt-M-1]
-
Vergrößern (engl. zoom in)
-
Herauszoomen (engl. zoom out)
-
Draufsicht
-
Gedrehte Draufsicht
-
Seitenansicht
-
Vorderansicht
-
Perspektivische Ansicht
-
Umschalten zwischen Ziehen und Drehen [D]
-
Live-Backplot löschen [Strg-K]
3.3. Grafischer Anzeigebereich
In der oberen linken Ecke der Programmanzeige befindet sich die Anzeige der Koordinatenposition für jede Achse. Rechts neben der Nummer wird ein Ursprungssymbol angezeigt, wenn die Achse referenziert wurde.
Ein 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) .
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Siehe auch die Optionen im Menü Maschine: "Werkstück berühren" und "Werkstückhalter berühren".
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.
Siehe auch die Optionen Werkzeug berühren auf Werkstück und Werkzeug berühren auf Halterung im Menü Maschine.
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).
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.
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.
-
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:
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
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 includes a program called mdi
, short for manual data input, which allows text-mode entry of MDI commands to a running LinuxCNC session. You can run this program directly from the UNIX command line by opening a terminal and typing:
mdi
Once it is running, it displays the prompt MDI>. When a blank line is entered, the machine’s current position is shown. When a command is entered, it is sent to LinuxCNC to be executed.
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 includes a program called axis-remote which can send certain commands to a running AXIS. The available commands are shown by running axis-remote --help and include checking whether AXIS is running (--ping), loading a file by name, reloading the currently loaded file (--reload), and making AXIS exit (--quit).
8. Manueller Werkzeugwechsel
LinuxCNC includes a non-realtime HAL component called hal_manualtoolchange, which shows a window prompt telling you what tool is expected when a M6 command is issued. After the OK button is pressed, execution of the program will continue.
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>. |
9. Python modules
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. Using AXIS in Lathe Mode
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.
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.
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.
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.
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
In this way, any Python script can be opened, and its output is treated as G-code. One such example script is available at nc_files/holecircle.py. This script creates G-code for drilling a series of holes along the circumference of a circle.
Wenn die Umgebungsvariable AXIS_PROGRESS_BAR gesetzt ist, werden in stderr Zeilen der Form
FILTER_PROGRESS=%d
will set the AXIS progress bar to the given percentage. This feature should be used by any filter that runs for a long time.
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
this causes the built-in options to be created at the option level widgetDefault, so that X Resources (which are level userDefault) can override them.
12.3. 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
If it exists, the contents of ~/.axisrc
are executed as Python source code just before the AXIS GUI is displayed.
The details of what may be written in the ~/.axisrc
are subject to change during the development cycle.
Im Folgenden wird Strg-Q als Tastenkombination für Beenden hinzugefügt.
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
The menu options File > Edit… and File > Edit Tool Table… become available after defining the editor in the INI section [DISPLAY]. Useful values include EDITOR=gedit
and EDITOR=gnome-terminal -e vim
. For more information, see the Display Section of the INI Configuration Chapter.
12.9. Virtual Control Panel
12.10. Vorschau Kontrolle
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.
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)