1. Einführung

QtDragon und QtDragon_hd werden mit dem QtVCP-Framework entwickelt. Es ist die kreative Vision der Forum Persönlichkeit Persei8. Vieles davon basiert auf der hervorragenden Arbeit anderer in der LinuxCNC-Gemeinschaft. LinuxCNC’s Version ist von Persei8’s Github Versionen angepasst. Es ist in erster Linie für 3/4-Achsen-Maschinen wie Fräsmaschinen oder Router gedacht. Es funktioniert gut mit einem Touchscreen und/oder einer Maus. QtDragon unterstützt mehrere Möglichkeiten zum Antasten von Werkzeugen und zum Antasten von Werkstücken. Sie können LinuxCNC’s externe Offsets Fähigkeit verwenden, um automatisch die Spindel während einer Pause zu erhöhen. Wenn Sie die VersaProbe-Option und Remap-Code können Sie automatische Werkzeuglängen-Abtastung beim Werkzeugwechsel hinzuzufügen.

Anmerkung
QtDragon und QtVCP sind relativ neue Programme in LinuxCNC hinzugefügt. Bugs und Unregelmäßigkeiten sind möglich. Bitte testen Sie sorgfältig, wenn Sie eine gefährliche Maschine benutzen. Bitte senden Sie Berichte an das Forum oder die Mailing Liste.

1.1. QtDragon

QtDragon-Router
Abbildung 1. QtDragon - 3 oder 4 Achsen Muster (1440x860) im Silber-look (eigentlich engl. theme)

QtDragon ist von einer Auflösung von 1280x768 bis 1680x1200 größenveränderbar. Es funktioniert im Fenstermodus auf jedem Monitor mit höherer Auflösung, aber nicht auf Monitoren mit niedrigerer Auflösung.

1.2. QtDragon_hd

QtDragon_hd
Abbildung 2. QtDragon_hd - 3 oder 4 Achsen-Beispiel für größere Monitore (1920x1056) im dunklen Thema

QtDragon_hd hat ein ähnliches Design wie QtDragon, wurde aber modifiziert, um den zusätzlichen Platz auf modernen, größeren Monitoren zu nutzen. Es gibt einige kleine Unterschiede im Layout und im Nutzen.

QtDragon_hd hat eine Auflösung von 1920x1056 und ist nicht größenveränderbar. Es funktioniert im Fenstermodus auf jedem Monitor mit höherer Auflösung, aber nicht auf Monitoren mit niedrigerer Auflösung.

2. Erste Schritte - Die INI-Datei

Wenn Ihre Konfiguration derzeit nicht für die Verwendung von QtDragon eingerichtet ist, können Sie sie ändern, indem Sie den Abschnitten der INI-Datei bearbeiten. Eine ausführliche Liste der Optionen finden Sie im Abschnitt Display der INI-Datei-Dokumentation.

Anmerkung
Sie können in der INI-Datei nur einen Abschnitt ( z.B. [HAL] ) haben. Wenn Sie in diesen Dokumenten mehrere Abschnittsoptionen sehen, fügen Sie sie alle unter dem entsprechenden Abschnittsnamen ein.

2.1. Anzeige (engl. display)

Im Abschnitt [DISPLAY] ändern Sie die DISPLAY =-Zuweisung wie folgt:

  • qtdragon für eine kleine Version

  • qtdradon_hd für die große Version.

Sie können -v, -d, -i oder -q hinzufügen, um eine (entsprechend) ausführliche, debug-, info- oder stille Ausgabe auf dem Terminal zu erhalten.

[DISPLAY]
DISPLAY = qtvcp qtdragon

2.2. Einstellungen

Um den Überblick über die Einstellungen zu behalten, sucht QtDragon nach einer Einstellungs-Textdatei. Fügen Sie den folgenden Eintrag unter der Überschrift [DISPLAY] hinzu.
Es kann ~ für das Heimverzeichnis (engl. home directory) oder WORKINGFOLDER oder CONFIGFOLDER verwenden, um QtVCPs zu diesen Verzeichnisse zu lenken:
Dadurch wird die Datei im config-Ordner des Startbildschirms gespeichert. (Andere Optionen sind möglich, siehe die QtVCP’s screenoption Widget Dokumentation.)

[DISPLAY]
PREFERENCE_FILE_PATH = WORKINGFOLDER/qtdragon.pref

2.3. Protokollierung (engl. logging)

Sie können angeben, wo Verlauf/Protokolle gespeichert werden sollen.
Diese Dateinamen können vom Benutzer ausgewählt werden.
Fügen Sie im Abschnitt [DISPLAY] Folgendes hinzu:

[DISPLAY]
MDI_HISTORY_FILE = mdi_history.dat
MACHINE_LOG_PATH = machine_log.dat
LOG_FILE = qtdragon.log

2.4. Override-Kontrollen

Diese setzen die Übersteuerungsregler von qtdragon (1.0 = 100 Prozent):

[DISPLAY]
MAX_SPINDLE_0_OVERRIDE = 1.5
MIN_SPINDLE_0_OVERRIDE = .5
MAX_FEED_OVERRIDE       = 1.2

2.5. Spindelsteuerungen

Spindelsteuerungseinstellungen (in U/min und Watt):

[DISPLAY]
DEFAULT_SPINDLE_0_SPEED = 500
SPINDLE_INCREMENT = 200
MIN_SPINDLE_0_SPEED = 100
MAX_SPINDLE_0_SPEED = 2500
MAX_SPINDLE_POWER = 1500

2.6. Jogging-Inkremente

Legen Sie wählbare Jogging-Schritte fest.
Diese Abstufungen können vom Benutzer geändert werden.

[DISPLAY]
INCREMENTS = Continuous, .001 mm, .01 mm, .1 mm, 1 mm, 1.0 inch, 0.1 inch, 0.01 inch
ANGULAR_INCREMENTS = 1, 5, 10, 30, 45, 90, 180, 360

2.7. Jog-Geschwindigkeit

Einstellen der Jogginggeschwindigkeit (in Einheiten pro Sekunde)

[DISPLAY]
MIN_LINEAR_VELOCITY     = 0
MAX_LINEAR_VELOCITY     = 60.00
DEFAULT_LINEAR_VELOCITY = 50.0
DEFAULT_ANGULAR_VELOCITY = 10
MIN_ANGULAR_VELOCITY = 1
MAX_ANGULAR_VELOCITY = 360

2.8. Dialogsystem für Benutzermeldungen

Optionale Popup-Dialoge für benutzerdefinierte Meldungen, gesteuert durch HAL-Pins.
MESSAGE_TYPE kann okdialog oder yesnodialog sein. Siehe qtvcp/library/messages für weitere Informationen.
Dieses Beispiel zeigt, wie man einen Dialog erstellt, der den Benutzer auffordert, ok zu wählen, um ihn zu bestätigen und auszublenden.
Diese Dialoge könnten z.B. für Warnungen bei niedrigem Schmierölstand usw. verwendet werden.

[DISPLAY]
MESSAGE_BOLDTEXT = Dies ist der kurze Text
MESSAGE_TEXT = Dies ist der längere Text des Tests der beiden Typen. Er kann länger sein als der Text der Statusleiste
MESSAGE_DETAILS = BOTH DETAILS
MESSAGE_TYPE = okdialog
MESSAGE_PINNAME = oktest

2.9. Benutzerdefinierte VCP-Panels einbetten

Sie können optional QtVCP Virtual Control Panels in den QtDragon oder QtDragon_hd Bildschirm einbetten.
Diese Panels können entweder vom Benutzer erstellt oder eingebaut werden QtVCP Panels.
Siehe QtVCP/VCP Panels für andere verfügbare eingebaute Panels.

Der Eintrag EMBED_TAB_NAME wird als Titel für die neue Registerkarte verwendet (muss eindeutig sein)
Die Optionen der Registerkarte EMBED_TAB_LOCATION beinhalten: tabWidget_utilities, tabWidget_setup und stackedWidget_mainTab.
Die Registerkarte EMBED_TAB_COMMAND gibt an, welches einbettbare Programm ausgeführt werden soll, einschließlich dessen Befehlszeilenoptionen.

Bei Verwendung von tabWidget_utilities oder tabWidget_setup wird eine zusätzliche Registerkarte mit dem Panel erscheinen.
Wenn Sie stackedWidget_mainTab verwenden, erscheint eine Schaltfläche mit der Aufschrift User.
Wenn Sie diese Schaltfläche drücken, werden alle verfügbaren Felder (die für diesen Ort angegeben sind) im Hauptregisterkartenbereich angezeigt.

2.9.1. Einbetten einer Vismach Fräse

Sample zufügen ein builtin Diskussionsrunde zu den Nutzen Deckel, #d.h., ein graphisches #animieren Maschine benutzend die vismach Bibliothek.
[DISPLAY]
EMBED_TAB_NAME = Vismach Demo
EMBED_TAB_COMMAND = qtvcp vismach_mill_xyz
EMBED_TAB_LOCATION = tabWidget_utilities

2.9.2. Einbettung des Spindelriemen Panels

Dieses Beispielpanel dient zur Anzeige zusätzlicher RS485-VFD-Daten und zur Konfiguration eines 4-Scheiben-, 2-Riemen-Spindelantriebs über eine Reihe von Tasten (engl. buttons).

QtDragon spindle_belts Panel - Spindelriemen VCP
[DISPLAY]
EMBED_TAB_NAME = Spindle Belts
EMBED_TAB_COMMAND = qtvcp spindle_belts
EMBED_TAB_LOCATION = tabWidget_utilities

2.10. Pfade der Unterroutinen

Wenn Sie NGCGUI, Remap- oder benutzerdefinierte M-Code-Routinen verwenden, muss LinuxCNC wissen, wo die Dateien zu finden sind.
Dieses Beispiel ist typisch für das, was für NgcGui, Basic Probe und Versa Probe Remap-Code benötigt wird.
Diese Pfade müssen angepasst werden, um auf die tatsächlichen Dateien auf Ihrem System zu zeigen. RS274NZGC Abschnitt Details

[RS274NGC]
SUBROUTINE_PATH = :~/linuxcnc/nc_files/examples/ngcgui_lib:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs: \
~/linuxcnc/nc_files/examples/probe/basic_probe/macros:~/linuxcnc/nc_files/examples/remap-subroutines: \
~/linuxcnc/nc_files/examples/ngcgui_lib/remap_lib

QtVCPs NGCGUI-Programm von QtVCP muss auch wissen, wo es für die Auswahl und Vorauswahl von Unterprogrammen geöffnet werden muss.
NGCGUI_SUBFILE_PATH muss auf einen tatsächlichen Pfad auf Ihrem System zeigen und auch auf einen Pfad, der in SUBROUTINE_PATHS beschrieben ist.

