Qtscreen
uses QtVCP widgets for LinuxCNC integration.
Widget is the general name for the UI objects such as buttons and labels in PyQt.
Es stehen Ihnen alle Standard-Widgets im Qt Designer Editor zur Verfügung.
Es gibt auch spezielle Widgets für LinuxCNC, um die Integration zu erleichtern. Diese sind in zwei Teile geteilt, überschrieben wie folgt auf der rechten Seite des Editors:
-
Einer ist für nur HAL-Widgets.
-
Das andere ist für CNC-Steuerungs-Widgets.
Es steht Ihnen frei, sie auf Ihrer Tafel beliebig zu mischen.
Anmerkung
|
Diese Beschreibung der Widget-Eigenschaften kann aufgrund der weiteren Entwicklung und des Mangels an Personen, die Dokumentationen schreiben, leicht veraltet sein (eine gute Möglichkeit, dem Projekt etwas zurückzugeben). Die endgültigen Beschreibungen finden Sie im Quellcode. |
1. Nur HAL-Widgets
Diese Widgets haben normalerweise HAL-Pins und reagieren nicht auf die Maschinensteuerung.
1.1. XEmbed
- Widget zum Einbetten von Programmen
Ermöglicht die Einbettung eines Programms in das Widget.
Es funktionieren nur Programme, die das xembed
-Protokoll verwenden, wie z.B.:
-
GladeVCP Virtuelle Control Panels
-
Integrierte virtuelle Tastatur
-
QtVCP Virtuelle Kontrollpanels
-
mplayer-Videoplayer
1.2. Slider
- HAL-Pin-Wert-Anpassungs-Widget
Ermöglicht das Anpassen eines HAL-Pins mit einem verschiebbaren Zeiger.
1.3. LED
- Anzeige-Widget
Eine LED-ähnliche Anzeige, die optional der Logik eines HAL-Pins folgt.
-
halpin_option
-
Wählt aus, ob die LED einem Eingangs-HAL-Pin oder einem Programmzustand folgt.
-
diameter
-
Durchmesser der LED
-
color
-
Farbe der LED im eingeschalteten Zustand.
-
off_color
-
Farbe der LED im ausgeschalteten Zustand.
-
alignment
-
Qt-Hinweis zur Ausrichtung.
-
state
-
Aktueller Zustand der LED
-
flashing
-
Schaltet die Blinkoption ein und aus.
-
flashRate
-
Legt die Blitzrate fest.
Die LED
-Eigenschaften können in einem stylesheet mit folgendem Code definiert werden, welcher der .qss
-Datei hinzugefügt wird, wobei name_of_led
der im Qt Designer-Editor definierte Widget-Name ist:
LED #name_0f_led{ qproperty-color: red; qproperty-diameter: 20; qproperty-flashRate: 150; }
1.4. CheckBox
Widget
Mit diesem Widget kann der Benutzer ein Kästchen ankreuzen, um einen HAL-Pin auf true oder false zu setzen.
Er basiert auf dem QCheckButton von PyQt.
1.5. RadioButton
Widget
Mit diesem Widget kann ein Benutzer HAL-Pins auf true oder false setzen. Nur ein "RadioButton"-Widget einer Gruppe kann gleichzeitig "true" sein.
Er basiert auf dem QRadioButton von PyQt.
1.6. Gauge
- Rundes Messuhr-Widget
Round Gauge kann in einem LinuxCNC GUI verwendet werden, um einen Eingabeparameter auf dem Zifferblatt anzuzeigen.
Es gibt mehrere Eigenschaften, die vom Benutzer eingestellt werden können, um das Erscheinungsbild der Anzeige anzupassen.
Die folgenden Parameter können entweder programmatisch oder über den Eigenschaftseditor von Qt Designer eingestellt werden.
-
halpin_option
-
Wenn Sie diese Option auf
True
setzen, werden 2 HAL-Pins erstellt:-
Einer ist für die Eingabe des
value
(engl. für Wert) bestimmt -
Die andere dient der Einstellung des "Sollwerts" (engl.
setpoint
).
Wenn diese Option nicht gesetzt ist, müssen
value
undsetpoint
programmatisch, d.h. in der Handler-Datei, verbunden werden. -
-
max_reading
-
Dieser Wert bestimmt die höchste angezeigte Zahl auf der Anzeige.
-
max_value
-
Dies ist der maximal zu erwartende Wert des Werteingangssignals.
Mit anderen Worten, es ist der Skalenendwert. -
num_ticks
-
Dies ist die Anzahl der Ticks/Anzeigewerte auf der Anzeigefläche.
Sie sollte auf eine Zahl eingestellt werden, die sicherstellt, dass die Textanzeigen auf der Anzeigefläche lesbar sind.
Der minimal zulässige Wert ist 2. -
zone1_color
-
Zone1 erstreckt sich vom maximalen Messwert bis zum Schwellenwert.
Sie kann auf eine beliebige RGB-Farbe eingestellt werden. -
zone2_color
-
Zone2 erstreckt sich vom Schwellenwert bis zum Mindestwert, der 0 ist.
Sie kann auf eine beliebige RGB-Farbe eingestellt werden. -
bezel_color
-
Dies ist die Farbe des Außenrings des Messgeräts.
-
threshold
-
Der Schwellenwert ist der Übergangspunkt zwischen den Zonen.
Er sollte auf einen Wert zwischen 0 und dem Maximalwert gesetzt werden.
Der höchstzulässige Wert wird auf den "Maximalwert" des Messgeräts gesetzt, der Mindestwert ist 0. -
gauge_label
-
Dies ist der Text unter der Wertanzeige, nahe dem unteren Rand des Messgeräts.
Die Funktion des Messgeräts ist dann leicht erkennbar.
Es gibt 2 Eingänge, die nicht anpassbar sind. Sie können über HAL-Pins, programmatisch oder über Signale von anderen Widgets gesetzt werden:
-
value
-
Dies ist der eigentliche Eingangswert, der mit der Nadel des Messgeräts und in der digitalen Anzeige angezeigt wird.
Er muss auf einen Wert zwischen 0 und dem Maximalwert eingestellt werden. -
setpoint
-
Dies ist ein Wert, der die Position einer kleinen Markierung auf der Messgeräteoberfläche bestimmt. Er muss auf einen Wert zwischen 0 und dem Maximalwert gesetzt werden.
1.7. HalBar - HAL Bar Level Anzeige
Dieses Widget wird verwendet, um einen Pegel (engl. level) oder einen Wert anzuzeigen, in der Regel von einem HAL s32/float Pin.
Sie können auch den HAL-Pin deaktivieren und verwenden Qt-Signale oder Python-Befehle, um den Level zu ändern.
1.7.1. Balken (engl. bar) Eigenschaften:
HalBar ist eine Unterklasse des Bar Widget, so dass es diese Eigenschaften erbt
-
stepColorList: eine Liste von Farbketten, die Anzahl der Farben definiert die Anzahl der Balken.
-
backgroundColor: eine QColor Definition der Hintergrundfarbe.
-
setMaximum: eine ganze Zahl, die den maximalen Indikationsgrad (engl. level of indication) definiert.
-
setMinimum: eine ganze Zahl, die den niedrigsten Indikationsgrad festlegt.
1.7.2. Weitere Eigenschaften:
-
pinType: Zur Auswahl des HAL-Pin Typen:
-
NONE
kein HAL-Pin wird hinzugefügt -
S32
Ein S32 Ganzzahl-Pin wird hinzugefügt -
FLOAT
A Float Pin wird hinzugefügt
-
-
pinName: Um den HAL-Pinnamen zu ändern, sonst wird der Widget-Basisname verwendet.
1.7.3. HalBar Stylesheets
Die oben genannten Eigenschaften für Balken (engl. bar) können in Stylesheets festgelegt werden.
pinType und pinName Eigenschaften können nicht in Stylesheets geändert werden.
Anmerkung
|
In Stylesheets ist stepColorList eine einzelne Zeichenfolge von Farbnamen, die durch Kommas getrennt sind. |
HalBar{ qproperty-backgroundColor: #000; qproperty-stepColorList: 'green,green,#00b600,#00b600,#00d600,#00d600,yellow,yellow,red,red'; }
1.8. HALPad
- HAL Buttons Joypad
Dieses Widget sieht aus und funktioniert wie ein 5-Tasten-D-Pad, mit einem LED-Ring.
Jede Taste hat einen wählbaren Typ (Bit, S32 oder Float) als HAL-Pin.
Der LED-Mittelring hat wählbare Farben für Aus und Ein und wird über einen Bit-HAL-Pin gesteuert.
HALPad
ENUMS
Es werden numerierte Konstanten verwendet:
-
Um Indikatorpositionen zu referenzieren:
-
NONE
-
LEFT
-
RIGHT
-
CENTER
-
TOP
-
BOTTOM
-
LEFTRIGHT
-
TOPBOTTOM
-
-
Für HAL-Pins Typ:
-
NONE
-
BIT
-
S32
-
FLOAT
-
Sie verwenden den Namen des Widgets im Qt Designer plus die Referenzkonstante:
self.w.halpadname.set_highlight(self.w.halpadname.LEFTRIGHT)
HALPad
Eigenschaften-
pin_name
-
Optionaler Name, der für den HAL Pin basename verwendet wird. Bleibt er leer, wird der Name des Qt Designer Widgets verwendet.
-
pin_type
-
Wählen Sie den HAL-Ausgangspin-Typ. Diese Eigenschaft wird nur beim Starten verwendet. Die Auswahl kann im Qt Designer eingestellt werden:
-
NONE
-
BIT
-
S32
-
FLOAT
-
-
left_image_path
-
right_image_path
-
center_image_path
-
top_image_path
-
bottom_image_path
-
Datei- oder Ressourcenpfad zu einem Bild, das an der beschriebenen Stelle der Schaltfläche angezeigt werden soll.
Wenn die Schaltfläche "Zurücksetzen" (engl. reset) in der Qt Designer-Editor-Eigenschaft gedrückt wird, wird das Bild nicht angezeigt (optionaler Text ist möglich). -
left_text
-
right_text
-
center_text
-
top_text
-
bottom_text
-
Eine Textzeichenfolge, die an der beschriebenen Schaltflächenposition angezeigt werden soll.
Wenn das Feld leer gelassen wird, kann ein Bild für die Anzeige bestimmt werden. -
true_color
-
false_color
-
Farbauswahl für den mittleren LED-Ring, der angezeigt werden soll, wenn der
BASENAME.light.center
HAL-PinTrue
oderFalse
ist. -
text_color
-
Auswahl der Farbe für den Text des Buttons.
-
text_font
-
Auswahl der Schriftart für den Text des Buttons.
HALPad
StylesDie oben genannten Eigenschaften können in Stylesheets festgelegt werden.
HALPad{ qproperty-on_color: #000; qproperty-off_color: #444; }
1.9. PushButton
- HAL Pin Toggle Widget
Mit diesem Widget kann der Benutzer einen HAL-Pin per Tastendruck auf "true" oder "false" setzen.
Als Option kann es eine Umschalttaste (engl. toggle button) sein.
Für eine LED Indikator Option, siehe [sub:qtvcp:widgets:indicatedpushbutton][IndicatedPushButton] unten für weitere Informationen.
Es gibt auch andere Optionen.
Es basiert auf PyQts QPushButton.
1.10. focusOverlay
- Focus Overlay Widget
Dieses Widget legt ein farbiges Overlay über den Bildschirm, normalerweise während ein Dialog angezeigt wird.
Wird verwendet, um ein "konzentriertes" Gefühl zu erzeugen und die Aufmerksamkeit auf wichtige Informationen zu lenken.
Es kann auch ein durchsichtiges Bild anzeigen.
Es kann auch Nachrichtentext und Schaltflächen anzeigen.
Dieses Widget kann mit ‚STATUS‘-Meldungen gesteuert werden.
1.11. gridLayout
- Grid Layout Widget
Dieses Widget steuert, ob die Widgets darin aktiviert oder deaktiviert sind.
Deaktivierte Widgets haben normalerweise eine andere Farbe und reagieren nicht auf Aktionen.
Es basiert auf dem QGridLayout
von PyQt.
1.12. hal_label
- HAL Label Widget
Dieses Widget zeigt die an dieses gesendeten Werte an.
Werte können gesendet werden von:
-
HAL-Pins
Der Eingangsstift kann als Bit, S32, Float oder kein Stift ausgewählt werden -
Programmatisch
-
Ein
QtSignal
Es gibt eine "textTemplate"-Eigenschaft, um den Rich-Text einzustellen und/oder den Text zu formatieren.
Eine grundlegende Formatierung könnte sein:
-
%r
für Boolesche Werte -
%d
für ganze zahlen -
%0.4f
für Floats.
Ein Beispiel für einen Rich-Text könnte sein:
self.w.my_hal_label.setProperty(textTemplate,""" <html> <head/> <body> <p><span style="font-size:12pt;font-weight:600;color:#f40c11;">%0.4f</span></p> </body> </html> """ )
Der setDisplay
-Slot kann mit einem Integer-, Float- oder Bool-Signal verbunden werden.
Wenn die Eigenschaft pin_name
nicht gesetzt ist, wird der Name des Widgets verwendet.
Es gibt Funktionsaufrufe zur Anzeige von Werten:
-
[HALLabelName].setDisplay(some_value)
-
Kann zur Einstellung der Anzeige (engl. display) verwendet werden, wenn kein HAL-Pin ausgewählt ist.
-
[HALLabelName].setProperty(textTemplate,"%d")
-
Legt die Vorlage für die Anzeige fest.
Es basiert auf PyQts QLabel.
1.13. LCDNumber
- Widget zum Auslesen der LCD-Stilnummer
Dieses Widget zeigt HAL-Float/S32/Bit-Werte in einer LCD-ähnlichen Form an.
Es kann Zahlen im Dezimal-, Hexadezimal-, Binär- und Oktalformat anzeigen, indem es die Eigenschaft Modus
setzt.
Bei der Verwendung von Floats können Sie eine Formatierung über eine Zeichenfolge festlegen.
Sie müssen die Eigenschaft digitCount
auf eine geeignete Einstellung setzen, um die größte Zahl anzuzeigen.
-
pin_name
-
Optionsstring, der als HAL-Pin-Name verwendet werden soll.
Bei einem leeren String wird der Name des Widgets verwendet. -
bit_pin_type
-
Wählt den Eingangspin als Typ BIT aus.
-
s32_pin_type
-
Wählt den Eingangsstift als Typ S32 aus.
-
float_pin_type
-
Wählen Sie den Eingangspin als Typ
FLOAT
. -
floatTemplate
-
Eine Zeichenfolge, die als Vorlage im Python3-Format verwendet wird, um die LCD-Anzeige anzupassen.
Wird nur verwendet, wenn ein FLOAT-Pin ausgewählt ist, z.B. {:.2f} zeigt einen Gleitkommawert an, der auf 2 Zahlen nach der Dezimalstelle gerundet ist.
Bei einer leeren Einstellung kann die Dezimalstelle nach Bedarf verschoben werden.
Es basiert auf PyQts QLCDNumber.
1.14. DoubleScale
- Eingabe-Widget für die Drehschaltfläche (engl. spin button)
Dieses Widget ist ein Spin-Button-Eingabe-Widget, das zum Setzen eines s32- und float-HAL-Pins verwendet wird.
Es hat einen internen Skalierungsfaktor, der standardmäßig auf 1 gesetzt ist und programmatisch oder über ein QtSignal eingestellt werden kann.
Der setInput
-Slot kann mit einem Integer- oder Float-Signal verbunden werden.
-
[HALLabelName].setInput(some_value)
-
Dies ist ein Funktionsaufruf zur Änderung des internen Skalierungsfaktors.
Die HAL-Pins werden auf den Wert der internen Skala mal dem vom Widget angezeigten Wert gesetzt.
1.15. GeneralHALInput
- Allgemeine Signale/Steckplätze (engl. slot) Eingang Verbindung Widget
Dieses Widget wird verwendet, um ein beliebiges Qt-Widget über Signale/Slots mit HAL zu verbinden.
Sie wird _für Widgets verwendet, die auf HAL-Pin-Änderungen reagieren sollen.
1.16. GeneralHALOutput
- Allgemeines Signal/Slot-Ausgangsverbindungs-Widget
Dieses Widget wird verwendet, um ein beliebiges Qt-Widget über Signale/Slots mit HAL zu verbinden.
Es wird _für Widgets verwendet, die HAL-Pins steuern sollen.
1.17. WidgetSwitcher
- Multi-Widget-Layout-View-Switcher-Widget
Dies wird verwendet, um die Ansicht eines Multi-Widget-Layouts umzuschalten, um nur ein Widget anzuzeigen, d.h. um zwischen einer großen Ansicht eines Widgets und einer kleineren Multi-Widget-Ansicht zu wechseln.
Es unterscheidet sich von einem gestapelten Widget, da es ein Widget von einer beliebigen Stelle des Bildschirms ziehen und es auf seiner Seite mit einem anderen Layout als ursprünglich platzieren kann.
Das original Widget muss sich in einem layout befinden, damit der Switcher es wieder ablegen kann.
In Qt Designer werden Sie:
-
Das
WidgetSwitcher
widget auf dem Bildschirm hinzufügen. -
Auf dem `WidgetSwitcher`rechts-klicken, um eine Seite hinzuzufügen.
-
Es bevölkern mit den Widgets/Layouts, die Sie in einem Standardformular sehen möchten.
-
So viele Seiten hinzufügen, wie es Ansichten zu wechseln gibt.
-
Fügen Sie auf jeder Seite ein Layout-Widget hinzu.
Nach dem Hinzufügen des Layouts müssen Sie erneut mit der rechten Maustaste auf den Widget-Wechsler klicken und die Layout-Option festlegen. -
Klicken Sie auf das Widget
WidgetSwitcher
und scrollen Sie dann zum unteren Rand des Eigenschaftseditors. -
Suchen Sie die dynamische Eigenschaft
widget_list
und doppelklicken Sie rechts daneben. -
Es erscheint ein Dialogfeld, in dem Sie die Namen der Widgets angeben können, die auf die Seiten verschoben werden sollen, die Sie dem
WidgetSwitcher
hinzugefügt haben.
Es gibt Funktionsaufrufe, um bestimmte Widgets anzuzeigen.
Durch den Aufruf einer dieser Funktionen steuern Sie, welches Widget gerade angezeigt wird:
-
[_WidgetSwitcherName_].show_id_widget(_number_)
-
[_WidgetSwitcherName_].show_named_widget(_widget_name_)
-
[_WidgetSwitcherName_].show_default()
-
Dies zeigt das "Seite 0"-Layout und stellt alle anderen Widgets wieder so ein, wie sie ursprünglich in Qt Designer erstellt wurden.
-
[_WidgetSwitcherName_].show_next()
-
Nächstes Widget anzeigen.
Es basiert auf dem QStack-Widget.
2. Widgets für Maschinensteuerungen
Diese Widgets interagieren mit dem Zustand der Maschinensteuerung.
2.1. ActionButton
- Aktionssteuerungs-Widget der Maschinensteuerung
Diese Tasten werden für Steuerungsaktionen an der Maschinensteuerung verwendet.
Sie sind auf IndicatedPushButton
aufgebaut und können daher mit LEDs überlagert werden.
Anmerkung
|
Wenn Sie mit der linken Maustaste auf dieses Widget doppelklicken, können Sie einen Dialog zum Einstellen einer dieser Aktionen aufrufen. Die Dialoge helfen dabei, die richtigen Daten für die ausgewählte Aktion festzulegen. Sie können diese Eigenschaften auch direkt im Eigenschaftseditor ändern. |
Sie können eine der folgenden Optionen auswählen:
-
Estop
-
Machine On
-
Auto
-
mdi
-
manual
-
run
-
run_from_line status
-
Ermittelt die Zeilennummer aus der
STATUS
-Meldunggcode-line-selected
. -
run_from_line slot
-
Ermittelt die Zeilennummer aus dem Qt Designer int/str Slot
setRunFromLine
. -
abort
-
pause
-
load dialog
-
Erfordert das Vorhandensein eines Dialog-Widgets.
-
Camview dialog
-
Erfordert das Vorhandensein des Dialog-Widgets "Camview".
-
origin offset dialog
-
Erfordert das Vorhandensein eines Dialogfensters für den Ursprungsversatz.
-
macro dialog
-
Erfordert das Vorhandensein eines Makro-Dialog-Widgets.
-
Launch Halmeter
-
Launch Status
-
Launch Halshow
-
Home
-
Setzen Sie die Gelenknummer auf -1 für
all-home
(engl. alle referenzieren). -
Unhome
-
Setzen Sie die Gelenknummer auf -1 für
all-unhome
(engl. für alle Referezierungen aufheben). -
Home Selected
-
Setzt das durch „STATUS“ ausgewählte Gelenk/Achse in die Ausgangsstellung.
-
Unhome Selected
-
Hebt die Referenzierung der
STATUS
ausgewählte Verbindung/Achse auf. -
zero axis
-
zero G5X
-
Nullt die aktuellen Offsets des Benutzerkoordinatensystems.
-
zero G92
-
Nullt die optionalen
G92
-Offsets. -
zero Z rotational
-
Setzt den Rotationsoffset auf Null.
-
jog joint positive
-
Legt die Gelenknummer fest.
-
jog joint negative
-
Legt die Gelenknummer fest.
-
jog selected positive
-
Ausgewählt mit einem anderen Widget oder
STATUS
. -
jog selected negative
-
Ausgewählt mit einem anderen Widget oder
STATUS
. -
jog increment
-
Metrische/imperiale/angulare Zahlen einstellen.
-
jog rate
-
Festlegen Sie die float/alt-Gleitkommanummer.
-
feed override
-
Festlegen Sie die float/alt-Gleitkommanummer.
-
rapid override
(engl. für Eilgang-Anpassung) -
Festlegen Sie die float/alt-Gleitkommanummer.
-
spindle override
(engl. für Spindel-Anpassung) -
Festlegen Sie die float/alt-Gleitkommanummer.
-
spindle fwd
(engl. für Spindel vorwärts) -
spindle backward
(engl. für Spindel rückwärts) -
spindle stop
-
spindle up
(engl. für Spindel hoch) -
spindle down
(engl. für Spindel runter) -
view change
(engl. für Änderungen anschauen) -
Setzen von view_type_string.
-
limits override
(engl. für Grenzen neufestsetzen) -
flood
(engl. für das Flut-Kühlmittel) -
mist
(engl. für (Kühl-)Nebel) -
block_delete
(engl. für Block löschen) -
optional stop
-
mdi command
(engl. für MDI Befehl) -
Setze
command_string
, d.h. ruft einen fest kodierten MDI-Befehl auf - INI-MDI-Nummer
-
Setzt
ini_mdi_number
, d.h. ruft einen INI-basierten MDI-Befehl auf -
dro absolute
-
dro relative
-
dro dtg
- Exit-Bildschirm
-
Beendet LinuxCNC
-
Override limits
-
Vorübergehende Überschreitung harter Grenzen
- Dialoge starten
-
Öffnet Dialogfelder, wenn sie in der UI-Datei enthalten sind.
-
set DRO to relative
(engl. für DRO auf relativ setzen) -
set DRO to absolute
-
set DRO to distance-to-go
(engl. für DRO auf Restweg setzen) -
Diese setzen Attribute der ausgewählten Aktion (Verfügbarkeit hängt vom Widget ab):
-
toggle float option
(engl. für Wechsel-Buttons) -
Ermöglicht das Umschalten zwischen zwei Raten.
-
joint number
(engl. für Gelenknummer) -
Wählt das Gelenk/die Achse aus, das/die von der Schaltfläche gesteuert wird.
-
incr imperial number
-
Legt das imperiale Jog-Inkrement fest (negativ setzen, um zu ignorieren).
-
incr mm number
-
Legt die metrische Schrittweite fest (zum Ignorieren negativ setzen).
-
incr angular number
-
Legt die Winkelschrittweite fest (zum Ignorieren negativ einstellen).
-
float number
-
Wird für
jograte
und overrides verwendet. -
float alternate number
-
Für
jograte
und overrides, die zwischen zwei Fließkommazahlen wechseln können. -
view type string
-
Kann sein:
-
p
, -
x
,y
,y2
,z
,z2
, -
zoom-in
,zoom-out
, -
pan-up
,pan-down
,pan-left
,pan-right
, -
rotate-up
,rotate-down
,rotate-cw
,rotate-ccw
-
clear
.
-
-
command string
-
MDI-Befehlszeichenfolge, die aufgerufen wird, wenn die MDI-Befehlsaktion ausgewählt wird.
-
ini_mdi_number
-
(ehemaliger (engl. legacy) Weg einer Umsetzung)
Ein Verweis auf den Abschnitt[MDI_COMMAND_LIST]
der _INI-Datei.
Setzen Sie einen Integer, der eine Zeile unter der INI-Zeile[MDI_COMMAND]
auswählt, beginnend bei 0.
Fügen Sie dann in der INI-Datei unter der Überschrift[MDI_COMMAND_LIST]
entsprechende Zeilen hinzu.
Befehle werden durch;
getrennt.
Die button-Beschriftung (engl. label) wird durch beliebigen Text nach dem Komma gesetzt, das Symbol\n
fügt einen Zeilenumbruch hinzu. -
ini_mdi_key
-
(bevorzugte Weise)
Ein Verweis auf den Abschnitt[MDI_COMMAND_LIST]
in der INI-Datei.
Diese Zeichenkette wird zu MDI_COMMAND_ hinzugefügt, um einen Eintrag zu bilden, nach dem
in der INI-Datei unter der Überschrift[MDI_COMMAND_LIST]
gesucht wird.
Durch;
getrennte Befehle werden nacheinander ausgeführt.
Der Text des Schaltflächenetiketts kann mit beliebigem Text nach einem Komma gesetzt werden, das Symbol\n
fügt einen Zeilenumbruch hinzu.
[MDI_COMMAND_LIST] MDI_COMMAND_MACRO0 = G0 Z25;X0 Y0;Z0, Goto\nUser\nZero MDI_COMMAND_MACRO1 = G53 G0 Z0;G53 G0 X0 Y0, Goto\nMachn\nZero
Aktionbuttons sind eine Unterklasse von [sub:qtvcp:widgets:indicatedpushbutton][IndicatedPushButton
]. Siehe die folgenden Abschnitte für weitere Informationen über:
2.2. ActionToolButton
- Optionales Aktionsmenü-Schaltflächen-Widget
ActionToolButton
buttons are similar in concept to action buttons, but they use QToolButtons to allow for optional actions to be selected by pushing and holding the button till the option menu pops up.
Derzeit gibt es nur eine Option: userView
.
Es basiert auf PyQts QToolButton.
userView
Benutzeransicht Widget aufzeichnen und einstellenDie Werkzeugschaltfläche Benutzeransicht ermöglicht das Aufzeichnen und Zurückkehren zu einer beliebigen Grafikansicht.
Halten Sie die Taste gedrückt, um das Menü aufzurufen, und drücken Sie Ansicht aufzeichnen, um die aktuell angezeigte Grafikansicht aufzuzeichnen.
Klicken Sie normal auf die Schaltfläche, um zur zuletzt aufgezeichneten Position zurückzukehren.
Die aufgezeichnete Position wird beim Herunterfahren gespeichert, wenn eine Einstellungsdateioption eingerichtet ist.
Anmerkung
|
Aufgrund von Programmierungseinschränkungen wird die aufgezeichnete Position möglicherweise nicht exakt gleich angezeigt. Dies gilt insbesondere dann, wenn Sie beim Einstellen der gewünschten Ansicht den Ausschnitt verkleinern und wieder verkleinern. Am besten wählen Sie eine Hauptansicht aus, ändern sie wie gewünscht, nehmen sie auf und klicken dann sofort auf die Schaltfläche, um zur aufgezeichneten Position zu wechseln. Wenn sie nicht Ihren Vorstellungen entspricht, ändern Sie die bestehende Position und nehmen Sie erneut auf. |
2.3. RoundButton
- Rundes ActionButton
Widget
Runde Schaltflächen funktionieren genauso wie ActionButtons mit dem Unterschied, dass die Schaltfläche rund abgeschnitten ist.
Sie sollen sich nur optisch unterscheiden.
Sie haben zwei Pfadeigenschaften für die Anzeige von Bildern auf true und false.
2.4. AxisToolButton
- Achsen-Widget auswählen und einstellen
Damit kann man eine Achse auswählen und einstellen.
Wenn die Schaltfläche abhakbar ist, zeigt sie an, welche Achse ausgewählt ist.
Wenn Sie die Taste gedrückt halten, wird ein Popup-Menü angezeigt, in dem Sie folgende Optionen auswählen können:
-
Nullen der Achse
-
Die Achse durch 2 teilen
-
Die Achse beliebig einstellen
-
Die Achse auf die zuletzt aufgezeichnete Zahl zurücksetzen
Sie müssen einen Eingabedialog ausgewählt haben, welcher der Zeichenkette dialog_code_string entspricht, normalerweise wird dieser aus dem screenOptions-Widget ausgewählt.
Sie können die Eigenschaft halpin_option auswählen, die dann einen HAL-Pin auf true setzt, wenn die Achse ausgewählt wird. Die Eigenschaft joint_number sollte auf die entsprechende Gelenknummer gesetzt werden. Die Eigenschaft axis_letter sollte auf den entsprechenden Achsenbuchstaben eingestellt werden.
Die Eigenschaft dialog_code_string kann auf ENTRY (engl. für Eingabe) oder CALCULATOR (engl. für Rechner)geändert werden, um einen reinen Eingabedialog oder einen Eingabedialog vom Typ touch/typing calculator aufzurufen.
Es basiert auf PyQts QToolButton.
2.5. CamView
- Widget zur Werkstückausrichtung und Nullpunkteinstellung
Dieses Widget zeigt ein Bild von einer Webkamera.
Es legt ein einstellbares Kreis- und Fadenkreuzziel über das Bild.
CamView wurde im Hinblick auf eine präzise visuelle Positionierung entwickelt.
Diese Funktion dient der Ausrichtung des Werkstücks oder der Nullteilmerkmale mithilfe einer Webcam.
Es verwendet die Vision-Bibliothek OpenCV.
2.6. DROLabel
- Widget zur Anzeige der Achsenposition
Damit wird die aktuelle Position einer Achse angezeigt.
-
Qjoint_number
-
Gelenknummer des anzuzeigenden Offsets (10 gibt den Rotationsoffset an).
-
Qreference_type
-
Tatsächlich, relativ oder noch zu fahrende Entfernung (0,1,2).
-
metric_template
-
Format der Anzeige, z.B.
%10.3f
. -
imperial_template
-
Format der Anzeige, z.B.
%9,4f
. -
angular_template
-
Anzeigeformat, z.B.
%Rotational: 10.1f
.
Das DROLabel
-Widget enthält eine Eigenschaft isHomed
, die mit einem Stylesheet verwendet werden kann, um die _Farbe des DRO_Label
basierend auf dem Homing-Status der Gelenknummer in LinuxCNC zu ändern.
Hier ist ein Beispiel für einen Stylesheet-Eintrag, der:
-
Legt die Schriftart aller DRO_Label-Widgets fest,
-
Legt die Textvorlage (zur Einstellung der Auflösung) der DRO fest,
-
Dann wird die Textfarbe auf der Grundlage der Qt-Eigenschaft
isHomed
eingestellt.
DROLabel { font: 25pt "Lato Heavy"; qproperty-imperial_template: '%9.4f'; qproperty-metric_template: '%10.3f'; qproperty-angular_template: '%11.2f'; } DROLabel[isHomed=false] { color: red; } DROLabel[isHomed=true] { color: green; }
So geben Sie ein bestimmtes Widget anhand seines objectName
in Qt Designer an:
DROLabel #dr0_x_axis [isHomed=false] { color: yellow; }
Es basiert auf PyQts QLabel.
2.7. GcodeDisplay
- G-Code-Textanzeige-Widget
Dies zeigt G-Code in Textform an, wobei die aktuell laufende Zeile hervorgehoben wird.
Dies kann auch Folgendes anzeigen:
-
MDI history when LinuxCNC is in
MDI
mode. -
Log entries when LinuxCNC is in
MANUAL
mode. -
Preference file entries if you enter
PREFERENCE
in capitals into theMDILine
widget.
Es hat ein Signal percentDone(int)
(engl. für Prozent erledigt), das mit einem Slot verbunden werden kann (wie z.B. ein progressBar
(engl. für Fortschrittsbalken), um den Prozentsatz der Ausführung anzuzeigen).
-
auto_show_mdi_status
-
Setzen Sie true, damit das Widget im MDI-Modus in den MDI-Verlauf wechselt.
-
auto_show_manual_status
-
Setzen Sie true, damit das Widget im manuellen Modus auf das Maschinenprotokoll umschaltet.
Die GcodeDisplay
-Eigenschaften können in einem Stylesheet mit folgendem Code eingestellt werden, welcher der .qss-Datei hinzugefügt wird (die folgenden Farbauswahlen sind zufällig).
EditorBase{ qproperty-styleColorBackground: lightblue; qproperty-styleColorCursor:white; qproperty-styleColor0: black; qproperty-styleColor1: #000000; /* black */ qproperty-styleColor2: blue; qproperty-styleColor3: red; qproperty-styleColor4: green; qproperty-styleColor5: darkgreen; qproperty-styleColor6: darkred; qproperty-styleColor7: deeppink; qproperty-styleColorMarginText: White; qproperty-styleColorMarginBackground: blue; qproperty-styleFont0: "Times,12,-1,0,90,0,0,0,0,0"; qproperty-styleFont1: "Times,18,-1,0,90,1,0,0,0,0"; qproperty-styleFont2: "Times,12,-1,0,90,0,0,0,0,0"; qproperty-styleFont3: "Times,12,-1,0,90,0,0,0,0,0"; qproperty-styleFont4: "Times,12,-1,0,90,0,0,0,0,0"; qproperty-styleFont5: "Times,12,-1,0,90,0,0,0,0,0"; qproperty-styleFont6: "Times,12,-1,0,90,0,0,0,0,0"; qproperty-styleFont7: "Times,12,-1,0,90,0,0,0,0,0"; qproperty-styleFontMargin: "Times,14,-1,0,90,0,0,0,0,0"; }
Für den Standard-G-Code-Lexer des Widgets GcodeDisplay
:
-
styleColor0 = Default: Everything not part of the groups below
-
styleColor1 = LineNo and Comments: Nxxx and comments (characters inside of and including () or anything after ; (when used outside of parenthesis) with the exception of the note below)
-
styleColor2 = G-code: G and the digits after
-
styleColor3 = M-code: M and the digits after
-
styleColor4 = Axis: XYZABCUVW
-
styleColor5 = Other: EFHIJKDQLRPST (feed, rpm, radius, etc.)
-
styleColor6 = AxisValue: Values following XYZABCUVW
-
styleColor7 = OtherValue: Values following EFHIJKDQLRPST$
Anmerkung
|
Für Kommentare kann die Farbe "OtherValue" (Farbe 5) verwendet werden, um "print", "debug", "msg", "logopen", "logappend", "logclose" "log", "pyrun", "pyreload" "abort", "probeopen" "probeclose" innerhalb eines Klammerkommentars in einer G-Code-Zeile. Sowie "py," wenn eine Zeile mit ";py," beginnt. Beispiele: (print, text), (log, text), (msg, text), oder (debug, text). Nur das letzte der Beispiele wird hervorgehoben, wenn es mehrere in derselben Zeile gibt. |
Schriftdefinitionen:
"style name, size, -1, 0, bold setting (0-99), italics (0-1),
underline (0-1),0,0,0"
Es basiert auf PyQts QsciScintilla.
2.8. GcodeEditor
- G-Code-Programmeditor-Widget
Dies ist eine Erweiterung des Widgets "GcodeDisplay", welche die Bearbeitung erleichtert.
Es basiert auf PyQt’s QWidget welches das GcodeDisplay
Widget beinhaltet.
2.9. GCodeGraphics
- G-Code-Grafik-Backplot-Widget
Damit wird die aktuelle Position einer Achse angezeigt.
-
dro-font/dro-large-font
(string) -
Setzt die kleinen und großen DRO Schrifteigenschaften
Hier referenzieren wir mit dem Widget-Basisnamen; GCodeGraphics
GCodeGraphics{ qproperty-dro_font:"monospace bold 12"; } GCodeGraphics{ qproperty-dro_large_font:"Times 25"; }
-
_view
(string) -
Legt die Standardausrichtung der Ansicht beim Laden der GUI fest.
Gültige Auswahlmöglichkeiten für eine Drehmaschine sind p, y, y2. Für andere Bildschirme gelten die Optionen p, x, y, z, z2.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt (referenziert über den durch den widget-Anwender ausgewählten Namen):#gcodegraphics{ qproperty-_view: z; }
-
_dro
(bool) -
Legt fest, ob die DRO angezeigt werden soll oder nicht.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#gcodegraphics{ qproperty-_dro: False; }
-
_dtg
(bool) -
Legen Sie fest, ob die Reststrecke angezeigt werden soll.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#gcodegraphics{ qproperty-_dtg: False; }
-
_metric
(bool) -
Legt fest, ob die_ Einheiten standardmäßig_ in metrischen Einheiten angezeigt werden sollen oder nicht.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#gcodegraphics{ qproperty-_metric: False; }
-
_overlay
(bool) -
Legt fest, ob das Overlay standardmäßig angezeigt werden soll oder nicht.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#gcodegraphics{ qproperty-_overlay: False; }
-
_offsets
(bool) -
Legt fest, ob die Offsets standardmäßig angezeigt werden sollen oder nicht.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#gcodegraphics{ qproperty-_offsets: False; }
-
_small_origin
(bool) -
Legt fest, ob standardmäßig der kleine Ursprung angezeigt wird.
Das folgende Beispiel zeigt, wie diese Eigenschaft festgelegt wird:#gcodegraphics{ qproperty-_small_origin: False; }
-
overlay_color
(Primär-, Sekundär- oder RGBA-formatierte Farbe) -
Legt die Standard-Overlayfarbe fest.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#gcodegraphics{ qproperty-overlay_color: blue; }
-
overlay_alpha
(float) -
Legt die Standard-Overlay Durchsichtigkeit (engl. alpha value) fest. Dies beeinflusst die Opazität des Overlays, wenn zwischen 0,0 und 1,0 eingestellt.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#gcodegraphics{ qproperty-overlay_alpha: 0.15; }
- `background_color ` Hintergrundfarbe, (Primär-, Sekundär- oder RGBA-formatierte Farbe)
-
Legt die Standard-Hintergrundfarbe fest.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#gcodegraphics{ qproperty-background_color: blue; }
-
+_use_gradient_background+
(bool) -
Legt fest, ob Standardmäßig ein Hintergrund mit Farbverlauf verwendet wird.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#gcodegraphics{ qproperty-_use_gradient_background: False; }
-
jog_color
(Primär-, Sekundär- oder RGBA-formatierte Farbe) -
Legt die Standard-Jog-Farbe fest.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#gcodegraphics{ qproperty-jog_color: red; }
-
Feed_color
(Primär-, Sekundär- oder RGBA-formatierte Farbe) -
Legt die Standard-Farbe für den Vorschub fest.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#gcodegraphics{ qproperty-Feed_color: green; }
-
Rapid_color
(Primär-, Sekundär- oder RGBA-formatierte Farbe) -
Legt die Standard-Farbe für den Eilgang fest.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#gcodegraphics{ qproperty-Rapid_color: rgba(0, 0, 255, .5); }
-
InhibitControls
(bool) -
Legt fest, ob externe Steuerelemente standardmäßig gesperrt werden sollen oder nicht.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#gcodegraphics{ qproperty-InhibitControls:True; }
-
MouseButtonMode
(int) -
Ändert das Verhalten der Maustaste zum Drehen, Verschieben oder Zoomen innerhalb der Vorschau.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#gcodegraphics{ qproperty-MouseButtonMode: 1; }
Es gibt 12 gültige Modi:
Mode
Move
Zoom
Rotate (engl. drehen)
0
Links
Mitte
Rechts
1
Mitte
Rechts
Links
2
Mitte
Links
Rechts
3
Links
Rechts
Mitte
4
Rechts
Links
Mitte
5
Rechts
Mitte
Links
Die Modi 6-11 sind für Maschinen gedacht, die nur eine 2D-Vorschau benötigen, wie z. B. Plasmageräte oder einige Drehmaschinen, denen keine Drehtaste zugewiesen ist.
Mode
Move
Zoom
6
Links
Mitte
7
Mitte
Links
8
Rechts
Links
9
Links
Rechts
10
Mitte
Rechts
11
Rechts
Mitte
-
MouseWheelInvertZoom
(bool) -
Legt fest, ob beim Zoomen mit dem Mausrad die Zoomrichtung invertiert werden soll oder nicht.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#gcodegraphics{ qproperty-MouseWheelInvertZoom:True; }
ACTION
FunktionenDie Bibliothek ACTION
kann das G-Code-Grafik-Widget steuern.
-
ACTION.RELOAD_DISPLAY()
-
Lädt das aktuelle Programm neu, das den Ursprung/die Offsets neu berechnet.
-
ACTION.SET_GRAPHICS_VIEW(_view_)
-
Folgende
view
-Befehle können gesendet werden:-
clear
-
zoom-in
-
zoom-out
-
pan-up
-
pan-down
-
pan-right
-
pan-left
-
rotate-cw
-
rotate-ccw
-
rotate-up
-
rotate-down
-
overlay-dro-on
-
overlay-dro-off
-
overlay-offsets-on
-
overlay-offsets-off
-
alpha-mode-on
-
alpha-mode-off
-
inhibit-selection-on
-
inhibit-selection-off
-
dimensions-on
-
dimensions-off
-
grid-size
-
record-view
-
set-recorded-view
-
P
-
X
-
Y
-
Y2
-
Z
-
Z2
-
set-large-dro
-
set-small-dro
-
-
ACTION.ADJUST_PAN(_X,Y_)
-
Legen Sie direkt den relativen Blickwinkel in x- und y-Richtung fest.
-
ACTION.ADJUST_ROTATE(_X,Y_)
-
Legen Sie direkt die relative Drehung der Ansicht in x- und y-Richtung fest.
Es basiert auf dem OpenGL Widget von PyQt.
2.10. StateLabel - Controller-Modi Statusbeschriftungsanzeige-Widget
Dadurch wird eine Beschriftung basierend auf den Zuständen der Maschinensteuerung true/false angezeigt.
Sie können zwischen verschiedenen Texten wählen, die auf wahr oder falsch basieren.
Die Zustände sind über diese Eigenschaften wählbar:
-
css_mode_status
-
True, wenn sich die Maschine in G96 befindet Constant Surface Speed Mode.
-
diameter_mode_status
-
True, wenn sich die Maschine in G7 befindet Drehmaschine Durchmesser Modus.
-
fpr_mode_status
-
True
, wenn die Maschine imG95
Vorschub je Umdrehung Modus (engl. Feed per Revolution Mode) ist. -
metric_mode_status
-
True
, wenn sich die Maschine imG21
Metrischen Modus befindet.
-
true_textTemplate
-
Dies ist der Text, der gesetzt wird, wenn die Option
True
ist.
Sie können Qt rich text code für verschiedene Schriftarten/Farben usw. verwenden.
Eine typische Vorlage für den metrischen Modus im wahren Zustand könnte sein: Metrischer Modus -
false_textTemplate
-
Dies ist der Text, der gesetzt wird, wenn die Option
False
ist.
Sie können Qt rich text code für verschiedene Schriftarten/Farben usw. verwenden.
Eine typische Vorlage für den metrischen Modus im falschen Zustand könnte sein: Imperialer Modus.
Es basiert auf PyQts QLabel.
2.11. StatusLabel
- Anzeige-Widget für Controller-Variablen-Zustandsbeschriftung
Dadurch wird ein Etikett angezeigt, das auf dem auswählbaren Status der Maschinensteuerung basiert.
Sie können ändern, wie der Status angezeigt wird, indem Sie den Python-Formatierungscode in der Textvorlage ersetzen. Sie können auch Rich Text für verschiedene Schriftarten/Farben usw. verwenden.
Diese Zustände sind wählbar:
-
actual_spindle_speed_status
-
Dient zur Anzeige der tatsächlichen Spindeldrehzahl, wie sie vom HAL-Pin "spindle.0.speed-i" gemeldet wird.
Sie wird in RPM umgewandelt.
Normalerweise wird ein "textTemplate" von "%d" verwendet. -
actual_surface_speed_status
-
Dient zur Anzeige der tatsächlichen Schnittflächengeschwindigkeit auf einer Drehmaschine basierend auf der X-Achse und der Spindeldrehzahl.
Sie wird in Entfernung pro Minute umgerechnet.
Normalerweise wird ein "textTemplate" von "%4.1f" (Fuß pro Minute) und "altTextTemplate" von "%d" (Meter pro Minute) verwendet. -
blendcode_status
-
Zeigt die aktuelle
G64
-Einstellung. -
current_feedrate_status
-
Zeigt die Vorschubgeschwindigkeit.
-
current_FPU_status
-
Zeigt den aktuellen tatsächlichen Vorschub pro Einheit an.
-
fcode_status
-
Zeigt die aktuelle programmierte
F
-Code-Einstellung an. -
feed_override_status
-
Zeigt die aktuelle Einstellung des Vorschub-Overrides in Prozent an.
-
filename_status
-
Zeigt den Namen der zuletzt geladenen Datei an.
-
filepath_status
-
Zeigt den Namen des zuletzt geladenen vollständigen Dateipfad an.
-
gcode_status
-
Zeigt alle aktiven G-Codes.
-
gcode_selected_status
-
Zeigt die aktuell ausgewählte G-Code-Zeile an.
-
halpin_status
-
Zeigt den HAL-Pin-Ausgang eines ausgewählten HAL-Pin.
-
jograte_status
-
Zeigt die aktuelle QtVCP-basierte Jog-Rate an.
-
jograte_angular_status
-
Zeigt die aktuelle QtVCP-basierte Winkeljograte an.
-
jogincr_status
-
Zeigt den aktuellen QtVCP-basierten Jog-Inkrement an.
-
jogincr_angular_status
-
Zeigt den aktuelle QtVCP-basierte Winkel Jog-Inkrement an.
-
machine_state_status
-
Zeigt den aktuellen Maschineninterpreter-Zustand unter Verwendung des aus der Maschinen-Zustandsliste (state_list) beschriebenen Textes an.
Die Interpreter-Zustände sind:-
Estopped
-
Running
-
Stopped
-
Paused
-
Waiting
-
Reading
-
-
max_velocity_override_status
-
Zeigt die aktuelle Einstellung für die maximale Achsengeschwindigkeit an.
-
mcode_status
-
Zeigt alle aktiven M-Codes.
- motion_type_status
-
Zeigt die aktuelle Art der Maschinenbewegung unter Verwendung des in der motion_type_list beschriebenen Textes an.
-
None
-
Rapid (engl. für Schnellauf)
-
Feed (engl. für Vorschub)
-
Arc (engl. für Bogen)
-
Tool Change (engl. für Werkzeugwechsel)
-
Probe (engl. für Sonde)
-
Rotary Index (engl. für Rotationsindex)
-
-
requested_spindle_speed_status
-
Zeigt die gewünschte Spindeldrehzahl an - die tatsächliche kann abweichen.
-
rapid_override_status
-
Zeigt die aktuelle Einstellung des Vorschub-Overrides in Prozent an.
-
spindle_override_status
-
Zeigt die aktuelle Spindel-Override-Einstellung in Prozent an.
-
timestamp_status
-
Zeigt die Zeit auf der Grundlage der Systemeinstellungen an.
Ein Beispiel für eine nützlichetextTemplate
-Einstellung:%I:%M:%S %p
.
Siehe das Python-Zeitmodul für weitere Informationen. -
tool comment_status
-
Gibt den Kommentartext des aktuell geladenen Werkzeugs zurück.
-
tool diameter_status
-
Gibt den Durchmesser des aktuell geladenen Werkzeugs zurück.
-
tool_number_status
-
Gibt die Werkzeugnummer des aktuell geladenen Werkzeugs zurück.
-
tool_offset_status
-
Gibt den Offset des aktuell geladenen Werkzeugs zurück, indiziert durch
index_number
zur Auswahl der Achse (0=x,1=y, u.s.w.). -
user_system_status
-
Zeigt das aktive Benutzerkoordinatensystem (Einstellung
G5x
).
-
index_number
-
Integerwert, der den anzuzeigenden Werkzeugstatus-Index angibt.
-
state_label_list
-
Liste der für die verschiedenen Maschinenzustände verwendeten Bezeichnungen.
- motion_label_list
-
Liste der für die verschiedenen Bewegungsarten verwendeten Bezeichnungen.
-
halpin_names
-
Name eines zu überwachenden Halpins (einschließlich des Basisnamens der HAL-Komponente).
-
textTemplate
-
Dies wird normalerweise für imperiale (
G20
) oder eckige numerische Einstellungen verwendet, obwohl nicht jede Option eine imperiale/metrische Umrechnung hat.
Dies verwendet Python-Formatierungsregeln, um die Textausgabe festzulegen.
Man kann%s
für keine Konvertierung,%d
für Integer-Konvertierung,%f
für Float-Konvertierung, etc. verwenden.
Sie können auch Qt Rich Text Code verwenden.
Eine typische Vorlage für die Formatierung von imperialen Fließkommazahlen in Text wäre%9.4f
oder%9.4f inch
. -
alt_textTemplate
-
Dies wird normalerweise für metrische (
G21
) numerische Einstellungen verwendet.
Dies verwendet Python Formatierungsregeln, um die Textausgabe festzulegen.
Eine typische Vorlage für die Formatierung von metrischen Fließkommazahlen in Text wäre "%10.3f" oder "%10.3f mm".
Es basiert auf PyQts QLabel.
2.12. StatusImageSwitcher
- Controller-Statusbildumschalter
Der Status-Image-Switcher wechselt zwischen Images, die auf LinuxCNC-Zuständen basieren.
-
*
watch_spindle
-
Wechselt zwischen 3 Bildern:
stop
,fwd
,revs
. -
*
watch_axis_homed
-
Watch Axis Homed würde zwischen 2 Bildern umschalten:
axis not homed
(engl. für Achse nicht referenziert),axis homed
(Achse referenziert). -
*
watch_all_homed
-
Würde zwischen 2 Bildern wechseln:
not all homed
(nicht alle referenzert),all homed
(alle referenziert). -
*
watch_hard_limits
-
Würde zwischen 2 Bildern oder einem pro Gelenk umschalten.
Hier ist ein Beispiel für die Verwendung zur Anzeige eines Symbols für die Referenzfahrt der Z-Achse:
Im Abschnitt zu Eigenschaften ist zu beachten:
-
watch_axis_homed
ist angekreuzt -
axis_letter
ist auf Z gesetzt
Wenn Sie auf die image_list
doppelklicken, wird ein Dialog angezeigt, über das Sie Bildpfade hinzufügen können.
Wenn Sie ein Bild als Symbol und ein klares Bild haben, sieht es so aus, als ob das Symbol angezeigt und versteckt wird.
Die Auswahl von Bildpfaden kann durch Auswahl der Eigenschaft pixmap
und der Auswahl eines Bildes erfolgen.
Anmerkung
|
Die Einstellung pixmap dient nur zur Testanzeige und wird außerhalb von Qt Designer ignoriert. |
-
Klicken Sie mit der rechten Maustaste auf den Bildnamen und Sie sollten Pfad kopieren sehen.
-
Klicken Sie auf Pfad kopieren (engl. copy path).
-
Doppelklicken Sie nun auf die Eigenschaft image list (engl. für Bildliste), damit der Dialog angezeigt wird.
-
Klicken Sie auf die Schaltfläche Neu.
-
Fügen Sie den Bildpfad in das Eingabefeld ein.
Wiederholen Sie dies für das nächste Bild.
Verwenden Sie ein klares Bild, um ein verborgenes Symbol darzustellen.
Sie können die Anzeige der Bilder in der Bilderliste testen, indem Sie die image number
(engl. für Bildnummer) ändern. In diesem Fall ist 0
unhomed und 1
würde homed sein.
Dies ist nur für die Testanzeige und wird außerhalb von Qt Designer ignoriert.
2.13. StatusStacked
- Umschaltbares Widget zur Anzeige des Modusstatus
Dieses Widget zeigt eines von drei Panels an, je nach Modus von LinuxCNC.
Damit können Sie automatisch verschiedene Widgets in den Modi Manuell, MDI und Auto anzeigen lassen.
Es basiert auf dem Widget QStacked von PyQt.
2.14. JogIncrements
- Auswahl-Widget für Jog-Inkremente
Mit diesem Widget kann der Benutzer Werte für die Schrittweite beim Joggen auswählen.
Die Joggingwerte stammen aus der INI-Datei unter:
-
[DISPLAY]INCREMENTS
, or -
[DISPLAY]ANGULAR_INCREMENTS
Dies wird für alle Widgets über STATUS
verfügbar sein.
Sie können lineare oder Winkelinkremente durch die Eigenschaft linear_option
im Eigenschafteneditor von Qt Designer auswählen.
Es basiert auf PyQts ComboBox.
2.15. ScreenOption
- Widget zum Einstellen allgemeiner Optionen
Dieses Widget fügt dem Bildschirm nichts Visuelles hinzu, sondern stellt wichtige Optionen ein.
Dies ist die bevorzugte Art, diese Optionen zu verwenden.
Diese Eigenschaften können im Qt-Designer, im Python-Handler-Code oder (falls angemessen) in Stylesheets festgelegt werden.
Diese beinhalten:
-
halCompBaseName
-
Wenn leer, verwendet QtVCP den Namen des Bildschirms als Basisnamen der HAL-Komponente.
Wenn gesetzt, verwendet QtVCP diesen String als Basisnamen der HAL-Komponente.
Wenn die-c
Kommandozeilenoption beim Laden von QtVCP verwendet wird, dann wird der in der Kommandozeile angegebene Name verwendet - er hat Vorrang vor allen oben genannten Optionen.
Wenn Sie den Basisnamen in derhandlerfile
programmatisch festlegen, werden alle obigen Optionen außer Kraft gesetzt.
Diese Eigenschaft kann nicht in Stylesheets gesetzt werden. -
notify_option
-
Einbindung in die Desktop-Benachrichtigungsblasen für Fehler und Meldungen.
-
notify_max_messages
-
Anzahl der Meldungen, die gleichzeitig auf dem Bildschirm angezeigt werden.
-
catch_close_option
-
Abfangen des Schließen-Ereignisses, um eine „Sind Sie sicher“-Eingabeaufforderung anzuzeigen.
-
close_overlay_color
-
Farbe der transparenten Ebene, die beim Verlassen angezeigt wird.
-
catch_error_option
-
Überwachung des LinuxCNC-Fehlerkanals.
Dies sendet auch die Nachricht überSTATUS
an alles, das sich registriert. -
play_sounds_option
-
Abspielen von Sounds mit
beep
,espeak
und dem Systemsound. -
use_pref_file_option
-
Einrichten eines Präferenzdateipfades.
Die Verwendung des magischen WortesWORKINGFOLDER
im Pfad der Einstellungsdatei wird durch den gestarteten Konfigurationspfad ersetzt, z.B.WORKINFOLDER/my_preferences
. -
use_send_zmq_option
-
Wird verwendet, um ZMQ-basierte ausgehende Nachrichten zu initiieren.
-
use_receive_zmq_messages
-
Wird verwendet, um ZMQ-basierte eingehende Nachrichten zu initiieren.
Diese Nachrichten können verwendet werden, um Funktionen in der Handler-Datei aufzurufen, so dass externe Programme eng mit QtVCP-basierten Bildschirmen integriert werden können. -
embedded_program_option
-
In der INI definierte Programme einbetten.
-
default_embed_tab
-
Dies ist die Eigenschaft für einen Standardort zum Einbetten externer Programme.
Sie sollte auf den Namen eines Registerkarten-Widgets in Qt Designer gesetzt werden. -
focusOverlay_option
-
Focus_overlay legt ein transparentes Bild oder ein farbiges Feld über den Hauptbildschirm, um den Fokus auf ein externes Ereignis zu betonen - normalerweise ein Dialog.
-
messageDialog_option
-
Richtet den Nachrichtendialog ein - wird für allgemeine Nachrichten verwendet.
-
message_overlay_color
-
Farbe der transparenten Ebene, die angezeigt wird, wenn der Nachrichtendialog eingeblendet wird.
-
closeDialog_option
-
Richtet den Standarddialog zum Schließen des Bildschirms ein.
-
entryDialog_option
-
Richtet den numerischen Eingabedialog ein.
-
entryDialogSoftKey_option
-
Richtet eine schwebende Softwaretastatur ein, wenn der Eingabedialog fokussiert ist.
-
entry_overlay_color
-
Farbe der transparenten Ebene, die angezeigt wird, wenn der Eingabedialog angezeigt wird.
-
toolDialog_option
-
Richtet den manuellen Werkzeugwechsel-Dialog ein, inklusive HAL-Pin.
-
tool_overlay_color
-
Farbe der transparenten Ebene, die angezeigt wird, wenn der Werkzeugdialog angezeigt wird.
-
ToolUseDesktopNotify
-
Option zur Verwendung von Desktop-Benachrichtigungsdialogen für manuelle Werkzeugwechseldialoge.
-
ToolFrameless
-
Framesless-Dialoge können von Benutzern nicht einfach verschoben werden.
-
fileDialog_option
-
Richtet den Dateiauswahldialog ein.
-
file_overlay_color
-
Farbe der transparenten Ebene, die angezeigt wird, wenn der Dateidialog angezeigt wird.
- keyboardDialog_option
-
Richtet ein Tastatureingabe-Widget ein.
-
keyboard_overlay_color
-
Farbe der transparenten Ebene, die angezeigt wird, wenn der Tastaturdialog angezeigt wird.
-
vesaProbe_option
-
Richtet den Versa-Style-Probe-Dialog ein.
-
versaProbe_overlay_color
-
Farbe der transparenten Ebene, die angezeigt wird, wenn der Dialog
versaProbe
angezeigt wird. -
macroTabDialog_option
-
legt den Makro-Auswahldialog fest.
-
macroTab_overlay_color
-
Farbe der transparenten Ebene, die angezeigt wird, wenn der
macroTab
-Dialog angezeigt wird. -
camViewDialog_option
-
Richtet den Kameraausrichtungsdialog ein.
-
camView_overlay_color
-
Farbe der transparenten Ebene, die angezeigt wird, wenn der Dialog
camView
angezeigt wird. -
toolOffset_option
-
Richtet das Dialogfeld für die Anzeige/Editierung von Werkzeugkorrekturen ein.
-
toolOffset_overlay_color
-
Farbe der transparenten Ebene, die angezeigt wird, wenn der
toolOffset
-Dialog angezeigt wird. -
originOffset_option
-
Richtet das Dialogfeld für die Anzeige/Editierung des Ursprungs ein.
-
originOffset_overlay_color
-
Farbe der transparenten Ebene, die angezeigt wird, wenn der
originOffset
-Dialog angezeigt wird. -
calculatorDialog_option
-
Richtet das Eingabefenster für den Taschenrechner ein.
-
calculator_overlay_color
-
Farbe der transparenten Ebene, die angezeigt wird, wenn das Dialogfeld "Rechner" angezeigt wird.
-
machineLogDialog_option
-
Richtet einen Dialog ein, um Protokolle von der Maschine und QtVCP anzuzeigen.
-
machineLog_overlay_color
-
Farbe der transparenten Ebene, die angezeigt wird, wenn der
machineLog
-Dialog angezeigt wird. -
runFromLineDialog_option
-
Richtet einen Dialog ein, der die Startoptionen anzeigt, wenn die Maschinenausführung von einer beliebigen Zeile aus gestartet wird.
-
runFromLine_overlay_color
-
Farbe der transparenten Ebene, die angezeigt wird, wenn der
runFromLine
-Dialog angezeigt wird. -
user1Color
-
Optional color the screen designer can use in their design.
-
user2Color
-
Optional color the screen designer can use in their design.
-
user3Color
-
Optional color the screen designer can use in their design.
-
user4Color
-
Optional color the screen designer can use in their design.
-
user5Color
-
Optional color the screen designer can use in their design.
-
user6Color
-
Optional color the screen designer can use in their design.
-
user7Color
-
Optional color the screen designer can use in their design.
-
user8Color
-
Optional color the screen designer can use in their design.
-
user9Color
-
Optional color the screen designer can use in their design.
-
user10Color
-
Optional color the screen designer can use in their design.
Der Screendesigner wählt die Standardeinstellungen des Widgets screenOptions
aus.
Einmal ausgewählt, müssen die meisten nicht mehr geändert werden. Bei Bedarf können jedoch einige in der Handler-Datei oder in Stylesheets geändert werden.
-
In the handler file:
Here we reference the widget by the Qt Designer user defined name:# red,green,blue,alpha 0-255 color = QtGui.QColor(0, 255, 0, 191) self.w.screen_options.setProperty('close_overlay_color', color) self.w.screen_options.setProperty('play_sounds_option',False)
-
In style sheets:
Here we can reference the widget by Qt Designer user defined name or by widget class name./* red, green, blue 0-255, alpha 0-100% or 0.0 to 1.0 */ /* the # sign is used to refer to Qt Designer defined widget name */ /* matches/applied to only this named widget */ #screen_options { qproperty-close_overlay_color: rgba(0, 255, 0, 0.75) }
Some settings are only checked on startup so will not cause changes after startup. In these cases you would need to make the changes in Qt Designer only.
Wenn die Option Voreinstellungsdatei ausgewählt ist, erstellt das Widget screenOption
eine INI-basierte Voreinstellungsdatei.
Während andere QtVCP Widgets diese Liste ergänzen, fügt das screenOptions
Widget diese Einträge unter den folgenden Überschriften hinzu:
-
[SCREEN_OPTIONS]
-
-
catch_errors
(bool) -
desktop_notify
(bool) -
Ob Fehler/Meldungen im Benachrichtigungsmechanismus des Systems angezeigt werden sollen.
-
notify_max_msgs
(int) -
Anzahl der angezeigten Fehler zu einem Zeitpunkt.
-
shutdown_check
(bool) -
Ob ein Bestätigungsdialog erscheinen soll.
-
sound_player_on
(bool) -
Schaltet alle Töne ein oder aus.
-
-
[MCH_MSG_OPTIONS]
-
-
mchnMsg_play_sound
(bool) -
Um Warntöne wiederzugeben, wenn ein Dialogfeld angezeigt wird.
-
mchnMsg_speak_errors
(bool) -
Verwendung von Espeak, um Fehlerbotschaften zu sprechen.
-
mchnMsg_speak_text
(bool) -
Espeak verwenden, um alle anderen Nachrichten zu sprechen.
-
mchnMsg_sound_type
(str) -
Ton, der abgespielt wird, wenn Nachrichten angezeigt werden. Siehe Hinweise unten.
-
-
[USER_MSG_OPTIONS]
-
-
usermsg_play_sound
(bool) -
Um Warntöne wiederzugeben, wenn ein Dialogfeld angezeigt wird.
-
userMsg_sound_type
(str) -
Ton, der abgespielt wird, wenn Benutzermeldungen angezeigt werden. Siehe Hinweise unten.
-
userMsg_use_focusOverlay
(bool)
-
-
[SHUTDOWN_OPTIONS]
-
-
shutdown_play_sound
(bool) -
shutdown_alert_sound_type
(str) -
Ton, der abgespielt wird, wenn Nachrichten angezeigt werden. Siehe Hinweise unten.
-
shutdown_exit_sound_type
(str) -
Ton, der abgespielt wird, wenn Nachrichten angezeigt werden. Siehe Hinweise unten.
-
shutdown_msg_title
(str) -
Kurzer Titelstring, der im Dialog angezeigt wird.
-
shutdown_msg_focus_text
(str) -
Großer Text, der in die Fokusebene eingeblendet wird.
-
shutdown_msg_detail
(str) -
Längere beschreibende Zeichenfolge zur Anzeige im Dialog.
-
-
NOTIFY_OPTIONS
-
-
notify_start_greeting
(bool) -
Ob ein Begrüßungsdialog beim Start angezeigt werden soll.
-
notify_start_title
(str) -
Kurzer Titelstring.
Wenn die Option "Sprechen" ebenfalls ausgewählt ist, wird der Titel mit Espeak gesprochen. -
notify_start_detail
(str) -
Längere Zeichenfolge zur Beschreibung.
-
notify_start_timeout
(int) -
Zeit in Sekunden bis zur Anzeige vor dem Schließen.
-
*_sound_type
Einträge-
System Sounds
In Debian/Ubuntu/Mint based installations these system sounds should be available as sound-type entries above:-
ERROR
-
READY
-
DONE
-
ATTENTION
-
RING
-
LOGIN
-
LOGOUT
-
BELL
(engl. für Glocke)
Diese Sound-Optionen erfordern die Installation von
python3-gst1.0
. -
-
Audio Files
You can also specify a file path to an arbitrary audio file.
You can use~
in path to substitute for the user home file path. -
Kernel Beeps
If thebeep
kernel module is installed and it is not disabled, these sound-type entries are available:-
BEEP
-
BEEP_RING
-
BEEP_START
-
-
Text-To-Speech
If the Espeak module (python3-espeak
) is installed, you can use theSPEAK
entry to pronounce text: -
SPEAK '_my message_'
2.16. StatusSlider
- Controller-Einstellungs-Schieberegler-Widget
Mit diesem Widget kann der Benutzer eine LinuxCNC-Einstellung mit einem Schieberegler anpassen.
Die Kurzbeschreibung kann folgendes anpassen:
-
Jogging-Rate
-
Winkel-Jog-Rate
-
Vorschubgeschwindigkeit
-
Spindel-Override-Rate
-
Eilgang Übersteuerungsrate (engl. rapid override rate)
StatusSlider
hat die folgenden Eigenschaften:
-
halpin_option
-
Legt die Option fest, um einen HAL-Gleitkomma-Pin zu erstellen, der den aktuellen Wert widerspiegelt.
-
rapid_rate
-
Wählt einen Schieberegler für die Übersteuerungsrate des Eilgangs.
-
feed_rate
-
Wählt einen Schieberegler für die Vorschub-Neufestsetzung (engl. feed override rate).
-
spindle_rate
-
Wählt einen Schieberegler für die Übersteuerungsrate des Eilgangs.
-
jograte_rate
-
Wählt einen linearen Jograte-Schieberegler aus.
-
jograte_angular_rate
-
Wählt einen eckigen Jograte-Schieberegler aus.
-
max_velocity_rate
-
Wählt einen Schieberegler für die maximale Geschwindigkeitsrate aus.
-
alertState
-
String zum Definieren der Stiländerung:
read-only
(enlg. nur lesen),under
(engl. für unter),over
(engl. für über) undnormal
. -
alertUnder
-
Legt den Float-Wert fest, der dem Stylesheet eine "Unter"-Warnung signalisiert.
-
alertOver
-
Legt den Gleitkommawert fest, der dem Stylesheet die Warnung "Über" signalisiert.
Diese können eingestellt werden in:
-
Qt Designer
-
Python-Handler-Code,
self.w.status_slider.setProperty('spindle_rate',True) self.w.status_slider.setProperty('alertUnder',35) self.w.status_slider.setProperty('alertOver',100)
-
Oder (gegebenenfalls) in Stylesheets.
/* Warnfarben für Übersteuerungen, wenn sie außerhalb des normalen Bereichs liegen*/ /* Name des Widget-Objekts ist slider_spindle_ovr */ #slider_spindle_ovr[alertState='over'] { background: red; } #slider_spindle_ovr[alertState='under'] { background: yellow; }
Es basiert auf PyQt’s QSlider.
2.17. StateLED
- Controller-Status-LED-Widget
Dieses Widget zeigt den Status des ausgewählten LinuxCNC-Status an.
Die Statusoptionen sind:
-
is_paused_status
-
is_estopped_status
-
is_on_status
-
is_idle_status_
-
is_homed_status
-
is_flood_status
-
is_mist_status
-
is_block_delete_status
-
is_optional_stop_status
-
is_joint_homed_status
-
is_limits_overridden_status
-
is_manual_status
-
is_mdi_status
-
is_auto_status
-
is_spindle_stopped_status
-
is_spindle_fwd_status
-
is_spindle_rev_status
-
is_spindle_at_speed_status
-
is_neg_limit_tripped
-
is_pos_limit_tripped
-
is_limits_tripped
-
Es gibt Eigenschaften, die geändert werden können:
-
halpin_option
-
Fügt einen Ausgangspin hinzu, der den ausgewählten Zustand wiedergibt.
-
invert_state_status
-
Invertieren des LED-Status im Vergleich zum LinuxCNC-Status.
-
diameter
-
Durchmesser der LED.
-
color
-
Farbe der LED im eingeschalteten Zustand.
-
off_color
-
Farbe der LED im ausgeschalteten Zustand.
-
alignment
-
Qt-Hinweis zur Ausrichtung.
-
state
-
Aktueller Zustand der LED (zum Testen in Qt Designer).
-
flashing
-
Schaltet die Blinkoption ein und aus.
-
flashRate
-
Legt die Blitzrate fest.
Die LED-Eigenschaften können in einem Stylesheet mit folgendem Code definiert werden, welcher der Datei .qss
hinzugefügt wird.
State_LED #name_of_led{ <1> qproperty-color: red; qproperty-diameter: 20; qproperty-flashRate: 150; }
-
name_of_led
wäre der im Editor von Qt Designer definierte Name.
Es basiert auf dem LED-Widget.
2.18. StatusAdjustmentBar
- Widget zum Einstellen von Controller-Werten
Dieses Widget ermöglicht die Einstellung von Werten über Schaltflächen, während ein Balken angezeigt wird.
Außerdem gibt es einen optionalen Hoch/Tief-Knopf, der gedrückt gehalten werden kann, um die Stufen einzustellen.
Die Kurzbeschreibung kann folgendes anpassen:
-
Jogging-Rate
-
Winkel-Jog-Rate
-
Vorschubgeschwindigkeit
-
Spindel-Override-Rate
-
Eilgang Übersteuerungsrate (engl. rapid override rate)
Sie basiert auf PyQt’s QProgressBar.
2.19. SystemToolButton
- Widget zur Auswahl des Benutzersystems
Mit diesem Widget können Sie manuell ein G5x Benutzersystem auswählen, indem Sie es gedrückt halten.
Wenn Sie den Text der Schaltfläche nicht festlegen, wird sie automatisch auf das aktuelle System aktualisiert.
Es basiert auf PyQts QToolButton.
2.20. MacroTab
- Spezielles Makro-Widget
Mit diesem Widget kann der Benutzer spezielle Makroprogramme für die Erledigung kleinerer Aufgaben auswählen und anpassen.
Es verwendet Bilder zur visuellen Darstellung des Makros und für ein Symbol.
Es sucht nach speziellen Makros unter Verwendung der INI-Definition:
[RS274NGC] SUBROUTINE_PATH =
Die Makros sind O-Wort
-Unterprogramme mit speziellen Kommentaren für die Zusammenarbeit mit dem Launcher. Die ersten drei Zeilen müssen die untenstehenden Schlüsselwörter enthalten, die vierte ist optional.
Hier ist ein Beispiel für die ersten vier Zeilen einer O-Word-Datei:
; MACROCOMMAND = Entry1,Entry2 ; MACRODEFAULTS = 0,true ; MACROIMAGE = my_image.svg,Icon layer number,Macro layer number ; MACROOPTIONS = load:yes,save:yes,default:default.txt,path:~/macros
MACROCOMMAND
Dies ist die erste Zeile in der O-Wort-Datei.
Es handelt sich um eine durch Kommata getrennte Liste von Text, der über einem Eintrag angezeigt werden soll.
Es gibt eine für jede erforderliche Variable in der O-Wort-Funktion.
Wenn das Makro keine Variablen benötigt, lassen Sie es leer:
; MACROCOMMAND=
MACRODEFAULTS
Dies muss die zweite Zeile in der O-Wort-Datei sein.
Es handelt sich um eine durch Kommata getrennte Liste der Standardwerte für jede Variable in der O-Wort-Funktion.
Wenn Sie das Wort "true" oder "false" in der Liste verwenden, wird ein "checkbutton" angezeigt.
MACROIMAGE
Dies muss die dritte Zeile in der O-Wort-Datei sein.
-
SVG Images
If using SVG image files, they must end with the.svg
extension.
Die Bilder müssen zu SVG-Ebenen hinzugefügt werden, die zur Definition der verschiedenen Bilder für Makro und Symbol verwendet werden.
Wert ist eine durch Kommata getrennte Liste von drei geordneten Feldern:
; MACROIMAGE=filename.svg,macro_layer_name[,icon_layer_name]
Mit:
-
_dateiname_.svg
-
Name der SVG-Bilddatei als erstes Feld.
Es wird davon ausgegangen, dass sie sich im selben Ordner befindet wie die O-Wort-Datei. -
*macro_layer_name
-
Name der Makrobildebene als zweites Feld.
-
icon_layer_name
-
Name der Ikonenebene als optionales drittes Feld. Fehlt der dritte Eintrag, wird für Makro und Symbol das gleiche Bild verwendet.
-
-
PNG/JPG Images:
Value remains a comma separated list:; MACROIMAGE=macro_image.(png|jpg)[,icon_image.(png|jpg)]
Mit:
-
_macro_image_.(png|jpg)
-
Name der Bilddatei des Makros als erstes Feld.
Es wird davon ausgegangen, dass sich die Bilddatei im selben Ordner befindet wie das Makro. -
_icon_image_.(png|jpg)
-
Icon image file name as optional second field.
If the second entry is missing the same image will be used for macro and image.
-
Wenn das Schlüsselwort vorhanden ist, aber die Einträge fehlen, werden keine Bilder verwendet.
MACROOPTIONS
Diese optionale Zeile muss die vierte Zeile in der O-Wort-Datei sein.
Es handelt sich um eine durch Kommata getrennte Liste von Schlüsselwörtern und Daten:
-
LOAD:yes
-
Zeigt einen Button zum Laden an.
-
SAVE:yes
-
Zeigt einen Button zum Speichern an.
2.21. MDILine
- MDI-Befehlszeileneingabe-Widget
Hier kann man MDI-Befehle eingeben.
Eine Popup-Tastatur ist verfügbar.
Es gibt auch eingebettete Befehle, die über dieses Widget verfügbar sind.
Geben Sie einen dieser Befehle ein, um das entsprechende Programm zu laden oder die Funktion aufzurufen:
-
HALMETER
-
Startet das LinuxCNC Link:../hal/tools.html#sec:halmeter[
halmeter
] Dienstprogramm. -
HALSHOW
-
Startet das LinuxCNC Link:../hal/halshow.html#cha:halshow[
halshow
] Dienstprogramm. -
HALSCOPE
-
Startet das LinuxCNC Link:../hal/tutorial.html#sec:tutorial-halscope[
halscope
] Dienstprogramm. -
STATUS
-
Startet das LinuxCNC Link:../man/man1/linuxcnctop.1.html[
status
] Dienstprogramm. -
CALIBRATION
-
Startet die LinuxCNC Calibration
-
CLASSICLADDER
-
Startet die Link:../ladder/classic-ladder.html[ClassicLadder GUI], wenn die ClassicLadder realtime HAL component durch die Konfigurationsdateien des Rechners geladen wurde.
-
PREFERENCE
-
Lädt die Einstellungsdatei in den
GcodeEditor
. -
CLEAR HISTORY
-
Löscht den MDI-Verlauf.
-
net
-
Siehe Link:../man/man1/halcmd.1.html#COMMANDS[
halcmd net
commands].
Wenn der Befehl nicht erfolgreich ist, wird ein Fehler ausgegeben.-
Syntax:
net <signal name> <pin name>
-
Beispiel:
net plasmac:jog-inhibit motion.jog-stop
-
-
setp
-
Sets den Wert eines Pins oder einer parameter.
Gültige Werte hängen vom Objekttyp des Pins oder Parameters ab.
Dies führt zu einem Fehler, wenn die Datentypen nicht übereinstimmen oder der Pin mit einem Signal verbunden ist.-
Syntax:
setp <Pin/Parameter-Name> <Wert>
-
Beispiel:
setp plasmac.resolution 100
-
-
unlinkp
-
Trennt einen Pin von einem Signal.
Ein Fehler tritt auf, wenn der Pin nicht vorhanden ist.
Running LinuxCNC von Terminal kann helfen, die Ursache zu bestimmen, wie Fehlermeldungen vonhal_lib.c
wird dort angezeigt werden.-
Syntax:
unlinkp <Pin-Name>
-
Beispiel:
unlinkp motion.jog-stop
-
Anmerkung
|
Die Funktion MDILine spindle_inhibit kann von der Handler-Datei einer grafischen Benutzeroberfläche verwendet werden, um die Spindelbefehle M3 , M4 und M5 bei Bedarf zu sperren. |
Es basiert auf PyQts QLineEdit.
2.22. MDIHistory
- MDI-Befehlsverlaufs-Widget
Zeigt eine scrollbare Liste vergangener MDI-Befehle an.
Für MDI-Befehle wird eine Bearbeitungszeile eingebettet. Auf die gleichen eingebetteten MDILine-Befehle kann von diesem Widget aus zugegriffen werden.
Der Verlauf wird in einer Datei aufgezeichnet, die in der INI unter der Überschrift [DISPLAY]
definiert ist (dies ist die Standardeinstellung):
MDI_HISTORY_FILE = '~/.axis_mdi_history'
2.23. MDITouchy
- Touchscreen-MDI-Eingabe-Widget
Dieses Widget zeigt Buttons und Eingabezeilen für die Eingabe von MDI-Befehlen an.
Basierend auf LinuxCNC’s Touchy Screen’s MDI-Eingabe-Prozess, dessen großen Buttons sind sehr nützlich für Touchscreens.
So verwenden Sie MDITouchy
:
-
Drücken Sie zunächst eine der Tasten
G/XY
,G/RO
,M
oderT
. Auf der linken Seite werden die Eingabefelder angezeigt, die ausgefüllt werden können. -
Drücken Sie dann „Weiter“ und „Zurück“, um zwischen den Feldern zu navigieren.
-
Calc
öffnet einen Taschenrechnerdialog. -
Clear
löscht den aktuellen Eintrag. -
Set Tool
wird einen Werkzeugwechsel fordern. -
Set Origin
ermöglicht das Festlegen des Ursprungs des aktuellen G6x-Systems. -
Macro
ruft alle verfügbaren Makro-ngc-Programme auf.
Das Widget erfordert einen expliziten Aufruf des MDITouchy-Python-Codes, um den MDI-Befehl tatsächlich auszuführen:
-
For handler file code
If the widget was named mditouchy in Qt Designer, the command below would run the displayed MDI command:self.w.mditouchy.run_command()
-
For action button use
If the widget was named mditouchy in Qt Designer, use the action button’s Call Python commands option and enter:INSTANCE.mditouchy.run_command()
Die Makro-Schaltfläche durchläuft die in der INI-Überschrift [ANZEIGE] definierten Makros.
Fügen Sie eine oder mehrere MACRO
-Zeilen im folgenden Format hinzu:
MACRO = macro_name [param1] [... paramN]
Im folgenden Beispiel ist increment
der Name des Makros, und es akzeptiert zwei Parameter, die xinc
und yinc
heißen.
MACRO = increment xinc yinc
Legen Sie nun das Makro in einer Datei mit dem Namen macro_name.ngc
im Verzeichnis PROGRAM_PREFIX
oder in einem beliebigen Verzeichnis im SUBROUTINE_PATH
ab, das in der INI-Datei angegeben ist.
Um bei dem obigen Beispiel zu bleiben, würde es increment.ngc
heißen und sein Inhalt könnte wie folgt aussehen:
O<increment> sub G91 G0 X#1 Y#2 G90 O<increment> endsub
Beachten Sie, dass der Name des Unterprogramms exakt mit dem Dateinamen und dem Makronamen übereinstimmt, einschließlich Groß- und Kleinschreibung.
Wenn Sie das Makro durch Drücken der Schaltfläche Makro aufrufen, können Sie Werte für Parameter eingeben (in unserem Beispiel "xinc" und "yinc").
Diese werden als Positionsparameter an das Makro übergeben: #1
, #2
… #N
jeweils.
Parameter, die Sie leer lassen, werden als Wert 0
übergeben.
Wenn es mehrere verschiedene Makros gibt, drücken Sie wiederholt die Makrotaste, um sie zu durchlaufen.
Wenn Sie in diesem einfachen Beispiel -1 für xinc eingeben und die Ausführung des MDI-Zyklus aufrufen, wird eine schnelle G0-Bewegung ausgelöst, die eine Einheit nach links geht.
Diese Makrofunktion ist nützlich für das Antasten von Kanten/Löchern und andere Einrichtungsaufgaben sowie vielleicht für das Fräsen von Löchern oder andere einfache Operationen, die vom Bedienfeld aus durchgeführt werden können, ohne dass speziell geschriebene G-Code-Programme erforderlich sind.
2.24. OriginOffsetView
- Ursprungsansicht und Einstellungs-Widget
Dieses Widget ermöglicht es, Offsets von Benutzer-spezifizierten Ursprüngen direkt zu visualisieren und zu ändern.
Es wird die Parameterdatei von LinuxCNC für vorgenommene oder gefundene Änderungen aktualisieren.
Die Einstellungen können in LinuxCNC nur nach der Referenzfahrt und im Ruhezustand des Motion Controllers geändert werden.
Die Anzeige und Eingabe wird zwischen metrischen und imperialen Maßeinheiten, basierend auf LinuxCNC’s aktuellen G20
/ G21
Einstellung ändern.
Das aktuell genutzte Benutzersystem wird hervorgehoben.
Es können zusätzliche Aktionen integriert werden, um Einstellungen zu manipulieren.
Diese Aktionen hängen von zusätzlichem Code ab, der entweder zu einem kombinierten Widget, wie dem originoffsetview
-Dialog, oder dem Bildschirm-Handler-Code hinzugefügt wird.
Typische Aktionen sind z.B. Clear Current User offsets oder Zero X.
Wenn Sie auf die Spalten und Zeilen klicken, können Sie die Einstellungen anpassen.
Für die Daten- oder Texteingabe kann ein Dialogfeld eingeblendet werden.
Der Abschnitt mit den Kommentaren wird in die Einstellungsdatei aufgenommen.
Es basiert auf PyQt’s QTableView, QAbstractTableModel, und ItemEditorFactory.
Eigenschaften, Funktionen und Stile der PyQt-Basisobjekte sind immer verfügbar.
OriginOffsetView
hat die folgenden Eigenschaften:
-
dialog_code_string
-
Legt fest, welcher Dialog bei einer numerischen Eingabe erscheint.
-
test_dialog_code_string
-
Legt fest, welcher Dialog bei der Texteingabe angezeigt wird.
-
metric_template
-
Metrisches numerisches Datenformat.
-
imperial_template
-
Imperiales numerisches Datenformat.
-
styleCodeHighlight
-
Aktuell verwendete Farbe für die Hervorhebung des Benutzersystems.
Diese können eingestellt werden in:
-
Qt Designer, in
-
Python-Handler-Code
self.w.originoffsetview.setProperty('dialog_code','CALCULATOR') self.w.originoffsetview.setProperty('metric_template','%10.3f')
-
Oder (gegebenenfalls) in Stylesheets
OriginOffsetView{ qproperty-styleColorHighlist: lightblue; }
2.25. StateEnableGridlayout
- Controller State Enabled Container Widget
_Deaktivieren Sie die Widgets darin je nach LinuxCNCs aktuellem Zustand_.
Dies ist ein Container, in dem andere Widgets platziert werden können.
Eingebettete Widgets werden ausgegraut, wenn die Funktion StateEnableGridlayout
deaktiviert ist.
Es kann selektiv reagieren auf:
-
Maschine ein
-
Interpreter idle
-
Notaus aus
-
Alle referenziert (engl. all-homed)
Es basiert auf PyQt’s QGridLayout.
2.26. MachineLog - Widget für die Anzeige des Journals für Maschinenereignisse
FIXME MachineLog-Dokumentation
2.27. JointEnableWidget
- FIXME
FIXME JointEnableWidget Dokumentation
2.28. StatusImageSwitcher
- Controller-Statusbild-Umschalt-Widget
Dieses Widget wird Bilder basierend auf dem LinuxCNC-Status anzeigen.
Sie können sehen:
-
Den Zustand der Spindel,
-
den Status der Referenzierung aller Achsen,
-
den Zustand der Referenzierung einer bestimmten Achse,
-
den Zustand der harten Grenzen.
Es basiert auf PyQt’s FIXME
2.29. FileManager
- Datei laden Selector Widget (engl. für Dateimanager)
Dieses Widget wird verwendet, um zu ladende Dateien auszuwählen.
Sie verfügt über die Möglichkeit, die Namen mit Hardware wie einem Handgerät (engl. MPG) zu kennzeichnen.
Man kann die Funktion load(self,fname)
mit einem Klassenpatch (engl. class patch) versehen, um das Laden von Dateien anzupassen.
Die Funktion getCurrentSelected()
gibt ein Python-Tupel zurück, das den Dateipfad enthält und angibt, ob es sich um eine Datei handelt.
temp = FILEMANAGER.getCurrentSelected() print('filepath={}'.format(temp[0])) if temp[1]: print('Is a file')
-
doubleClickSelection
(bool) -
Legt fest, ob ein Doppelklick auf einen Ordner erforderlich ist oder nicht.
Das einfache Anklicken eines Ordners (False) ist standardmäßig aktiviert und ist für Touchscreen-Benutzer gedacht.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#filemanager { qproperty-doubleClickSelection: True; }
-
showListView
(bool) -
Bestimmt, ob die Datei-/Ordnerstruktur in Listenform angezeigt werden soll oder nicht.
Die Tabellenansicht (False) ist standardmäßig aktiviert.
Im Folgenden wird ein Beispiel für die Einstellung dieser Eigenschaft gezeigt:#filemanager { qproperty-showListView: True; }
Es basiert auf PyQt’s FIXME
2.30. RadioAxisSelector
- FIXME
FIXME RadioAxisSelector-Dokumentation
2.31. ToolOffsetView
- Widget zum Anzeigen und Bearbeiten von Werkzeug-Offsets
Dieses Widget zeigt Werkzeug-Offsets an und ermöglicht deren Änderung.
Es wird die Werkzeugtabelle von LinuxCNC für vorgenommene oder gefundene Änderungen aktualisieren.
Die Einstellungen können in LinuxCNC nur nach der Referenzfahrt und im Ruhezustand des Motion Controllers geändert werden.
Die Anzeige und der Eintrag wechseln zwischen metrisch und imperial, basierend auf der aktuellen G20/G21 Einstellung von LinuxCNC.
Das aktuell verwendete Werkzeug wird hervorgehoben, und das aktuell ausgewählte Werkzeug wird in einer anderen Farbe hervorgehoben.
Das Kontrollkästchen neben jedem Werkzeug kann auch für eine Aktion ausgewählt werden, die von zusätzlichem Code abhängt, der entweder zu einem kombinierten Widget, wie dem Dialogfeld ToolOffsetView
oder dem Code des Bildschirmhandlers, hinzugefügt wird.
Typische Aktionen sind "Ausgewähltes Werkzeug laden", "Ausgewählte Werkzeuge löschen", usw.
Wenn Sie auf die Spalten und Zeilen klicken, können Sie die Einstellungen anpassen.
Für die Daten- oder Texteingabe kann ein Dialogfeld eingeblendet werden.
Der Kommentarbereich (engl. comments section) wird in der Regel im Dialog für den manuellen Werkzeugwechsel angezeigt.
Bei Verwendung einer Drehbankkonfiguration kann es Spalten für X- und Z-Verschleiß geben.
Um diese Spalten zur Einstellung des Werkzeugverschleißes zu verwenden, ist eine neu zugeordnete Werkzeugwechselroutine erforderlich.
Es basiert auf PyQt’s QTableView, QAbstractTableModel, und ItemEditorFactory.
Eigenschaften, Funktionen und Stile der PyQt-Basisobjekte sind immer verfügbar.
ToolOffsetView
hat Eigenschaften, die im Qt Designer, im Python-Handler-Code oder (falls zutreffend) in Stylesheets eingestellt werden können:
-
dialog_code_string
-
Legt fest, welcher Dialog bei einer numerischen Eingabe erscheint.
-
test_dialog_code_string
-
Legt fest, welcher Dialog bei der Texteingabe angezeigt wird.
-
metric_template
-
Metrisches numerisches Datenformat.
-
imperial_template
-
Imperiales numerisches Datenformat.
-
styleCodeHighlight
-
Hervorhebungsfarbe des aktuellen Werkzeugs.
-
styleCodeSelected
-
Ausgewählte Hervorhebungsfarbe.
In einer Handler-Datei:
self.w.tooloffsetview.setProperty('dialog_code','CALCULATOR') self.w.tooloffsetview.setProperty('metric_template','%10.3f')
und in Stylesheets:
ToolOffsetView{ qproperty-styleColorHighlist: lightblue; qproperty-styleColorSelected: #444; }
Die Funktion ToolOffsetView
hat einige Funktionen, die für Screenbuilder nützlich sind, um Aktionen hinzuzufügen:
-
add_tool()
-
Fügt ein leeres Dummy-Werkzeug (99) hinzu, das der Benutzer nach Belieben bearbeiten kann.
-
delete_tools()
-
Löscht die in der Checkbox ausgewählten Werkzeuge.
-
get_checked_list()
-
Gibt eine Liste der durch Ankreuzfelder ausgewählten Werkzeuge zurück.
-
set_all_unchecked()
-
Hebt die Markierung aller ausgewählten Werkzeuge auf.
self.w.tooloffsetview.add_tool() self.w.tooloffsetview.delete_tools() toolList = self.w.tooloffsetview.get_checked_list() self.w.tooloffsetview.set_all_unchecked()
2.32. BasicProbe
- Einfaches Fräs-Tast-Widget
Widget zum Sondieren auf einer Fräse. Wird vom QtDragon-Bildschirm verwendet.
2.33. VersaProbe
- Fräsen-Tast-Widget
Widget zum Sondieren auf einer Fräse. Wird vom QtDragon-Bildschirm verwendet.
3. Dialog-Widgets
Dialoge werden verwendet, um unmittelbar benötigte Informationen gezielt darzustellen oder abzufragen.
Die typischerweise verwendeten Dialoge können mit dem ScreenOptions widget geladen werden.
Sie können sie auch direkt zur UI hinzufügen - allerdings muss jedes Dialogfeld einen eindeutigen Startnamen haben, sonst werden mehrere Dialogfelder nacheinander angezeigt.
Sie können Dialoge direkt mit Python-Code anzeigen, aber eine sicherere Methode ist die Verwendung von STATUS
-Nachrichten, um den Dialog zu starten und die gesammelten Informationen zurückzugeben.
-
Register to
STATUS
channel:
To set this up, first register to catch thegeneral
message fromSTATUS
:STATUS.connect('general',self.return_value)
-
Add a function to call a dialog:
This function must build a messagedict
to send to the dialog.
This message will be passed back in the general message with the addition of thereturn
variable.
It is possible to add extra user information to the message. The dialog will ignore these and pass them back.-
NAME
-
Startet den Codenamen des anzuzeigenden Dialogs.
-
ID
-
Eine eindeutige ID, damit wir nur den angeforderten Dialog bearbeiten.
-
TITLE
-
Der Titel, der für das Dialogfeld verwendet werden soll.
def show_dialog(self): mess = {'NAME':'ENTRY','ID':'__test1__', 'TITLE':'Test Entry'} ACTION.CALL_DIALOG, mess)
-
-
Add a callback function that processes the general message:
Keep in mind this function will get all general messages so thedict
keynames are not guaranteed to be there. Using the.get()
function and/or usingtry
/except
is advisable. This function should:-
check the name and id is the same as we sent,
-
then extract the return value and any user variables.
# Verarbeitung der STATUS return message def return_value(self, w, message): rtn = message.get('RETURN') code = bool(message.get('ID') == '__test1__') name = bool(message.get('NAME') == 'ENTRY') if code and name and not rtn is None: print('Entry return value from {} = {}'.format(code, rtn))
-
3.1. LcncDialog
- Allgemeines Nachrichtendialog-Widget
Dies ist ein Allgemeines Nachrichten-Dialog-Widget.
Wenn ein Fokus-Overlay-Widget vorhanden ist, kann es signalisieren, dass es angezeigt werden soll.
Wenn die Klangbibliothek eingerichtet ist, kann sie Klänge abspielen.
Es gibt Optionen, die gesetzt werden können, wenn ein Dialog angefordert wird, diese würden der Nachricht dict
hinzugefügt.
-
TITLE
-
Titel des Dialogfensters.
-
MESSAGE
-
Titel Nachrichtentext in Fettdruck.
-
MORE
-
Standardtext unter der Überschrift.
-
DETAILS
-
Ursprünglicher versteckter Text.
-
TYPE
(OK
|YESNO
|OKCANCEL
) -
ICON
(QUESTION
|INFO
|CRITICAL
|WARNING
) -
PINNAME
-
Noch nicht implementiert.
-
FOCUSTEXT
(overlay text|None
) -
Text, der angezeigt werden soll, wenn das Fokus-Overlay verwendet wird. Verwenden Sie
None
für keinen Text. -
FOCUSCOLOR
(QColor(_R, G, B, A_)
) -
Farbe, die verwendet werden soll, wenn das Fokus-Overlay verwendet wird.
-
PLAYALERT
-
Abzuspielender Ton, falls vorhanden, z.B.
SPEAK
<Spoken_message> .
Bei der Verwendung der Funktion "Abfrage-Dialog" von "STATUS" ist der "Standard-Startname" MESSAGE
.
Sie basiert auf der QMessagebox von PyQt.
3.2. ToolDialog
- Dialog-Widget für den manuellen Werkzeugwechsel
Dies wird als Aufforderung zum manuellen Werkzeugwechsel verwendet.
Es verfügt über HAL Pins, die mit dem controller der Maschine verbunden werden können. Die Pins haben den gleichen Namen wie die ursprüngliche AXIS manuelle Werkzeugeingabeaufforderung und funktionieren gleich.
Der Werkzeugwechsel-Dialog kann nur über HAL-Pins aufgerufen werden.
Wenn ein Fokus-Overlay-Widget vorhanden ist, signalisiert es, dass es angezeigt werden soll.
Sie basiert auf der QMessagebox von PyQt.
3.3. FileDialog
- Dialog Widget zum Laden und Speichern von Dateien
Dies wird zum Laden von G-Code-Dateien verwendet.
Wenn ein Fokus-Overlay-Widget vorhanden ist, signalisiert es, dass es angezeigt werden soll.
Wenn Sie die Request-Dialog
-Funktion von STATUS
verwenden, lauten die Standard-Startnamen LOAD
oder SAVE
.
Es gibt options, die beim Anfordern eines Dialogs gesetzt werden können, diese würden dem Meldungsdiktat hinzugefügt:
-
EXTENSIONS
-
FILENAME
-
DIRECTORY
-
Ein Beispiel für einen Python-Aufruf, für einen Load-Dialog:
mess = {'NAME':'LOAD','ID':'_MY_DIALOG_', 'TITLE':'Load Some text File', 'FILENAME':'~/linuxcnc/nc_files/someprogram.txt', 'EXTENSIONS':'Text Files (*.txt);;ALL Files (*.*)' } ACTION.CALL_DIALOG(mess)
Und für einen Speicherdialog
mess = {'NAME':'SAVE','ID':'_MY_DIALOG_', 'TITLE':'Save Some text File', 'FILENAME':'~/linuxcnc/nc_files/someprogram.txt', 'EXTENSIONS':'Text Files (*.txt);;ALL Files (*.*)' } ACTION.CALL_DIALOG(mess)
Sie basiert auf der QMessagebox von PyQt.
3.4. OriginOffsetDialog
- Dialogfeld-Widget für die Einstellung des Ursprungsversatzes
Mit diesem Widget kann man die Nullpunktverschiebung des Benutzersystems direkt in einem Dialogformular ändern.
Wenn ein Fokus-Overlay-Widget vorhanden ist, wird es angezeigt.
Bei Verwendung der request-dialog
-Funktion von STATUS
ist der standardmäßige Startname ORIGINOFFSET
.
Es basiert auf PyQts QDialog.
3.5. ToolOffsetDialog
- Dialogfenster-Widget zur Einstellung des Werkzeugversatzes
Mit diesem Widget kann man die Werkzeugversätze direkt in einem Dialogformular ändern.
Wenn ein Fokus-Overlay-Widget vorhanden ist, wird es angezeigt.
Bei Verwendung der request-dialog
-Funktion von STATUS
ist der standardmäßige Startname TOOLOFFSET
.
Es basiert auf PyQts QDialog.
3.6. MacroTabDialog
- Dialog-Widget zum Starten von Makros
Dies ist ein Dialog zum Anzeigen des Makrotab-Widgets.
MacroTab
zeigt eine Auswahl von Makroprogrammen an, die mit Symbolen ausgeführt werden.
Wenn ein Fokus-Overlay-Widget vorhanden ist, signalisiert es, dass es angezeigt werden soll.
Bei Verwendung der ``STATUS`` request-dialog
-Funktion lautet der Standardstartname MACROTAB
.
Es basiert auf PyQts QDialog.
3.7. CamViewDialog
- Dialogfeld-Widget für die WebCam-Werkstück-Ausrichtung
Dies ist ein Dialog zur Anzeige des CamView-Widgets für die Ausrichtung von Werkstücken mit der Webcam.
Bei Verwendung der ``STATUS`` request-dialog
-Funktion lautet der Standardstartname `CAMVIEW `.
Es basiert auf PyQts QDialog.
3.8. EntryDialog
- Widget zum Bearbeiten des Zeilendialogs
Dies ist ein Dialog zum Anzeigen einer Bearbeitungszeile für die Informationseingabe, wie z. B. den Versatz zum Ursprung (engl. origin offset).
Es liefert den Eintrag über STATUS
-Nachrichten unter Verwendung eines Python DICT
.
Das DICT
enthält mindestens den Namen des angeforderten Dialogs und einen ID-Code.
Bei Verwendung der ``STATUS`` request-dialog
-Funktion lautet der Standardstartname `ENTRY `.
Es basiert auf PyQts QDialog.
3.9. CalculatorDialog
- Rechner-Dialog-Widget
Dies ist ein Dialogfeld zur Anzeige eines Taschenrechners für numerische Eingaben, wie z. B. den Ursprungsversatz.
Es liefert den Eintrag über STATUS
-Nachrichten unter Verwendung eines Python DICT
.
Das DICT
enthält mindestens den Namen des angeforderten Dialogs und einen ID-Code.
Wenn Sie die Funktion 'request-dialog von 'STATUS' verwenden, lautet der Standardstartname CALCULATOR
.
Es basiert auf PyQts QDialog.
3.10. RunFromLine
- Ausführen-ab-Zeile Dialog-Widget
Dialog zum Voreinstellen der Spindeleinstellungen vor dem Ausführen eines Programms in einer bestimmten Zeile.
Es basiert auf PyQts QDialog.
3.11. VersaProbeDialog
- Dialogfeld-Widget für die Berührungsprüfung von Bauteilen
Dies ist ein Dialog zur Anzeige eines Werkstück-Suchbildschirms auf der Basis von Verser Probe v2.
Es basiert auf PyQts QDialog.
3.12. MachineLogDialog
- Maschinen- und Debugging-Protokolldialog-Widget
Dies ist ein Dialog zur Anzeige des Maschinen-Logfiles und des QtVCPs Debugging Logs.
Es basiert auf PyQts QDialog.
4. Andere Widgets
Weitere verfügbare Widgets:
4.1. NurbsEditor
- NURBS-Bearbeitungs-Widget
Mit dem Nurbs-Editor können Sie eine NURBS-basierte Geometrie auf dem Bildschirm manipulieren und anschließend NURBS in G-Code konvertieren.
Sie können den G-Code am Bildschirm bearbeiten und ihn dann an LinuxCNC senden.
Es basiert auf PyQts QDialog.
4.2. Joypad
- 5-Tasten-D-Pad-Widget
Es ist die Basisklasse für das HALPad
-Widget.
Dieses Widget sieht aus und funktioniert wie ein 5-Tasten-D-Pad, mit einer LED-Anzeige in einem Ring.
Sie können jede der Schaltflächenpositionen mit Text oder Symbolen versehen.
Sie können sich mit Ausgangssignalen verbinden, wenn die Tasten gedrückt werden.
Es gibt auch Eingabe-Slots, um die Farbe des Indikators(s.) zu ändern
Es gibt aufgezählte Konstanten, die zur Referenzierung von Indikatorpositionen verwendet werden.
Sie werden im Eigenschaftseditor des Qt Designer-Editors oder im Python-Code verwendet.
-
NONE
-
LEFT
,L
-
RIGHT
,R
-
CENTER
,C
-
TOP
,T
-
BOTTOM
,B
-
LEFTRIGHT
,X
-
TOPBOTTOM
,A
-
Für Python-Handler-Code verwenden Sie den Widget-Namen in Qt Designer plus die Referenzkonstante:
self.w.joypadname.set_highlight(self.w.joypadname.LEFT)
def _pressedOutput(self, btncode): self.joy_btn_pressed.emit(btncode) self[''.format(btncode.lower())].emit(True) def _releasedOutput(self, btncode): self.joy_btn_released.emit(btncode) self['joy_{}_pressed'.format(btncode.lower())].emit(False)
Wie kodiert, geben diese Funktionen PyQt5-Signale (joy_btn_pressed und joy<letter>_pressed) für jeden gedrückten oder losgelassenen Knopf_ aus.
Signal joy_btn_pressed gibt einen String-Code für die Taste aus.
Signal joy_<letter>_pressed gibt einen Bool-Wert aus.
Sie können die Funktionen überschreiben, um etwas anderes zu implementieren, indem Sie ein benutzerdefiniertes Widget erstellen:
-
reset_highlight()
-
Löscht die Hervorhebungsanzeige.
-
set_highlight(_button_, state=_True_)
-
Setzen Sie den Hervorhebungsanzeiger an der Position
button
auf den Zustandstate
.
Sie können Strings Buchstaben (LRCTBXA
) oder PositionENUMS
für das Argument der Schaltfläche verwenden. -
set_button_icon(_button_, _pixmap_)
-
Legt die Pixmap für das Symbol der Schaltfläche fest.
-
set_button_text(_button_, _text_)
-
Legt den Text für das Symbol der Schaltfläche fest.
-
set_tooltip(_button_, _text_)
-
Legt den beschreibenden Text für die Popup-Tooltip-Schaltflächen fest.
-
setLight(_state_)
-
Setzt den Highlight-Indikator auf die Farbe
True
oderFalse
.
Die Funktionset_highlight()
muss vorher verwendet werden, um den zu verwendenden Indikator zu setzen.
Diese Signale werden gesendet, wenn Tasten gedrückt werden.
Sie können im Qt Designer-Editor oder im Python-Code verbunden werden.
Die ersten beiden geben eine Zeichenfolge aus zur Angabe der gedrückten Schaltfläche:
-
joy_btn_pressed
(string) -
joy_btn_released
(string) -
joy_l_pressed
(bool) -
joy_l_released
(bool) -
joy_r_pressed
(bool) -
joy_r_released
(bool) -
joy_c_pressed
(bool) -
joy_c_released
(bool) -
joy_t_pressed
(bool) -
joy_t_released
(bool) -
joy_b_pressed
(bool) -
joy_b_released
(bool) -
Sie basieren auf PyQt’s Signal (QtCore.pyqtSignal()
)
Slots können im Qt Designer-Editor oder in Python-Code verbunden werden:
-
set_colorStateTrue()
-
set_colorStateFalse()
-
set_colorState(_bool_)
- set_true_color(str)
-
set_true_color(_qcolor_)
-
set_false_color(_str_)
-
set_false_color(_qcolor_)
-
Diese können in Stylesheets oder Python-Code festgelegt werden:
-
highlightPosition
-
Position des Indikators festlegen.
-
setColorState
-
Den Farbzustand des Indikators auswählen.
-
left_image_path
-
right_image_path
-
center_image_path
-
top_image_path
-
bottom_image_path
-
Ein Dateipfad oder Ressourcenpfad zu einem Bild, das an der beschriebenen Schaltflächenposition angezeigt werden soll.
Wenn die Schaltfläche "Zurücksetzen" in der Qt Designer-Editor-Eigenschaft gedrückt wird, dann wird das Bild nicht angezeigt (optional kann Text angezeigt werden). -
left_text
-
right_text
-
center_text
-
top_text
-
bottom_text
-
Eine Textzeichenfolge, die an der beschriebenen Schaltflächenposition angezeigt werden soll.
Wenn das Feld leer gelassen wird, kann ein Bild für die Anzeige bestimmt werden. -
true_color
-
false_color
-
Farbauswahl für den mittleren LED-Ring, der angezeigt werden soll, wenn der
BASENAME.light.center
HAL-PinTrue
oderFalse
ist. -
text_color
-
Auswahl der Farbe für den Text des Buttons.
-
button_font
-
Auswahl der Schriftart für den Text des Buttons.
Die obigen Eigenschaften könnten gesetzt werden in:
-
Stylesheets:
You would usually use the Qt Designer widget name with#
prefix to set individual widget properties, otherwise you would use theJoyPad
class name to set allJoyPad
widgets the same:#joypadname{ qproperty-true_color: #000; qproperty-false_color: #444; }
-
In Python handler code:
self.w.joypadename.setProperty('true_color','green') self.w.joypadename.setProperty('false_color','red')
4.3. WebWidget
Dieses Widget erstellt eine html/pdf-Anzeigeseite mit den QtWebKit- oder QtWebEngine-Bibliotheken. Der neuere QtWebEngine wird bevorzugt, wenn beide auf dem System sind.
Wird die QtWebEngine-Bibliothek mit dem Qt Designer-Editor verwendet, wird in Qesigner ein Platzhalter QWidget angezeigt. Dies wird durch das gelaufene QtWebEngine Widget ersetzt.
5. BaseClass/Mixin-Widgets
Diese Widgets werden verwendet, um verschiedene Eigenschaften und Verhaltensweisen in anderen Widgets zu kombinieren.
Sie werden als ausklappbare Kopfzeile in der Eigenschaftsspalte von Qt Designer angezeigt.
5.1. IndicatedPushButtons
Diese Klasse verändert das Verhalten von QPushButton
.
5.1.1. LED-Anzeige Option
indicator_option
puts a LED on the top of the button.
Es kann ein Dreieck, Kreis, obere Leiste oder seitliche Leiste sein.
Die Größe und Position können angepasst werden.
Es wird angezeigt:
-
den aktuellen Zustand der Schaltfläche, oder
-
den Zustand eines HAL-Pins, oder
-
LinuxCNC status.
Diese Eigenschaften sind verfügbar, um den Indikator anzupassen (nicht alle sind auf jede LED-Form anwendbar):
-
on_color
-
off_color
-
flashIndicator
-
flashRate
-
indicator_size
-
circle_diameter
-
shape_option
-
right_edge_offset
-
top_edge_offset
-
height_fraction
-
width_fraction
-
corner_radius
-
Indikator-Eckenradius.
Die Farbe der LED-Anzeige kann in einem stylesheet definiert werden, indem der folgende Code zur .qss
-Datei hinzugefügt wird:
Indicated_PushButton{ qproperty-on_color: #000; qproperty-off_color: #444; }
Oder für einen bestimmten Button:
Indicated_PushButton #button_estop{ qproperty-on_color: black; qproperty-off_color: yellow; }
IndicatedPushButton
hat exklusive Optionen:
-
indicator_HAL_pin_option
-
Fügt ein
halpin
namens<buttonname>-led
hinzu, der den Status der Schaltflächenanzeige steuert. -
indicator_status_option
-
Lässt die LED den Status dieser wählbaren LinuxCNC-Status anzeigen:
-
Is Estopped
-
Is On
-
All Homed
-
Is Joint Homed
-
Idle
-
Paused
-
Flood
-
Mist (engl. Nebel)
-
Block Delete
-
Optionaler Stop
-
Manual
-
MDI
-
Auto
-
Spindle Stopped
-
Spindel vorwärts
-
Spindel rückwärts
-
On Limits
Einige
indicator_status_options
enthält eine Eigenschaft, die mit einem stylesheet verwendet werden kann, um die Farbe der Schaltfläche basierend auf dem Zustand der Eigenschaft in LinuxCNC zu ändern.
Derzeit sind diese Status-Eigenschaften können verwendet werden, um Auto-Stil Schaltflächen:-
is_estopped_status
schaltet die EigenschaftisEstop
um -
is_on_status
schaltet die EigenschaftisStateOn
um -
is_manual_status
,is_mdi_status
,is_auto_status
schalten die EigenschaftenisManual
,isMDI
, undisAuto
um. -
is_homed_status
schaltet die Eigenschaft isAllHomed um
-
Hier ist ein Beispiel-Stylesheet-Eintrag, der den Hintergrund von Mode-Button-Widgets festlegt, wenn sich LinuxCNC in diesem Modus befindet:
ActionButton[isManual=true] { background: red; } ActionButton[isMdi=true] { background: blue; } ActionButton[isAuto=true] { background: green; }
So geben Sie ein bestimmtes Widget anhand seines objectName in Qt Designer an:
ActionButton #estop button [isEstopped=false] { color: yellow; }
5.1.2. Aktiviert durch den LinuxCNC-Status
Oft, mit der Schaltfläche deaktiviert und aktiviert auf der Grundlage der Zustand der LinuxCNC Motion Controller ist notwendig.
Es gibt mehrere Eigenschaften, die zur Unterstützung ausgewählt werden können:
-
isAllHomedSentive
-
isOnSensitive
-
isIdleSensitive
-
isRunSensitive
-
isRunPausedSensitive
-
isManSensitive
-
isMDISensitive
-
isAutoSensitive
-
Sie können mehrere Eigenschaften für kombinierte Anforderungen auswählen.
5.1.3. Text ändert sich im Zustand
Die Auswahl der Option checked_state_text_option
erlaubt es einer checkbox, den Text basierend auf ihrem checked state zu ändern.
Es verwendet die folgenden Eigenschaften, um den Text für jeden Zustand anzugeben:
-
true_state_string
-
false_state_string
-
\\n
wird in einen Zeilenumbruch umgewandelt.
Sie können diese in Stylesheets festlegen/ändern:
ActionButton #action_aux{ qproperty-true_state_string: "Air\\nOn"; qproperty-false_state_string: "Air\\nOff"; }
5.1.4. Python-Befehle für den Zustand aufrufen
Die python_command_option
ermöglicht es, kleine Schnipsel von Python-Code auf Knopfdruck auszuführen, ohne die Handler-Datei bearbeiten zu müssen. Es kann jedoch Funktionen in der Handler-Datei aufrufen.
Bei Verwendung der command_string
-Eigenschaften.
-
true_python_cmd_string
-
Ein Python-Befehl, der aufgerufen wird, wenn der Button auf
True
umgeschaltet wird. -
false_python_cmd_string
-
Ein Python-Befehl, der aufgerufen wird, wenn die Schaltfläche auf
False
umgeschaltet wird.
Besondere Wörter in Großbuchstaben geben Zugang zu den folgenden Informationen:
-
INSTANCE
-
Ermöglicht den Zugriff auf die Instanzen der Widgets und die Handler-Funktionen.
Z.B.:INSTANCE.my_handler_function_call(True)
-
ACTION
-
Ermöglicht den Zugriff auf die
ACTION
Bibliothek von QtVCP.
Z.B.ACTION.TOGGLE_FLOOD()
-
PROGRAM_LOADER
-
Ermöglicht den Zugriff auf die
PROGRAM_LOADER
Bibliothek von QtVCP.
Z.B.,PROGRAM_LOADER.load_halshow()
-
HAL
-
Ermöglicht den Zugriff auf das Python-Modul von HAL.
Z.B.:HAL.set_p('motion.probe-input','1')
6. Nur-Import-Widgets
Diese Widgets sind normalerweise die Basisklasse Widget für andere QtVCP-Widgets.
Sie sind nicht direkt im Qt-Designer-Editor verfügbar, können aber importiert und manuell eingefügt werden.
Sie könnten auch unterklassifiziert werden, um ein ähnliches Widget mit neuen Funktionen zu erstellen.
6.1. Automatische Höhe
Widget zur Messung von zwei Höhen mit einer Sonde.
Für die Einrichtung.
6.2. G-Code Dienstprogramm
Widgets für die Durchführung gängiger Bearbeitungsprozesse.
6.3. Facing
Eine Fläche oder ein definierter Bereich mit unterschiedlichen Strategien bearbeiten, auch facen.
6.4. Loch-Kreis (engl. hole circle)
Bohren mehrerer Löcher auf einem Lochkreis.
6.5. Qt NGCGUI
QtVCPs Version des NGC-Unterprogramm-Selektors (Gezeigt wie in QtDragon verwendet).
6.5.1. INI-Einstellungen
LinuxCNC muss wissen, wo es nachschauen muss, um die Unterprogramme auszuführen.
Wenn das Unterprogramm andere Unterprogramme oder benutzerdefinierte M-Codes aufruft, müssen diese Pfade ebenfalls hinzugefügt werden.
[RS274NGC] SUBROUTINE_PATH = ~/linuxcnc/nc_files/examples/ngcgui_lib:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs
QtVCP muss wissen, von wo aus Unterprogramme geöffnet werden sollen.
Sie können auch Unterprogramme angeben, die in Tabs vorgeöffnet werden sollen.
[DISPLAY] # NGCGUI Unterprogramm Pfad. # Dieser Pfad muss auch in [RS274NGC] SUBROUTINE_PATH stehen 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
6.5.2. Buttons
-
NEW TAB - fügt eine neue leere Registerkarte zu NGCGUI hinzu
-
SELECT PREAMBLE - Wählen Sie eine Datei aus, die Präambel-G-Code enthält
-
SELECT SUBFILE - Wählen Sie eine NGCGUI-Unterprogrammdatei
-
SELECT POST - Wählen Sie eine Datei, die Post-G-Code hinzufügt
-
REREAD FILE - Erneutes Laden einer Unterprogrammdatei
-
CREATE FEATURE - Merkmal zur Liste hinzufügen
-
RESTART FEATURE - alle Features aus der Liste entfernen
-
FINALIZE GCODE - Erstellen Sie den vollständigen G-Code und senden Sie ihn an LinuxCNC/an eine Datei
6.5.3. Hinzufügen benutzerdefinierter Unterroutinen
Sie können Ihre eigenen Unterroutinen zur Verwendung mit NGCGUI erstellen. Sie müssen diese Regeln befolgen:
-
Um ein Unterprogramm für die Verwendung mit NGCGUI zu erstellen, müssen der Dateiname und der Name des Unterprogramms identisch sein.
-
Das Unterprogramm muss sich in einem Ordner innerhalb des INI-Suchpfades von LinuxCNC befinden.
-
In der ersten Zeile kann ein Kommentar des Typs info stehen:
-
Das Unterprogramm muss von den Tags
sub
undendsub
umgeben sein. -
Die verwendeten Variablen müssen nummerierte Variablen sein und dürfen keine Nummer überspringen.
-
Kommentare und Voreinstellungen können enthalten sein.
-
Wenn sich eine Bilddatei mit demselben Namen in dem Ordner befindet, wird sie angezeigt.
(info: feedrate -- einfaches Beispiel für die Einstellung der Vorschubgeschwindigkeit) o<feedrate> sub #<feedrate> = #1 (= 6 Feed Rate) ; Kommentare in Klammern werden in ngcui angezeigt f#<feedrate> o<feedrate> endsub
6.6. Qt PDF
Ermöglicht das Hinzufügen von ladbaren PDFs zu einem Bildschirm.
6.7. Qt Vismach
Verwenden Sie dies, um OpenGl simulierte Maschinen zu erstellen/hinzuzufügen.
6.8. Hal Selection Box
This widget is combobox that will allows selection of a pin or signal on the system.
from qtvcp.widgets.hal_selectionbox import HALSelectionBox def buildComboBox(self): # combo box for HAL pin selection combobox = HALSelectionBox() combobox.setShowTypes([combobox.PINS,combobox.SIGNALS]) combobox.setPinTypes([combobox.HAL_BIT], direction = [combobox.HAL_IN]) combobox.setSignalTypes([combobox.HAL_BIT], driven = [False,True]) combobox.hal_init() combobox.selectionUpdated.connect(lambda w: self.signalSelected(w)) def signalSelected(self, sig): print('Watching:',sig)
There are function calls
# set the list of types to show from: PINS SIGNALS combobox.setShowTypes([combobox.PINS]) # set the pin types to show: HAL_BIT,HAL_FLOAT,HAL_S32,HAL_U32 # and a list of directions: HAL_IN HAL_OUT combobox.setPinTypes(types=[combobox.HAL_BIT], direction = [HAL_IN]) # set the signal types to show: HAL_BIT,HAL_FLOAT,HAL_S32,HAL_U32 # and a list of driven/undriven (by a connected pin) to show combobox.setSignalTypes( types=[combobox.HAL_BIT], driven = [True,True])