[DISPLAY]
# NGCGUI Unterprogramm Pfad.
# Thr Pfad muss auch in [RS274NGC] SUBROUTINE_PATH sein
NGCGUI_SUBFILE_PATH = ~/linuxcnc/nc_files/examples/ngcgui_lib
# vorgewählte Programme Tabs
# nur Dateinamen angeben, Dateien müssen sich im NGCGUI_SUBFILE_PATH befinden
NGCGUI_SUBFILE = slot.ngc
NGCGUI_SUBFILE = qpocket.ngc

2.11. Vorschau Kontrolle

Magische Kommentare können verwendet werden, um die G-Code-Vorschau zu steuern.

Bei sehr großen Programmen kann die Vorschau sehr lange zum Laden brauchen. Sie können steuern, was auf dem Grafikbildschirm angezeigt und was ausgeblendet wird, indem Sie die entsprechenden Kommentare aus dieser Liste in Ihren G-Code einfügen:

(PREVIEW,stop)
(PREVIEW,hide)
(PREVIEW,show)

2.12. Programmerweiterungen/Filter

Mit Programmerweiterungen können Sie steuern, welche Programme im Dateimanager-Fenster angezeigt werden.
Erstellen Sie eine Zeile mit den gewünschten .-Endungen, getrennt durch Kommata, dann ein Leerzeichen und die Beschreibung.
Sie können mehrere Zeilen für verschiedene Auswahlen im Kombinationsfeld hinzufügen.

[FILTER]
PROGRAM_EXTENSION = .ngc,.nc,.tap G-Code Datei (*.ngc,*.nc,*.tap)

QtDragon 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 unterstützen den image-to-gcode-Konverter, der mit LinuxCNC und mit Python basierenden Filterprogrammen enthalten ist:

[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python

2.13. Sonden-/Touchplate-/Lasereinstellungen

QtDragon hält INI-Einträge für zwei optionale Sondierungs-Tab-Screens bereit. Kommentieren/unkommentieren Sie, was immer Sie bevorzugen.

  • Versa-Probe ist eine auf QtVCP portierte Version des beliebten GladeVCP-Sondierungspanels.

  • Basic Probe ist eine auf QtVCP portierte Version, die auf dem Basic Probe Screen eines Drittanbieters basiert.

Beide führen ähnliche Antastroutinen durch, wobei der Versa-Taster optional auch die automatische Werkzeugmessung übernimmt.

[PROBE]
#USE_PROBE = versaprobe
USE_PROBE = basicprobe

2.14. Abbruch-Erkennung

Bei der Verwendung der Sondierungsroutinen von qtdragon ist es wichtig, eine Abbruchanfrage des Benutzers zu erkennen.
Standardmäßig meldet LinuxCNC einen Abbruch nicht in einer nützlichen Weise für die Probe-Routinen.
Sie müssen eine ngc-Datei hinzufügen, um einen Fehler auszugeben, der erkannt werden kann. Details zum Abbruch neu zuordnen

[RS274NGC]
# bei abbruch wird diese ngc datei aufgerufen. erforderlich für basic/versa probe Routinen. +
ON_ABORT_COMMAND=O <on_abort> call

Dieser Beispielcode sendet eine Nachricht bei Abbruch. Die Prüfroutinen können dieses Beispiel erkennen.
Gemäß der obigen Einstellung müsste es als "on_abort.ngc" in den [RS274NGC] SUBROUTINE_PATHS und [DISPLAY] PROGRAM_PREFIX Suchpfaden von LinuxCNC gespeichert werden.

o<on_abort> sub

o100 if [#1 eq 5]
    (machine on)
o100 elseif [#1 eq 6]
    (machine off)
o100 elseif [#1 eq 7]
    (estopped)
o100 elseif [#1 eq 8]
    (msg,Process Aborted)
o100 else
    (DEBUG,Abort Parameter is %d[#1])
o100 endif

o<on_abort> endsub
m2

2.15. Codes für die Inbetriebnahme

Sie sollten einen Standard-M/G-Code für den Start festlegen. Diese werden durch die Ausführung einer NGC-Datei außer Kraft gesetzt.
Dies sind nur Beispielcodes, der Integrator sollte geeignete Codes wählen.

[RS274NGC]
# G/M-Codes beim ersten Laden starten
RS274NGC_STARTUP_CODE = G17 G20 G40 G43H0 G54 G64P0.0005 G80 G90 G94 G97 M5 M9

2.16. Makro-Buttons

QtDragon hat bis zu zehn Komfortschaltflächen für den Aufruf von "Makro-Aktionen".
Diese stehen unter der Überschrift "[MDI_COMMAND_LIST]" als "MDI_COMMAND_MACRO0 =" bis "MDI_COMMAND_MACRO9 =".
Diese können auch OWord-Routinen aufrufen, falls gewünscht.
In den Beispielkonfigurationen sind sie so beschriftet, dass sie zwischen dem Ursprung des aktuellen Benutzersystems (Nullpunkt) und dem Ursprung des Maschinensystems wechseln.
Der Benutzerursprung ist der erste MDI-Befehl in der INI-Liste, der Maschinenursprung der zweite.
Dieses Beispiel zeigt, wie man die Z-Achse zuerst nach oben bewegt. Durch ein ; getrennte Befehle werden sequentiell ausgeführt.
Der Button-Labeltext kann mit jedem Text nach einem Komma gesetzt werden, das \n-Symbol fügt eine Zeilenumbruch hinzu.

[MDI_COMMAND_LIST]
# für Makro Buttons
MDI_COMMAND_MACRO0 = G0 Z25;X0 Y0;Z0, Goto\nUser\nZero
MDI_COMMAND_MACRO1 = G53 G0 Z0;G53 G0 X0 Y0,Goto\nMachn\nZero

2.17. Post-GUI HAL-Datei

Diese optionalen HAL-Dateien werden aufgerufen, nachdem QtDragon alles andere geladen hat.
Sie können mehrere Zeilen für mehrere Dateien hinzufügen. Jede Datei wird in der Reihenfolge aufgerufen, in der sie erscheint.
Der Aufruf von HAL-Dateien, nachdem QtDragon bereits geladen ist, stellt sicher, dass die HAL-Pins von QtDragon verfügbar sind.

Beispiel mit typischen Einträgen für die Spezifikation von HAL-Dateien, die nach dem Start des QtDragon gelesen werden sollen. Passen Sie diese Zeilen an die tatsächlichen Anforderungen an.
[HAL]
POSTGUI_HALFILE = qtdragon_hd_postgui.hal
POSTGUI_HALFILE = qtdragon_hd_debugging.hal

2.18. Post-GUI HAL-Befehl

Diese optionalen HAL-Befehle werden ausgeführt, nachdem QtDragon alles andere geladen hat.
Sie können mehrere Zeilen hinzufügen. Jede Zeile wird in der Reihenfolge aufgerufen, in der sie erscheint.
Jeder HAL-Befehl kann verwendet werden.

Beispiel mit typischen Dateien in der INI-Datei zum Laden von Modulen, nachdem die GUI verfügbar ist. Passen Sie diese an Ihre tatsächlichen Anforderungen an.
[HAL]
POSTGUI_HALCMD = loadusr qtvcp test_probe
POSTGUI_HALCMD = loadusr qtvcp test_led
POSTGUI_HALCMD = loadusr halmeter

2.19. Integrierte Beispielkonfigurationen

Die Beispielkonfigurationen sim/qtdragon/ oder sim/qtdragon_hd sind bereits so konfiguriert, dass sie QtDragon als Bildschirm verwenden. Es gibt mehrere Beispiele, um verschiedene Maschinenkonfigurationen zu demonstrieren.

3. Tastenbelegungen

QtDragon ist nicht in erster Linie für die Verwendung einer Tastatur zur Maschinensteuerung gedacht.
Es fehlen viele Tastenkombinationen, die zum Beispiel AXIS hat - aber Sie können eine Maus oder einen Touchscreen verwenden.
Der Einfachheit halber gibt es mehrere Tastenkombinationen zur Steuerung der Maschine.

F1 - Estop ein/aus
F2 - Maschine ein/aus
F12 - Stil-Editor
Home - Start aller Verbindungen der Maschine
Escape - Abbruch der Bewegung
Pause - Maschinenbewegung anhalten

4. Buttons

Schaltflächen, die ankreuzbar sind, ändern ihre Textfarbe, wenn sie angekreuzt werden. Dies wird durch das Stylesheet/Thema gesteuert

5. Virtuelle Tastatur

QtDragon enthält eine virtuelle Tastatur für die Verwendung mit Touchscreens. Um die Tastatur zu aktivieren, markieren Sie das Kontrollkästchen Virtuelle Tastatur verwenden auf der Seite Einstellungen. Wenn Sie auf ein beliebiges Eingabefeld klicken, wie z.B. Sondenparameter oder Tooltabelleneinträge, wird die Tastatur angezeigt. Um die Tastatur auszublenden, führen Sie einen der folgenden Schritte aus:

  • Klicken Sie auf den MAIN page Button

  • Die Schaltfläche für die aktuell ausgewählte Seite.

  • in den AUTO-Modus wechseln

Es ist zu beachten, dass bei der Verwendung der virtuellen Tastatur das Jogging der Tastatur deaktiviert ist.

6. HAL-Pins

Diese Pins sind spezifisch für den QtDragon-Bildschirm.
Es gibt natürlich viele weitere HAL-Pins, die für LinuxCNC angeschlossen werden müssen, um zu funktionieren.

Wenn Sie eine Aufforderung zum manuellen Werkzeugwechsel benötigen, fügen Sie diese Zeilen in Ihre Postgui-Datei ein.
QtDragon emuliert die hal_manualtoolchange HAL Pins - laden Sie nicht die separate HAL Komponente hal_manualtoolchange.

net tool-change      hal_manualtoolchange.change   <=  iocontrol.0.tool-change
net tool-changed     hal_manualtoolchange.changed  <=  iocontrol.0.tool-changed
net tool-prep-number hal_manualtoolchange.number   <=  iocontrol.0.tool-prep-number

Auch wenn Sie keinen automatischen Werkzeugwechsler haben, sollten Sie sicherstellen, dass diese Pins in einer der HAL-Dateien angeschlossen sind:

net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared

Dieser Eingangspin sollte verbunden werden, um den Sondenstatus anzuzeigen.

qtdragon.led-probe

Diese Pins sind Eingänge für die Spindel-VFD-Anzeige.
Die Volt- und Ampere-Pins werden zur Berechnung der Spindelleistung verwendet.

qtdragon.spindle-modbus-connection
qtdragon.spindle-modbus-errors
qtdragon.spindle-amps
qtdragon.spindle-fault
qtdragon.spindle-volts

Dieser Bit-Pin ist ein Ausgang für die Spindelsteuerung, um sie anzuhalten.
Sie verbinden ihn mit spindle.0.inhibit.

qtdragon.spindle-inhibit

Die Anzeige der Spindelgeschwindigkeit und die LED "Spindel auf Geschwindigkeit" (engl. spindle-at-speed) von QtDragon erfordern, dass spindle.0.speed-in mit dem Rückmeldesignal der Spindelgeschwindigkeit verbunden wird.
Als Rückmeldung kann ein Encoder oder VFD Feedback verwendet werden, solange das Feedback in Umdrehungen pro Sekunde (RPS) erfolgt.
Wenn keine Rückmeldung verfügbar ist, können Sie die Anzeige so einrichten, dass sie die angeforderte Geschwindigkeit zeigt, indem Sie die Pins wie folgt verbinden:

net spindle-speed-feedback spindle.0.speed-out-rps => spindle.0.speed-in

Dieser Bit-Ausgangspin kann angeschlossen werden, um einen Laser einzuschalten:

qtdragon.btn-laser-on

Dieser Float-Ausgangspin zeigt die Kameradrehung in Grad an:

qtdragon.cam-rotation

Diese bit/s32/float-Pins beziehen sich auf externe Offsets, wenn sie verwendet werden:

qtdragon.eoffset-clear
qtdragon.eoffset-enable
qtdragon.eoffset-value
qtdragon.eoffset-spindle-count
qtdragon.eoffset-zlevel-count
qtdragon.eoffset-is-active

Diese float-Ausgangspins spiegeln die aktuelle Jograte des Schiebers (in Maschineneinheiten) wider:

qtdragon.slider-jogspeed-linear
qtdragon.slider-jogspeed-angular

Diese float-Ausgangsstifte geben die aktuellen Schieberegler-Übersteuerungsraten wieder:

qtdragon.slider-override-feed
qtdragon.slider-override-maxv
qtdragon.slider-override-rapid
qtdragon.slider-override-spindle

Diese Ausgangspins sind verfügbar, wenn Sie die Option Versa Probe INI einstellen. Sie können für auto-tool-length-probe bei Werkzeugwechsel verwendet werden - mit hinzugefügtem Remap-Code.

qtversaprobe.enable
qtversaprobe.blockheight
qtversaprobe.probeheight
qtversaprobe.probevel
qtversaprobe.searchvel
qtversaprobe.backoffdist

This pin will be true when the loaded tool equals the number set in the Versa Probe tool number in the preference file.
It can be used (for example) to inhibit the spindle when the probe is loaded by connecting it to spindle.0.inhibit.

qtversaprobe.probe-loaded

This output pin is available when setting the Basic Probe INI option.
This pin will be true when the loaded tool equals the number set in the Basic Probe tool number edit box.
It can be used (for example) to inhibit the spindle when the probe is loaded by connecting it to spindle.0.inhibit.

qtbasicprobe.probe-loaded

Dieser Eingabepin steht zur Verfügung, um Pause/Fortsetzen (engl. resume) eines laufenden Programms zu wechseln.

qtdragon.external-pause

7. HAL-Dateien

Die mitgelieferten HAL-Dateien sind nur für die Simulation gedacht. Eine reale Maschine benötigt ihre eigenen HAL-Dateien. Der QtDragon-Bildschirm funktioniert mit 3 oder 4 Achsen mit einem Gelenk pro Achse oder 3 oder 4 Achsen in einer Gantry-Konfiguration (2 Gelenke auf 1 Achse).

8. Manueller Werkzeugwechsel

Wenn Ihre Maschine einen manuellen Werkzeugwechsel erfordert, kann QtDragon ein Meldungsfenster anzeigen, um Sie anzuleiten. QtDragon emuliert die hal_manualtoolchange HAL Pins - laden Sie nicht die separate HAL Komponente hal_manualtoolchange. Dazu müssen Sie z.B. den richtigen HAL-Pin in der postgui HAL-Datei verbinden:

net tool-change      hal_manualtoolchange.change   <=  iocontrol.0.tool-change
net tool-changed     hal_manualtoolchange.changed  <=  iocontrol.0.tool-changed
net tool-prep-number hal_manualtoolchange.number   <=  iocontrol.0.tool-prep-number

9. Spindel

Der Bildschirm ist für den Anschluss an einen VFD gedacht, funktioniert aber auch ohne ihn.
Es gibt eine Reihe von VFD-Treiber in der LinuxCNC Distribution enthalten.
Es ist bis zu dem Endbenutzer, um die entsprechenden Treiber und HAL-Datei-Verbindungen nach seiner eigenen Maschine Setup liefern.

10. Auto Raise Z Axis on Program Pause

QtDragon kann eingerichtet werden, um die Z-Achse automatisch zu erhöhen und zu senken und die Spindel zu stoppen, wenn das Programm angehalten wird (engl. paused).
Sie schalten die Taste SPINDLE LIFT oder NO LIFT im Wechsel um die Option die Spindel in Z zu erhöhen, wenn angehalten wurde.
Wenn Sie dann die Taste "PAUSE" drücken, wird die Spindel den Betrag auf der Registerkarte "Einstellungen" angehoben und die Spindel wird anhalten.
Das Drücken von RESUME wird die Spindel wieder starten und senkt die Spindel.
Wenn Sie den HAL-Pin spindle.0.at-speed mit einem Treiber-Pin verbunden haben, wird die Spindel erst dann abgesenkt, wenn der Pin wahr ist
Normalerweise verbinden Sie diesen Pin mit einem Timer oder einer Logik, welche die Geschwindigkeit der Spindel erkennt.
Wenn dieser Pin nicht mit einem Antriebsstift verbunden ist, wird ein Dialogfeld angezeigt, in dem Sie darauf hingewiesen werden, dass Sie auf ein Erreichen der Geschwindigkeit der Spindel warten müssen.
Die Spindel wird abgesenkt, wenn Sie dieses Dialogfeld schließen.
Der Betrag, um den die Spindel angehoben werden soll, wird auf der Registerkarte "Einstellungen" unter der Überschrift "SPINDELERHÖHUNG" festgelegt.
Dieses Zeilen-Eingabefeld kann nur direkt eingestellt werden, wenn es sich nicht im Auto-Modus befindet.
Mit den Auf-/Ab-Tasten kann der Anhebungsbetrag jederzeit eingestellt werden, auch wenn die Spindel bereits angehoben ist.
Die Tastenschritte sind 1 Zoll oder 5 mm (je nach den Einheiten, auf denen die Maschine basiert).

Dieses optionale Verhalten erfordert Ergänzungen zur INI und der QtDragon_postgui HAL-Datei.

In der INI, unter der Überschrift AXIS_Z.

[AXIS_Z]
OFFSET_AV_RATIO = 0.2

This reserves 20% of max velocity and max acceleration for the external offsets.
This will limit max velocity of the machine by 20%

In der Datei qtdragon_postgui.hal hinzufügen:

# Externe Offsets der Z-Achse einrichten
net eoffset_clear    qtdragon.eoffset-clear          =>  axis.z.eoffset-clear
net eoffset_count    qtdragon.eoffset-spindle-count  =>  axis.z.eoffset-counts
net eoffset          qtdragon.eoffset-value          <=  axis.z.eoffset
net eoffset-state    qtdragon.eoffset-is-active      <=  motion.eoffset-active

# Inhibit spindle when paused
net spindle-pause    qtdragon.spindle-inhibit        =>  spindle.0.inhibit

# uncomment for dragon_hd
#net limited          qtdragon.led-limits-tripped     <= motion.eoffset-limited

setp axis.z.eoffset-enable 1
setp axis.z.eoffset-scale 1.0

11. Z-Level-Kompensation

QtDragon_hd kann mit dem externen Programm G-code Ripper so eingestellt werden, dass es Höhenänderungen der Z-Ebene prüft und ausgleicht.

Anmerkung
Diese Funktion ist nur in der Version QtDragon_hd verfügbar.

Z-Ebene Ausgleich ist ein Bett Nivellierung / Verzerrung Korrekturfunktion typischerweise in 3D-Druck oder Gravur verwendet. Es verwendet eine HAL Nicht-Echtzeit-Komponente, welche die externen Offsets Funktion von LinuxCNC verwendet. Die Komponente hat einen HAL-Pin, der einen Interpolationstyp spezifiziert, der entweder kubisch, linear oder am nächsten (0, 1, 2) sein muss. Wenn keine angegeben ist oder wenn eine ungültige Zahl angegeben ist, wird die Standardeinstellung kubisch sein.

Wenn Z LEVEL COMP aktiviert ist, liest die Kompensationskomponente eine Sondendaten-Datei, die probe_points.txt heißen muss. Die Datei kann jederzeit geändert oder aktualisiert werden, solange die Kompensation deaktiviert ist. Bei der nächsten Aktivierung wird die Datei erneut gelesen und die Kompensationskarte wird neu berechnet. Diese Datei sollte sich im Konfigurationsverzeichnis befinden.

Die Sondierungsdatei wird von einem Sondierungsprogramm erzeugt, das seinerseits von einem externen Python-Programm namens gcode_ripper erzeugt wird, das auf der Registerkarte "Dateimanager" über die Schaltfläche "G-code Ripper" aufgerufen werden kann.

11.1. Verwendung von G-code Ripper für die Z-Ebenen-Kompensation

QtDragon G-Code-Ripper
Abbildung 3. QtDragon_hd zeigt G-code Ripper
Anmerkung
G-code Ripper bietet viele Funktionen, auf die wir hier nicht näher eingehen werden. Diese sind nur in der QtDragon_hd Version verfügbar.
  • Wechseln Sie in qtdragon_hd auf die Registerkarte Datei und drücken Sie die Schaltfläche G-Code Ripper laden.

  • Ursprung so einstellen, dass er mit dem Ursprung der zu prüfenden G-Code-Datei übereinstimmt.

  • Aktivieren Sie unter G-Code-Operationen die Option Auto Probe.

  • Datei -> G-Code Datei öffnen (Die Datei, die Sie nach der Kompensation ausführen)

  • Falls erforderlich, nehmen Sie Anpassungen vor und drücken Sie Neu berechnen.

  • Drücken Sie G-Code-Datei speichern - nur Sonde.

  • Speichern Sie die erzeugte Datei im Ordner nc_files.

  • Beenden Sie gcode_ripper.

  • Führen Sie dieses Programm aus, ohne die Offsets zu ändern. Stellen Sie sicher, dass das Sondenwerkzeug installiert ist. Nach Abschluss des Programms befindet sich im Konfigurationsverzeichnis eine Datei mit dem Namen "probe_points.txt".

  • Drücken Sie in qtdragon_hd die Schaltfläche "Enable Z Comp", um den Ausgleich zu aktivieren. Schauen Sie in der Statuszeile nach, ob die Kompensation erfolgreich war oder nicht. Die aktive Kompensation wird neben der Beschriftung "Z Level Comp" angezeigt. Während des Joggens sollte sich diese Anzeige je nach Kompensationskomponente ändern.

Anmerkung
Wenn Sie die automatische Anhebung Z verwenden, um die Spindel in der Pause anzuheben, müssen Sie die beiden mit einer HAL-Komponente kombinieren und diese an die Bewegungs (motion)-Komponente von LinuxCNC weiterleiten.
Beispiel einer postgui HAL-Datei für kombinierte Spindelanhebung und Z-Niveau-Kompensation
# Komponenten laden
########################################################################

loadrt logic names=logic-and personality=0x102
addf logic-and servo-thread

# load a summing component for adding spindle lift and Z compensation
loadrt scaled_s32_sums
addf scaled-s32-sums.0 servo-thread

loadusr -Wn z_level_compensation z_level_compensation
# method parameter must be one of nearest(2), linear(1), cubic (0)
setp z_level_compensation.fade-height 0.0
setp z_level_compensation.method 1

# Signale mit der Bewegungskomponente von LinuxCNC verbinden
########################################################################

net eoffset-clear    axis.z.eoffset-clear
net eoffset-counts   axis.z.eoffset-counts
setp axis.z.eoffset-scale .001
net eoffset-total          axis.z.eoffset
setp axis.z.eoffset-enable True

# Externe Offsets für die Spindelpausenfunktion
########################################################################
net eoffset-clear              qtdragon.eoffset-clear
net eoffset-spindle-count   <= qtdragon.eoffset-spindle-count
net spindle-pause              qtdragon.spindle-inhibit        =>  spindle.0.inhibit
net eoffset-state              qtdragon.eoffset-is-active      <=  motion.eoffset-active

## Z level Kompensation
####################################################
net eoffset-clr2            z_level_compensation.clear      => logic-and.in-01
net xpos-cmd                z_level_compensation.x-pos      <= axis.x.pos-cmd
net ypos-cmd                z_level_compensation.y-pos      <= axis.y.pos-cmd
net zpos-cmd                z_level_compensation.z-pos      <= axis.z.pos-cmd
net z_compensation_on       z_level_compensation.enable-in  <= qtdragon.comp-on
net eoffset-zlevel-count    z_level_compensation.counts     => qtdragon.eoffset-zlevel-count

# add Z level and scaled spindle raise level values together
net eoffset-spindle-count   scaled-s32-sums.0.in0
net eoffset-zlevel-count    scaled-s32-sums.0.in1
setp scaled-s32-sums.0.scale0 1000
net eoffset-counts          scaled-s32-sums.0.out-s

12. Sondieren

Der Sondenbildschirm wurde einem grundlegenden Test unterzogen, könnte aber noch einige kleinere Fehler aufweisen. Gehen Sie bei der Ausführung von Prüfroutinen äußerst vorsichtig vor, bis Sie mit der Funktionsweise vertraut sind. Die Prüfroutinen laufen, ohne die Haupt-GUI zu blockieren. Dies gibt dem Bediener die Möglichkeit, die DROs zu beobachten und die Routine jederzeit zu stoppen.

Anmerkung
Die Sondierung ist sehr unempfindlich gegenüber Fehlern; überprüfen Sie die Einstellungen vor der Verwendung.

QtDragon verfügt über 2 Methoden zur Einstellung von Z0. Die erste ist eine Tastplatte, bei der eine Metallplatte mit bekannter Dicke auf das Werkstück gelegt wird, dann wird das Werkzeug abgesenkt, bis es die Platte berührt, wodurch das Messtastersignal ausgelöst wird. Der Z0-Wert des aktuellen Anwendersystems (G5x) wird auf die Messtasterhöhe - die eingegebene Blechdicke - eingestellt.

Bei der zweiten Methode wird ein Werkzeugeinstellgerät in einer festen Position und einer bekannten Höhe über dem Tisch verwendet, wo das Messtastersignal ausgelöst wird. Um Z0 auf die Oberseite des Werkstücks einzustellen, muss bekannt sein

  1. wie weit der Auslösepunkt des Messtasters über dem Tisch liegt (Höhe der Werkzeugaufnahme) und

  2. wie weit über dem Tisch sich die Werkstückoberseite befindet.

Dieser Vorgang muss bei jedem Werkzeugwechsel durchgeführt werden, da die Werkzeuglänge nicht gespeichert wird.

Beim Antasten mit einem Tastsystem wird der Parameter Höhe vom Tisch bis zur Oberkante des Werkstücks nicht berücksichtigt und kann ignoriert werden, unabhängig davon, ob Sie den Tastplattenbetrieb mit einer auf 0 eingestellten Dicke oder eine Antastroutine verwenden. Er gilt nur für den Werkzeugeinrichter.

12.1. Versa Taster (engl. probe)

QtDragon Sonde
Abbildung 4. QtDragon - Versa-Probe-Option

Der Versa-Taster wird zum halbautomatischen Antasten von Werkstücken verwendet, um Kanten, Mittelpunkte und Winkel zu finden.
Er kann auch zum automatischen Antasten der Werkzeuglänge beim Werkzeugwechsel mit zusätzlichem Remap-Code verwendet werden.

Sie müssen die "Sondierungs-Parameter" sorgfältig einstellen:

  • DIAMETER:: Dies ist der Durchmesser der Sondenspitze. Die Genauigkeit der Sondenmessungen wird direkt von der Genauigkeit des Durchmessers der Sondenspitze beeinflusst.

  • TRAVEL:: Minimaler zurückgelegte Entfernung der Sonde bei der ersten Suche. Wenn die Suchstrecke zu kurz ist, erhalten Sie eine Meldung wie "G38 beendet ohne Kontakt". Aus Sicherheitsgründen wird empfohlen, diesen Parameter auf 3-4 mm mehr als den Durchmesser des Tastereinsatzes einzustellen.

  • LATCH RTN:: Der Abstand, um den die Sonde nach dem ersten Kontakt mit dem Werkstück zurückgezogen wird. Dieser Abstand sollte kurz sein, da die zweite Annäherung mit einer langsamen Geschwindigkeit erfolgt, aber groß genug, damit der Messtaster den Kontakt unterbricht und in den Zustand der Suchbereitschaft gebracht wird. Wenn der Abstand Latch Rtn zu groß ist, verbringen Sie viel Zeit damit, auf den Abschluss der Suche zu warten. Empfehlung: 1-2 mm

  • SEARCH:: Dies ist die Vorschubgeschwindigkeit des Messtaster während der Suche nach dem Ziel, in Maschineneinheiten pro Minute. Die Suchgeschwindigkeit sollte langsam genug sein, um eine akzeptable Anfangsgenauigkeit zu erreichen, aber schnell genug, um keine Zeit mit dem Warten auf eine Bewegung zu verlieren. Empfehlung: 200-500 mm/min.

  • PROBE (engl. für Taster oder Sensor):: Sobald der erste Kontakt hergestellt und der Taster zurückgezogen ist, wartet er 0,5 Sekunden, bevor er die Suche mit einer niedrigeren Geschwindigkeit, der Tastergeschwindigkeit, erneut durchführt. Diese niedrigere Geschwindigkeit stellt sicher, dass die Maschine die Bewegung bei Kontakt mit dem Werkstück so schnell wie möglich stoppen kann.

  • RAPID:: Achsbewegungen, die nicht mit der Suche verbunden sind, werden mit der durch RAPID definierten Geschwindigkeit in Maschineneinheiten pro Minute ausgeführt.

  • SIDE/EDGE LENGTH:: Dies ist die Entfernung, die der Messtaster im Eiltempo zu der Position fährt, an der er mit der Suche beginnt. Wenn eine Ecke gemessen wird, bewegt sich der Messtaster EDGE LENGTH von der Ecke weg, bewegt sich dann um XY CLEARANCE vom Werkstück weg, senkt sich um Z CLEARANCE und beginnt mit der Anfangssuche. Wenn Sie einen inneren Kreis messen, sollte EDGE LENGTH auf den ungefähren Radius des Kreises eingestellt werden. Hinweis: NICHT der Durchmesser.

  • PROBE HT:: Die Höhe des Werkzeugsensors von der Oberfläche des Maschinentisches. Dieser Wert wird verwendet, um die Z-Null-Höhe für das aktuelle Arbeitskoordinatensystem zu berechnen, wenn der Messtaster mit einem Werkzeugeinstellsensor verwendet wird.

  • BLOCK HT:: Die Höhe der Oberseite des Werkstücks von der Maschinentischoberfläche. Dieser Wert wird verwendet, um die Z-Nullhöhe für das aktuelle Werkstückkoordinatensystem zu berechnen, wenn der Messtaster mit einem Einrichtungssensor verwendet wird.

  • XY CLEARANCE:: Der Abstand, den der Messtaster von einer Kante oder Ecke wegfährt, bevor er eine Suche durchführt. Er sollte groß genug sein, um sicherzustellen, dass der Messtaster weder das Werkstück noch andere Vorrichtungen berührt, bevor er nach unten fährt. Er sollte klein genug sein, um übermäßiges Warten auf die Bewegung während der Suche zu vermeiden.

  • Z CLEARANCE:: Der Abstand, den die Sonde nach unten fährt, bevor sie eine Suche durchführt. Wenn Sie eine Innenbohrung messen, können Sie den Taster manuell auf die Z-Starthöhe verfahren und dann Z CLEARANCE auf 0 setzen.

Dort sind drei Umschalttasten (engl. toggle buttons):

  • Auto-Nullstellung Hiermit wird bestimmt, ob die betreffende Achse nach der Abtastung im aktuellen Anwendersystem auf Null gesetzt wird.

  • Auto Skew Hiermit wird festgelegt, ob das System nach dem Antasten gedreht wird oder nur die berechnete Drehung angezeigt wird.

  • Werkzeugmessung Diese Option (falls integriert) schaltet die automatische Werkzeugmessung ein und aus.

12.1.1. HAL-Pins

Versaprobe bietet 5 Ausgabepins für die Werkzeugmessung und einen um die Spindel zu unterbrechen während die Sonde geladen wird.
Die Pins werden von einem Remap-G-Code-Unterprogramm gelesen, so dass der Code auf verschiedene Werte reagieren kann.
Derzeit kann die Sonden-Werkzeugnummer (engl. probe tool number) nur in der Einstellungs-Datei verändert werden:

[VERSA_PROBE_OPTIONS]
ps_probe_tool = 1
  • qtversaprobe.enable (HAL_BIT) Messung aktiviert oder nicht Werkzeug. Spiegelt den Zustand des Bildschirmtaste (engl. screen button) wider.

  • qtversaprobe.blockheight (HAL_FLOAT) die gemessene Höhe der Oberseite des Werkstücks. Spiegelt die Eingabe am Bildschirm wider.

  • qtversaprobe.probeheight (HAL_FLOAT) die Höhe des Schalters für die Werkzeugsonde. Spiegelt die Eingabe am Bildschirm wider.

  • qtversaprobe.searchvel (HAL_FLOAT) die Geschwindigkeit, mit der nach dem Schalter für den Werkzeugmesstaster gesucht wird

  • qtversaprobe.probevel (HAL_FLOAT) die Länge des Werkzeugs zwischen Geschwindigkeit und Messtaster. Spiegelt die Eingabe am Bildschirm wider.

  • qtversaprobe.backoffdist (HAL_FLOAT) the distance the probe backs off after triggering. Reflects screen entry.

  • qtversaprobe.probe-loaded (HAL_BIT) reflect if the current tool is equal to the preference file probe number.

12.2. Einfache Sonde

QtDragon Sonde
Abbildung 5. QtDragon - Grundlegende Sondenoption

Der Basistaster wird zum halbautomatischen Antasten von Werkstücken verwendet, um Kanten, Mittelpunkte und Winkel zu finden. Das Kombinationsfeld ermöglicht die Auswahl des Grundtyps der gezeigten Messtasten:

  • Außenecken

  • Innenecken

  • Kantenwinkel

  • Erhebungen und Taschen (engl. boss and pockets)

  • Erhöhungen und Vertiefungen

  • Kalibrierung

Sie müssen die "Sondierungs-Parameter" sorgfältig einstellen:

  • Probe Tool: erlaubt das Abtasten nur, wenn sich diese Werkzeugnummer in der Spindel befindet

  • "Sondendurchmesser": die Größe der Sondenspitze

  • "Probe Rapid": die Geschwindigkeit schneller Bewegungen in Maschineneinheiten

  • Probe Search: die Geschwindigkeit der ersten groben Suche in Maschineneinheiten

  • "Sondenvorschub" (engl. probe feed): die Geschwindigkeit der zweiten "Feinsuche" in Maschineneinheiten

  • Step Off: Zurückziehen und Abtasten der Entfernung

  • Max XY Distance: die maximale Entfernung, in der die Sonde in X und Y sucht, bevor sie mit einem Fehler abbricht

  • Max Z Distance: die maximale Entfernung, in der die Sonde in Z sucht, bevor sie mit einem Fehler abbricht

  • XY-Abstand: Abstand zwischen Sonde und Wandkante vor dem schnellen Abwärtsfahren in Z und dem "groben" Antasten

  • Z Clearance: Abstand zwischen Sonde und Oberkante des Materials

  • Extra Depth: Abstand von der Oberkante des Materials bis zur gewünschten Sondentiefe

Es gibt auch Hinweisparameter, abhängig von der gewählten Tastart:

  • Kantenbreite: gewünschter Abstand von der Startposition der Sonde entlang der Wandkante, bevor die Sonde gestartet wird

  • Durchmesser-Hinweis: Wird beim Rundkopf- oder Rundtaschen-Sondieren verwendet (Startbewegung: 1/2 Durchmesser plus XY-Abstand)

  • X-Hinweis: wird von rechteckigen Vorsprüngen/Taschen verwendet (Startbewegung: 1/2 X-Länge plus XY-Abstand)

  • Y-Hinweis: Wird von der rechteckigen Aufsatz-/Taschenmessung verwendet (Startbewegung: 1/2 Y-Länge plus XY-Abstand)

Nach der Einstellung der Parameter und Berücksichtigen der Hinweise:

  • Bewegen Sie die Sonde manuell zu der ungefähren Position, die durch das grüne Ziel auf der Schaltfläche dargestellt wird.

  • Bestätigen Sie, dass die Parameter angemessen sind.

  • Drücken Sie die gewünschte Sondierungstaste.

Die Sondierungsroutine beginnt sofort.

Anmerkung
Durch Drücken der Stopptaste oder der Escape-Taste der Tastatur wird die Sondierung abgebrochen.

12.2.1. HAL-Pins

Dieser kann genutzt werden, die Spindel anzualten, wenn eine Sonde aufgenommen wird.
Sie verbinden ihn mit spindle.0.inhibit.

qtbasicprobe.probe-loaded

12.2.2. Beispiel für eine Ecksonde

Lassen Sie uns die Innenecken-Antastung mit der Schaltfläche oben rechts in Basic Probe (back_right_inside) besprechen. Während alle Sondeneinträge korrekt sein müssen, sind die wichtigsten Einstellungen für jede einzelne Sonde zu ändern:

  • XY CLEARANCE - Abstand von der Kante vor dem groben Antasten,

  • Z CLEARANCE - Abstand von der Sonde zur Oberseite des Materials,

  • EXTRA DEPTH - Abstand zum Absenken der Sonde von der Oberseite des Materials,

  • EDGE WIDTH - distance along edge wall (away from corner) to start probing.

Anmerkung
Dieser Abstand ist immer in "Maschineneinheiten" anzugeben (mm für metrische Maschine, Zoll für imperiale Maschinen).

Voreinstellung:

  • Setzen Sie den Taster manuell auf den Schnittpunkt der Kanten (d.h. Ecke) des Materials, wie durch das grüne Bullauge auf der Taste beschrieben. Stellen Sie ihn Z CLEARANCE über der Oberseite des Materials ein. Diese Einstellungen können nach Augenmaß vorgenommen werden.

  • Setzen Sie EXTRA CLEARANCE auf einen Wert, bei dem die Sonde unter die Oberkante des Materials fahren soll. (Die Sonde bewegt sich also von ihrer Startposition aus nach unten Z-Abstand + Extra-Abstand.)

  • Setzen Sie XY CLEARANCE auf einen Wert, der einen gewissen Abstand zur Wand gewährleistet, damit die Sonde beim Absenken nicht gegen etwas stößt.

  • setzen Sie EDGE WIDTH auf einen Wert, der den von der Ecke gemessenen Abstand entlang der Wand beschreibt, wo Sie Sonden wünschen. dieser Kantenabstand wird entlang der X-Wand und dann der Y-Wand verwendet.

Abfolge nach Betätigung der Sondentaste:

  1. Rapid EDGE WIDTH (engl. für Schneller KANTENBREITE) Abstand von der Ecke sich entfernend, gleichzeitig XY CLEARANCE (engl. für XY-FREIRAUM) sich von der Kante weg bewegend. Dies ist also eine leicht diagonale Bewegung.

  2. Sonde nach unten bewegen um Z CLEARANCE + EXTRA DEPTH,

  3. Wand zweimal sondieren (grob (engl. rough) und fein),

  4. diagonal zur anderen Wand bewegen, wie durch EDGE WIDTH und XY CLEARANCE festgelegt,

  5. Wand zweimal sondieren,

  6. Sonde nach oben bewegen um Z CLEARANCE + EXTRA DEPTH (kehrt zum Ausgangspunkt zurück,

  7. Im Eilgang zurück zur startecke (jetzt berechnet anhand der mit der Sonde bestimmten Wänden),

  8. Wenn die Schaltfläche für die automatische Nullung aktiviert ist, setzen von X und Y des aktuellen Benutzersystems auf Null.

13. Touch-Platte

QtDragon Touch-Platte
Abbildung 6. QtDragon Touch-Fläche (engl. touch plate)

Sie können eine leitfähige Tastplatte oder etwas Gleichwertiges verwenden, um die Z-Position eines Werkzeugs automatisch anzutasten (die Benutzerkoordinate auf Null zu setzen). Vor dem Antasten muss ein Werkzeug geladen sein. Legen Sie auf der Registerkarte "Werkzeug" oder "Einstellungen" die Höhe der Tastplatte, die Such- und Antastgeschwindigkeit und den maximalen Antastabstand fest.

Anmerkung
Wenn Sie eine leitfähige Platte verwenden, sollten die Such- und Tastgeschwindigkeit gleich langsam sein. Wenn Sie einen Werkzeugwechsler mit gefedertem Verfahrweg verwenden, können Sie die Suchgeschwindigkeit schneller einstellen. LinuxCNC fährt die Geschwindigkeit mit der maximalen Beschleunigung herunter, so dass nach dem Auslösen des Messtasters ein Verfahrweg vorhanden sein kann, wenn die Geschwindigkeit zu hoch eingestellt ist.

Legen Sie die Platte auf die Oberfläche, auf der Sie Z nullen möchten. Verbinden Sie das Eingangskabel des Messtasters mit dem Werkzeug (bei Verwendung einer leitfähigen Platte). Bewegen Sie das Werkzeug manuell innerhalb des maximalen Tasterabstandes. Drücken Sie die Taste "Tastplatte". Die Maschine tastet zweimal nach unten und der aktuelle Benutzer-Offset (G5X) wird am unteren Ende der Platte durch Berechnung der Tastplattenhöhe auf Null gesetzt.

14. Automatische Werkzeugvermessung

14.1. Übersicht

QtDragon can be setup to do integrated auto tool measurement using the Versa Probe widget and remap code.

This feature assumes the use of two probes in concert:

  1. A tool switch sensor, fixed somewhere on the machine (sometimes called a tool-setter), and

  2. A spindle probe that is installed temporarily at the beginning of the job (sometimes called an xyz probe or a Renishaw probe).

These techniques are useful for machines that do not have repeatable tool holders and do not have automatic tool changing devices. (For machines with repeatable tool holders, see the section on measuring tool length. For machines with automatic tool changing devices, consult work done under the linuxcnc repository at configs/sim/axis/remap/rack-toolchange)

To use this feature, you will need to do some additional settings and you may want to use the offered HAL pins to get values in your own ngc remap procedure. Those settings are covered later in the section.

First, this document covers how to use this technique. Second, this document covers how to set up for this technique at the beginning of a production run.

14.2. Workflow Overview

A detailed workflow walkthrough follows this overview.

Wichtig
Setup steps include:

Entering the probe velocities on the versa probe settings page.
Enabling "Use Tool Measurement" on the Versa Probe tab.
Enabling "Use Tool Sensor" under Settings.

When fist setting up auto tool measurement, please use caution until you confirm tool change and probe locations - it is easy to break a tool/probe. Abort will be honoured while the probe is in motion.

Tool Measurement in QtDragon is organized into the following steps which will be explained in more detail in the following section:

  1. Zero the probe tool by measuring the tool setter with the spindle probe installed

  2. Berührung des Werkstücks in X und Y.

  3. Messen Sie die Höhe Ihres Blocks von der Basis, an der sich Ihr Werkzeugschalter befindet, bis zur Oberseite des Blocks (einschließlich Spannfutter usw.).

  4. Geben Sie auf der Registerkarte Versa-Sonde den Messwert für die Blockhöhe ein.

  5. Gehen Sie in den Automatikmodus und starten Sie Ihr Programm.

images/sketch_auto_tool_measurement.png
Abbildung 7. Automatische Werkzeugvermessung

Beim ersten gegebenen Werkzeugwechsel wird das Werkzeug vermessen und der Versatz wird automatisch auf die Blockhöhe eingestellt. Der Vorteil dieser Methode ist, dass Sie kein Referenzwerkzeug benötigen.

Anmerkung
Ihr Programm muss am Anfang einen Werkzeugwechsel enthalten. Das Werkzeug wird gemessen, auch wenn es schon vorher verwendet wurde, so dass keine Gefahr besteht, wenn sich die Blockhöhe geändert hat. Es gibt mehrere Videos auf you tube, die diese Technik mit GMOCCAPY demonstrieren. Der GMOCCAPY-Bildschirm war der Wegbereiter dieser Technik.

The sequence of events (using the default files in the default setting):

  1. Eilgang (engl. rapid move) in Z in Position definiert im INI [TOOL_CHANGE] Z

  2. Eilgang in X und Y auf die in INI definierte Nummer [TOOL_CHANGE] X und Y

  3. Perform normal M6 tool change: ie, stop spindle, send message to user to change the tool

  4. Eilgang in X und Y zu Position definiert in der INI [VERSA_TOOLSETTER] X und Y

  5. Eilgang abwärts in Z zur Position in INI [VERSA_TOOLSETTER] Z

  6. Sondieren nach unten in Z bis maximal wie definiert in der INI durch [VERSA_TOOLSETTER] MAXPROBE

  7. Changes the offset of the current work coordinate system to match the difference between the previous tool and the currently measured tool

  8. Rapid move up in Z to position defined in the INI’s [VERSA_TOOLSETTER] Z_MAX_CLEAR

  9. Rapid move to the X Y position when the tool change was called

  10. Rapid move down to the Z position when the tool change was called

Anmerkung
The [TOOL_CHANGE] Z position should be high enough so the tool will not hit the tool probe when moving to the [VERSA_TOOLSETTER] X and Y position.

MAXPROBE distance needs to be high enough for the tool to touch the probe.

14.3. Detailed Workflow Example

14.3.1. One Time Setup

The following setups need only be done once as long as they remain in effect:

  1. Under Probe Tool Screens: Insure reasonable values for "Rapid" and "Search," these are the speeds at which the probing will be performed and are in machine units per minute.

  2. Under Probe Tool Screens: insure that "Tool Measure" is enabled (this is a button that must be highlighted)

  3. Under Settings: insure that "Use Tool Sensor" is enabled (this is a tick-box that must be checked)

  4. In the Tool Table: setup a tool for the spindle probe and insure that its Z offset is set to zero.

Anmerkung
It is possible to use a non-zero tool length for the tool probe, but this requires extra steps and is easy to make mistakes. The following procedure assumes a zero tool probe length.

14.3.2. Procedure before starting a program

The following setup is done before beginning a program that has M6 tool change commands inside it.

  1. Physically load the spindle probe into the spindle.

  2. Logically load the spindle probe into the spindle with the M61 Qx command where x is the number in the tool table for the spindle probe (there is a button inside the tool table tab that can also be used)

  3. Position to the Toolsetter: Use the button under the Probe Screens for "Go To Toolsetter" to position the spindle above the Toolsetter.

  4. Toolsetter Measure: Use the button under the Probe Screens for "Probe Tool Setter Z Height." Note that this will set and display on the Probe Settings screen the "Probe HT" value in ABS coordinates

  5. Jog to your workpiece.

  6. Workpiece Measure: Use the button under the Probe Screens for "Probe Z Height of Material:" this will set and display on the Probe Settings screen the "Block Ht" value in ABS coordinates. (Typically, this will now also be the zero Z for your Work Coordinate System)

  7. Set Work Coordinate System (ie, G54, or other): Use the Probe Tool and whatever probe screen or other method is appropriate to set the X, Y, and Z coordinate system needed for your job.

  8. If your program begins with a TnM6 command before spinning the spindle, you may leave the spindle probe installed. You may also issue a TnM6 command to change out the spindle probe, and if the program issues the same one, it will skip the tool change.

Achtung
Take care not to leave the spindle probe in the spindle if a program may start the spindle.

Once those steps are complete, a program with multiple TnM6 toolchanges can be started and will operate with automatic pauses for manual tool change followed by automated tool measurement.

Anmerkung
After probing the new tool length using the tool-setter, this remap code uses a G43 which applies the offset to the Work Coordinate system which was in effect when the M6 command was issued. Because remapping has adjusted the Work Coordinate system by the offset between the previous and the current tool, the tool tip will end up at the same point in space as the tip of the previous tool was when the tool change was called.

14.4. Work Piece Height Probing in QtDragon_hd

Die [TOOL_CHANGE] Z-Position sollte hoch genug sein, damit das Werkzeug beim Verschieben auf die [VERSA_TOOLSETTER] X und Y Position nicht auf die Werkzeugsonde trifft. Der MAXPROBE Abstand muss hoch genug sein, um die Sonde zu berühren.

14.5. Werkstückhöhe Antasten

QtDragon_hd Höhen-Sondierung
Abbildung 8. QtDragon_hd - Werkstück Höhenabtastung

Dieses Programm tastet 2 benutzerdefinierte Positionen in der Z-Achse an und berechnet die Höhendifferenz.

Anmerkung
Diese Funktion ist nur in der Version QtDragon_hd verfügbar.
Buttons zum Einstellen der Sondenposition aktivieren
  • Wenn diese Option markiert ist, sind die SET-Tasten aktiviert.

  • Dadurch kann der Benutzer die X-, Y- und Z-Parameter automatisch mit der aktuellen Position, wie sie auf den DROs angezeigt wird, ausfüllen.

Automatische Füllung der Werkstückhöhe auf dem Hauptbildschirm
  • Wenn diese Option aktiviert ist, wird die berechnete Höhe automatisch in das Feld Werkstück-Höhe im Hauptbildschirm übertragen.

  • Andernfalls ist der Hauptbildschirm nicht betroffen.

Werkstücktaster bei
  • die X-, Y- und Z-Koordinaten geben an, wo die erste Sondierungsroutine im aktuellen WCS beginnen soll

Probenahme bei
  • die X-, Y- und Z-Koordinaten geben an, wo die zweite Sondierungsroutine beginnen soll, und zwar im aktuellen WCS

Z Sichere Fahrhöhe
  • Die Maschine wird auf die sichere Z-Fahrhöhe angehoben, bevor sie zu den X- und Y-Koordinaten rüttelt.

  • Die Spindel senkt sich dann auf die angegebene Z-Koordinate.

  • Sie sollte so gewählt werden, dass das Werkzeug beim Joggen alle Hindernisse überwindet.

START-Button
  • Die Maschine fährt zur ersten Position und tastet dann nach unten.

  • Die Maschine fährt dann zum zweiten Standort und tastet sich erneut nach unten.

  • Die Differenz der angetasteten Werte wird als berechnete Werkstückhöhe angegeben.

  • Die Parameter für Suchgeschwindigkeit, Sondengeschwindigkeit, maximale Sondenentfernung und Rücklaufentfernung werden von der Hauptseite der GUI-Einstellungen gelesen.

ABORT-Button
  • bewirkt, dass alle derzeit ausgeführten Tipp- und Tastroutinen gestoppt werden.

HELP-Button
  • zeigt dieses Hilfefenster an.

  • Zwei beliebige Punkte können im Maschinenarbeitsraum spezifiziert werden.

  • Wenn der erste Punkt höher ist als der zweite, ist die berechnete Höhe eine positive Zahl.

  • Ist der erste Punkt niedriger als der zweite, ist die berechnete Höhe eine negative Zahl.

  • Die Einheiten sind in diesem Programm irrelevant. Die gemessenen Werte werden nicht gespeichert und nur die Differenz wird gemeldet.

Achtung
Das Einstellen falscher Werte kann zu Abstürzen in Vorrichtungen auf der Arbeitsfläche der Maschine führen. Ein erster Test ohne Werkzeug und in sicherer Höhe wird empfohlen.

14.6. Werkzeugmess-Pins

Versaprobe bietet 5 Ausgabepins für die Werkzeugmessung. Die Pins werden von einem Remap-G-Code-Unterprogramm gelesen, so dass der Code auf verschiedene Werte reagieren kann.

  • qtversaprobe.enable (HAL_BIT) Messung aktiviert oder nicht Werkzeug. Spiegelt den Zustand des Bildschirmtaste (engl. screen button) wider.

  • qtversaprobe.blockheight (HAL_FLOAT) die gemessene Höhe der Oberseite des Werkstücks. Spiegelt die Eingabe am Bildschirm wider.

  • qtversaprobe.probeheight (HAL_FLOAT) die Höhe des Schalters für die Werkzeugsonde. Spiegelt die Eingabe am Bildschirm wider.

  • qtversaprobe.searchvel (HAL_FLOAT) die Geschwindigkeit, mit der nach dem Schalter für den Werkzeugmesstaster gesucht wird

  • qtversaprobe.probevel (HAL_FLOAT) die Länge des Werkzeugs zwischen Geschwindigkeit und Messtaster. Spiegelt die Eingabe am Bildschirm wider.

  • qtversaprobe.backoffdist (HAL_FLOAT) Die Entfernung, um die sich die Sonde nach dem Auslösen zurückzieht. Entsprich der Bildschirmeingabe.

14.7. Änderungen an der INI-Datei für Werkzeugmessungen

Ändern Sie Ihre INI-Datei so, dass sie Folgendes enthält:

14.7.1. Der Abschnitt PROBE (Werkstück-Sensor)

QtDragon ermöglicht es Ihnen, eine von zwei Arten von Messtasterroutinen auszuwählen. Versa Probe arbeitet mit einem M6-Remap, um die automatische Werkzeugerfassung hinzuzufügen.

[PROBE]
#USE_PROBE = versaprobe
USE_PROBE = basicprobe

14.7.2. Der RS274NGC-Abschnitt

Anmerkung
Diese Standardeinträge sollten in den meisten Situationen gut funktionieren. Einige Systeme müssen möglicherweise anstelle von linuxcnc/nc_files/examples/ dann linuxcnc/nc_files/ verwenden. Bitte überprüfen Sie, ob Pfade gültig sind. Benutzerdefinierte Einträge mit Referenzen auf die geänderte Datei sind möglich.
[RS274NGC]

# diese Pfade so anpassen, dass sie auf Ordner mit stdglu.py und qt_auto_tool_probe.ngc zeigen
# oder ähnlich kodierte benutzerdefinierte Remap-Dateien
SUBROUTINE_PATH = ~/linuxcnc/nc_files/remap-subroutines:\
~/linuxcnc/nc_files/remap_lib

# ist die Sub, die aufgerufen wird, wenn ein Fehler beim Werkzeugwechsel auftritt.
ON_ABORT_COMMAND=O <on_abort> Aufruf

# Der Remap-Code für die automatische Werkzeugsonde von Z der Versaprobe von QtVCP
REMAP=M6  modalgroup=6 prolog=change_prolog ngc=qt_auto_probe_tool epilog=change_epilog

14.7.3. Der Abschnitt Werkzeugsensor (engl. tool sensor)

Die Position des Werkzeugsensors und die Startposition der Antastbewegung.
Alle Werte sind absolute (G53) Koordinaten, mit Ausnahme von MAXPROBE, das als absolute Länge der Bewegung angegeben wird.
Alle Werte sind in maschineneigenen Einheiten.
X,Y,Z setzen die Lokalisation der Sonde für den Werkzeug-Einsteller (engl. tool setter probe location).

Auto probe action sequence in the default qt_auto_probe_tool example remap defined above (this behavior can be changed by modifying either the remap statement in the RS274NGC section, or by modifying the qt_auto_probe_tool.ngc code.):

  1. rapid move to the INI’s [CHANGE_POSITION] Z position (this is a relative move, it adds this Z value to the current Z coordinate)

  2. schnelle (engl. rapid) Bewegung zur X & Y Position der [CHANGE_POSITION] aus der INI Datei.

  3. warten auf manuelle Bestätigung des werkzeugwechsels

  4. rapid move to the INI’s [VERSA_TOOLSETTER] X & Y position

  5. rapid move to the INI’s [VERSA_TOOLSETTER] Z_MAX_CLEAR Z position

  6. schnelle Sondierung

  7. langsame Sondierung

  8. rapid move to the INI’s [VERSA_TOOLSETTER] Z_MAX_CLEAR Z position

Z_MAX_CLEAR ist die Z-Position, zu der sich das System begibt bevor der Tool-Setter bewegt wird, wenn Sie die Travel to Toolsetter-Taste betätigen.
Travel to Toolsetter Aktionssequenz:

  1. rapid move to [VERSA_TOOLSETTER] Z_MAX_CLEAR Z position

  2. rapid move to [VERSA_TOOLSETTER] XY position

  3. rapid move to [VERSA_TOOLSETTER] Z position.

Beispiel-Einstellungen:

[VERSA_TOOLSETTER]
X = 10
Y = 10
Z = -20
Z_MAX_CLEAR = -2
MAXPROBE =  -20

14.7.4. Der Abschnitt "Position ändern"

This is not named TOOL_CHANGE_POSITION on purpose - canon uses that name and will interfere otherwise. The position to which to move the machine before giving the change tool command. All values are in absolute coordinates. All values are in machine native units.

[CHANGE_POSITION]
X = 10
Y = 10
Z = -2

14.7.5. Die Python-Sektion

Der Python-Abschnitt legt fest, nach welchen Dateien der Python-Interpreter von LinuxCNC sucht, z.B. die Datei toplevel.py im Ordner python im Konfigurationsverzeichnis: Diese Standardeinträge sollten in den meisten Situationen gut funktionieren. Einige Systeme müssen möglicherweise linuxcnc/nc_files/examples/ verwenden statt linuxcnc/nc_files. Benutzerdefinierte Einträge, die auf die geänderte Datei verweisen, sind möglich.

# The path start point for all remap searches, i.e. Python's sys.path.append()
PATH_APPEND = ~/linuxcnc/nc_files/remap_lib/python-stdglue/python
# path to the tremap's 'toplevel file
TOPLEVEL = ~/linuxcnc/nc_files/remap_lib/python-stdglue/python/toplevel.py

14.8. Benötigte HAL-Verbindungen

Stellen Sie sicher, dass der Messtastereingang in Ihrer HAL-Datei angeschlossen ist: Bei korrektem Anschluss sollten Sie in der Lage sein, die Taster-LED in QtDragon umzuschalten, wenn Sie den Tasterstift drücken.

net probe motion.probe-input <= <Ihr_input_pin>

15. Ausführen von gegebener Zeile

Ein G-Code-Programm kann an jeder beliebigen Zeile gestartet werden, indem Sie im AUTO-Modus auf die gewünschte Zeile in der G-Code-Anzeige klicken. Es liegt in der Verantwortung des Bedieners sicherzustellen, dass sich die Maschine im gewünschten Betriebsmodus befindet. Es wird ein Dialogfeld angezeigt, in dem die Spindelrichtung und -geschwindigkeit voreingestellt werden können. Die Startlinie wird in dem Feld mit der Bezeichnung LINE neben der Taste CYCLE START angezeigt. Die Funktion "Von der Linie starten" kann auf der Einstellungsseite deaktiviert werden.

Anmerkung
LinuxCNC’s "Ausführen ab Zeile…" (engl. run-from-line) ist nicht sehr benutzerfreundlich. Z.B. startet es nicht die Spindel oder bestätigt das richtige Werkzeug. Auch werden Unterprogramme nicht gut gehandhabt. Wenn es verwendet wird, ist es am besten, mit einem Eilgang zu beginnen.

16. Laser-Buttons

Der Button LASER ON/OFF dient dazu, einen Ausgang ein- oder auszuschalten, der mit einem kleinen Laserkreuzprojektor verbunden ist. Wenn das Fadenkreuz über einem gewünschten Referenzpunkt auf dem Werkstück positioniert ist, kann die Taste REF LASER gedrückt werden, die dann die X- und Y-Offsets auf die in den Feldern LASER OFFSET auf der Seite Einstellungen angegebenen Werte setzt.

17. Beschreibung der Registerkarten

Über die Registerkarten kann der Benutzer die am besten geeigneten Informationen/Steuerelemente in den oberen drei Feldern auswählen. Wenn die Bildschirmtastatur eingeblendet ist und der Benutzer sie ausblenden, aber die aktuelle Registerkarte beibehalten möchte, kann er dies tun, indem er die aktuelle Registerkarte anzeigt. In QtDragon gibt es einen Splitter-Handle zwischen der G-Code-Textanzeige und der G-Code-Grafikanzeige. Mit diesem kann man die Größe zwischen den beiden Bereichen aufteilen. Dies kann in jedem Tab und in jedem Modus unterschiedlich eingestellt werden.

17.1. Hauptregisterkarte

Auf dieser Registerkarte wird die grafische Darstellung des aktuellen Programms angezeigt. Mit den seitlichen Schaltflächen wird die Anzeige gesteuert.

  • Benutzeransicht: Auswählen/Wiederherstellen einer benutzerdefinierten Ansicht des aktuellen Programms.

  • P,X,Y,Z: Standardansichten einstellen.

  • D: Anzeige der Abmessungen umschalten.

  • +, -: Zoom-Steuerung.

  • C: Übersichtliche Grafik der Werkzeugbewegungslinien.

In qtdragon_hd sind auf der rechten Seite auch Makrotasten verfügbar. Bis zu zehn Buttons können in der INI definiert werden.

17.2. Registerkarte "Datei"

Sie können diese Registerkarte verwenden, um Programme zu laden oder zu übertragen. Die Bearbeitung von G-Code-Programmen kann über diese Registerkarte ausgewählt werden. Bei qtdragon_hd können Sie hier den G-Code Ripper laden.

17.3. Registerkarte "Offsets"

Auf dieser Registerkarte können Sie die System-Offsets überwachen/ändern. Es gibt praktische Schaltflächen für die Nullstellung der Rotation.G92 und den aktuellen G5x-Benutzer-Offset.

17.4. Registerkarte "Werkzeug"

Auf dieser Registerkarte können Sie die Werkzeugkorrekturen überwachen/verändern. Das Hinzufügen und Löschen von Werkzeugen aus der Werkzeugdatei kann ebenfalls über diese Registerkarte erfolgen. Wenn diese Registerkarte ausgewählt ist, ändern sich die einzelnen Home-Schaltflächen im DRO-Bereich in Schaltflächen zur Einstellung der Werkzeugkorrektur. Sie kehren zu den Home-Schaltflächen zurück, wenn Sie eine andere Registerkarte auswählen. Wenn Sie diese Schaltfläche drücken, wird ein Menü mit Optionen angezeigt:

  • Aktuelle Werkzeug-Position einstellen

  • Aktuelle Werkzeug-Position anpassen

  • Aktuelle Werkzeug-Position auf Null setzen

  • Werkzeugversatz direkt einstellen

  • Auf zuletzt zurücksetzen

17.5. Registerkarte "Status"

Hier wird ein mit einem Zeitstempel versehenes Protokoll wichtiger Maschinen- oder Systemereignisse angezeigt. Maschinenereignisse sind eher für einen Bediener geeignet, während die Systemereignisse bei der Fehlersuche helfen können.

17.6. Registerkarte "Sonde

Auf dieser Registerkarte werden Optionen für Prüfroutinen angezeigt. Abhängig von den INI-Optionen kann dies VersaProbe- oder BasicProbe-Stil sein. Sie sind funktionell ähnlich. QtDragon_hd zeigt auch ein kleineres Grafikanzeigefenster an.

17.7. Camview-Registerkarte

Wenn die erkannte Webcam angeschlossen ist, wird auf dieser Registerkarte das Videobild mit einem Fadenkreuz überlagert angezeigt einem Kreis und einer Gradanzeige überlagert. Dies kann angepasst werden, um ein Teilmerkmal für solche Dinge wie Touchoff anzupassen. Die zugrunde liegende Bibliothek verwendet das openCV-Python-Modul, um eine Verbindung zur Webcam herzustellen.
Um das X- oder Y-Größe-Aspektverhältnis anzupassen, oder die Nummer der Kamea, schauen Sie in der Präferenzdatei nach:

[CUSTOM_FORM_ENTRIES]
Camview xscale = 100
Camview yscale = 100
Camview cam number = 0

Diese Angaben sind in Prozent, normalerweise wird der Bereich in einer Achse 100 - 200 betragen.
Ein Invertiering dieser Skalierung kan genutzt werden, um das Bild in X, Y oder beiden Achsen zu spiegeln.
Die Einstellungsdatei kann nur bearbeitet werden, wenn QtDragon nicht läuft.

17.8. G-Codes Registrierkarte

Diese Registerkarte zeigt eine Liste von LinuxCNC’s G-Code. Wenn Sie auf eine Zeile klicken, wird eine Beschreibung des Codes angezeigt.

17.9. Registerkarte "Einstellungen"

Es ist möglich, eine HTML- oder PDF-Datei (.html / .pdf-Endung) mit Einrichtungshinweisen zu laden, und diese werden auf der Registerkarte "Setup" angezeigt.
Wenn Sie ein G-Code-Programm laden und es eine HTML/PDF-Datei mit demselben Namen gibt, wird es automatisch geladen.
Einige Programme wie Fusion 360 und Aspire erstellen diese Dateien für Sie. Sie können auch Ihre eigenen HTML-Docs mit der enthaltenen SetUp Writer-Taste schreiben.
Es gibt drei Unterkarten (engl. tabs):

  • HTML - alle geladenen HTML-Seiten werden hier angezeigt. Die Navigations-Buttons funktionieren auf dieser Seite.

  • PDF - alle geladenen PDF Setup-Seiten werden hier angezeigt.

  • PROPERTIES - wenn ein Programm geladen wird, werden hier dessen G-Code Eigenschaften angezeigt.

Es gibt Navigations-Buttons für die HTML-Seite:

  • Der Pfeil nach oben führt Sie auf die Standard-HTML-Seite zurück.

  • Der linke Pfeil führt auf die vorherige HTML-Seite.

  • Der rechte Pfeil revidiert die Wirkung eines zuvor gedrückten Pfeils nach links.

Wenn Sie eine benutzerdefinierte Standard-HTML-Seite einbinden möchten, nennen Sie diese default_setup.html und legen Sie es in Ihren Konfigurationsordner.
In dieser Registerkarte können benutzerdefinierte QtVCP-Panels angezeigt werden, indem die Option EMBED_TAB_LOCATION auf tabWidget_setup gesetzt wird.

QtDragon Setup-Registerkarte
Abbildung 9. QtDragon - Beispiel für die Registerkarte Setup

17.10. Registerkarte "Einstellungen"

Die Registerkarte "Einstellungen" dient zum Einstellen der Betriebsoptionen, der Offsets für Messtaster/Tastplatte/Laser/Kamera und zum Laden externer Debugging-Programme.

17.11. Registerkarte "Dienstprogramme"

Auf dieser Registerkarte wird eine weitere Auswahl von G-Code-Hilfsprogrammen angezeigt:

  • Facing: ermöglicht schnelles Planfräsen eines definierbaren Bereichs in Winkeln von 0,45 und 90 Grad.

  • Lochkreis: ermöglicht die schnelle Einstellung eines Programms zum Bohren eines Lochkreises mit definierbarem Durchmesser und Anzahl der Löcher.

  • NGCGUI: ist eine QtVCP-Version des beliebten G-Code Subroutine Builder/Selector, siehe Widgets-NGCGUI.

Benutzerdefinierte QtVCP-Panels können hier angezeigt werden, indem man die Option EMBED_TAB_LOCATION auf tabWidget_utilities setzt

17.12. Benutzer-Registerkarte

Diese Registerkarte wird nur angezeigt, wenn ein eingebettetes Panel für die Position stackedWidget_mainTab bestimmt wurde. Wenn mehr als eine eingebettete Registerkarte festgelegt wurde, werden diese durch Drücken der Benutzer-Registerkarte durchlaufen.

18. Stile

Nahezu alle Aspekte des Erscheinungsbildes der Benutzeroberfläche sind über die Stylesheet-Datei QtDragon.qss konfigurierbar. Die Datei kann manuell oder über das Stylesheet-Dialog-Widget in der GUI bearbeitet werden. Um diesen Dialog aufzurufen, drücken Sie F12 im Hauptfenster. Neue Stile können vorübergehend angewendet und dann in einer neuen qss-Datei gespeichert werden, oder die aktuelle qss-Datei überschreiben.

QtDragon-Stile
Abbildung 10. QtDragon - Zwei Stil-Beispiele

19. Internationalisierung

It is possible to create translation files for QtDragon to display in the language of the current locale.

Um eine Übersetzungsdatei zu erstellen und oder zu bearbeiten, muss LinuxCNC installiert sein und vor Ort ausgeführt werden.

Im Folgenden wird davon ausgegangen, dass das LinuxCNC git-Verzeichnis ~/linuxcnc-dev ist.

Anmerkung
Wenn Sie QtDragon_hd nutzen, ersetzen Sie qtdragon mit qtdragon_hd

All language files are kept in ~/linuxcnc-dev/share/screens/qtdragon/languages.

The qtdragon.py file is a Python version of the GUI file used for translation purposes.

Die .ts-Dateien sind die Quelldateien für die Übersetzungen. Dies sind die Dateien, die für jede Sprache erstellt/bearbeitet werden müssen.

Die .qm-Dateien sind die kompilierten Übersetzungsdateien, die von pyqt verwendet werden.

The language is determined by an underscore plus the first two letters of the locale, for example if an Italian translation was being done then it would be _it. It will be referred to as _xx in this document, so qtdragon_xx.ts in this document would actually be qtdragon_it.ts for an Italian translation.

The default locale for QtDragon is _en which means that any translation files created as qtdragon_en.* will not be used for translations.

If any of the required utilities (pyuic5, pylupdate5, linguist) are not installed then the user will need to install the required development tools:

sudo apt install qttools5-dev-tools pyqt5-dev-tools

Wechseln Sie in das Sprachenverzeichnis:

cd ~/linuxcnc-dev/share/qtvcp/screens/qtdragon/languages

Wenn Textänderungen an der grafischen Benutzeroberfläche vorgenommen wurden, führen Sie den folgenden Befehl aus, um die GUI-Python-Datei zu aktualisieren:

pyuic5 ../qtdragon.ui > qtdragon.py

The user can either create a new translation source file for a non-existing language translation or modify an existing translation source file due to changes being made to some text in a QtDragon source file. If modifying an existing translation that has had no source file changes then this step is not required.

Erstellen oder bearbeiten Sie eine .ts-Datei:

./langfile xx
Anmerkung
this command is a script which runs the following: $ pylupdate5 .py ../.py ../../../../../lib/python/qtvcp/lib/qtdragon/*.py -ts qtdragon_xx.ts

Die Bearbeitung der Übersetzung erfolgt mit der Anwendung Linguist:

linguist
  1. Öffnen Sie die TS-Datei und übersetzen Sie die Zeichenfolgen

Es ist nicht notwendig, für jede Textzeichenfolge eine Übersetzung bereitzustellen. Wenn für eine Zeichenfolge keine Übersetzung angegeben ist, wird die ursprüngliche Zeichenfolge in der Anwendung verwendet. Der Benutzer muss auf die Länge der Zeichenketten achten, die in den Widgets erscheinen, da der Platz begrenzt ist. Wenn möglich, sollte die Übersetzung nicht länger als das Original sein.

Wenn die Bearbeitung abgeschlossen ist, speichern Sie die Datei:
Datei -> Speichern (engl. File -> Save)

Erstellen Sie dann die .qm-Datei:
Datei -> Freigabe (engl. File -> Release)

QtDragon will be translated to the language of the current locale on the next start so long as a .qm file exists in that language.

Users are welcome to submit translation files for inclusion into QtDragon. The preferred method is to submit a pull request from the users GitHub account as described in the contributing to LinuxCNC documentation. The only files required to be committed are qtdragon_xx.ts and qtdragon_xx.qm.

20. Anpassung

Ein allgemeiner Überblick über die Anpassung mitgelieferter Bildschirmmasken.

20.1. Stylesheets

Stylesheets can be leveraged to do a fair amount of customization, but you usually need to know a bit about the widget names. Pressing F12 will display a stylesheet editor dialog to load/test/save modification.
The View Sheet tab will allow you to select and apply what stylesheet QtDragon will use when it’s first loaded.
Press the button Copy to Edit Tab to copy the current stylesheet to the edit tab.
The Edit Sheet tab allows editing, applying and saving of changes od the displayed stylesheet.

QtDragon Stylesheet Editor

Sometimes these lines will be present and you can change them, otherwise you will need to add them.

Um zum Beispiel die DRO-Schriftart zu ändern (suchen diesem Eintrag und ändern des Namens der Schriftart):

DROLabel,
StatusLabel#status_rpm {
    border: 1px solid black;
    border-radius: 4px;
    font: 20pt "Noto Mono";
}

Um das DRO-Display-Schrift- und Anzeigeformat zu ändern:

DROLabel {
    font: 25pt "Lato Heavy";
    qproperty-imperial_template: '%9.5f';
    qproperty-metric_template: '%10.4f';
    qproperty-angular_template: '%11.2f';

    /*Adjust the menu options */
    qproperty-showLast: true;
    qproperty-showDivide : false;
    qproperty-showGotoOrigin: false;
    qproperty-showZeroOrigin: false;
    qproperty-showSetOrigin: true;
    qproperty-dialogName: CALCULATOR;
}

Change the axis select button’s click menu items:

AxisToolButton {
    /* Adjust all the menu options */
    qproperty-showLast: false;
    qproperty-showDivide : true;
    qproperty-showGotoOrigin: true;
    qproperty-showZeroOrigin: true;
    qproperty-showSetOrigin: false;
    qproperty-dialog_code_string: CALCULATOR;
}

So ändern Sie den Text der Schaltfläche "Nebel" in "Luft" (fügen Sie diese Zeilen ein)

#action_mist{
    qproperty-true_state_string: "Air\\nOn";
    qproperty-false_state_string: "Air\\nOff";
}

Um die Offsets-Anzeige Schriftart und Format zu ändern:

ToolOffsetView {
    font: 20pt "Lato Heavy";
    qproperty-imperial_template: '%9.1f';
    qproperty-metric_template: '%10.1f';

}

OriginOffsetView {
    font: 12pt "Lato Heavy";
    qproperty-imperial_template: '%9.1f';
    qproperty-metric_template: '%10.1f';
}

Um den Unschärfeeffekt bei Dialogen zu beenden:

#screen_options {
    qproperty-focusBlur_option: false;
}

Um Status-Highlight/Auswahl Farben zu ändern:

#screen_options {
    qproperty-user1Color: white;     /*  regulärer status     */
    qproperty-user2Color: #ff9000;   /*  warnung liegt vor     */
    qproperty-user3Color: #ff8a96;   /*  kritischer Status    */
    qproperty-user4Color: #ffaa00;   /*  Handgerät Auswahl         */
    qproperty-user5Color: #ff0000;   /*  Zyklus Start Auswahl */
}

Ändern der G-Code Text Display Farben/Schriften:

}
EditorBase{
background:black;
qproperty-styleColorCursor:white;
qproperty-styleColorBackground:grey;
qproperty-styleColor0: black;
qproperty-styleColor1: darkblue;
qproperty-styleColor2: blue;
qproperty-styleColor3: red;
qproperty-styleColor4: lightblue;
qproperty-styleColor5: white;
qproperty-styleColor6: lightGreen;
qproperty-styleColor7: yellow ;
qproperty-styleColorSelectionText: white;
qproperty-styleColorSelectionBackground: blue;
qproperty-styleFont0: "Times,15,-1,5,90,0,0,1,1,0";
qproperty-styleFont1: "Times,15,-1,5,90,1,0,1,0,0";
qproperty-styleFont2: "Times,15,-1,5,90,0,0,1,1,0";
qproperty-styleFont3: "Times,15,-1,5,90,0,0,1,1,0";
qproperty-styleFont4: "Times,15,-1,5,90,0,0,1,1,0";
qproperty-styleFont5: "Times,15,-1,5,90,0,0,1,1,0";
qproperty-styleFont6: "Times,15,-1,5,90,0,0,1,1,0";
qproperty-styleFont7: "Times,15,-1,5,90,0,0,1,1,0";
}

Damit die manuellen Spindeltasten auch die Geschwindigkeit schrittweise erhöhen/verringern:

#action_spindle_fwd{
    qproperty-spindle_up_action: true;
}
#action_spindle_rev{
    qproperty-spindle_down_action: true;
}

20.2. Qt Designer und Python-Code

Alle Aspekte der grafischen Benutzeroberfläche können über Qt Designer und/oder Python-Code vollständig angepasst werden. Diese Fähigkeit ist in der QtVCP-Entwicklungsumgebung enthalten. Die umfangreiche Verwendung von QtVCP-Widgets hält die Menge des erforderlichen Python-Codes auf ein Minimum und ermöglicht relativ einfache Änderungen. Auf der LinuxCNC-Website finden Sie eine ausführliche Dokumentation über die Installation und Verwendung der QtVCP-Bibliotheken. Siehe QtVCP für weitere Informationen über QtVCP im Allgemeinen.
QtDragon kann auch die rc-Datei von QtVCP nutzen, um kleinere Änderungen am Python-Code vorzunehmen, ohne eine eigene Handler-Datei zu verwenden.

[DISPLAY]
USER_COMMAND_FILE = CONFIGORDNER/qtdragonrc.py

Siehe Bildschirmmasken anpassen für weitere Informationen zur Anpassung.

QtDragon angepasst
Abbildung 11. QtDragon - Angepasster QtDragon