From 7a98bcd5f05efd2eb80f1bdba4d829ab5ee08a8b Mon Sep 17 00:00:00 2001 From: Greg Carl <26096779+snowgoer540@users.noreply.github.com> Date: Thu, 24 Mar 2022 07:45:00 -0400 Subject: [PATCH 01/13] docs: remove bad unicode characters there are more in the .po files, as well as some of the language versions. I left those alone as to not mess with translation efforts, but can fix there too if needed. --- debian/copyright | 4 +- docs/man/man1/hal_parport.1 | 8 +- docs/src/code/code-notes.adoc | 6 +- docs/src/code/contributing-to-linuxcnc.adoc | 10 +- docs/src/code/style-guide.adoc | 2 +- docs/src/common/glossary.adoc | 2 +- docs/src/config/core-components.adoc | 4 +- docs/src/config/iov2.adoc | 6 +- docs/src/config/stepper.adoc | 4 +- docs/src/drivers/shuttle.adoc | 12 +- docs/src/gcode/g-code.adoc | 2 +- docs/src/gui/gladevcp.adoc | 2 +- docs/src/gui/image-to-gcode.adoc | 8 +- docs/src/gui/pyvcp.adoc | 2 +- docs/src/gui/tooledit.adoc | 2 +- docs/src/hal/canonical-devices.adoc | 4 +- docs/src/hal/general-ref.adoc | 20 +-- docs/src/hal/halmodule.adoc | 6 +- docs/src/hal/tools.adoc | 2 +- docs/src/integrator/steppers.adoc | 28 ++-- docs/src/integrator/wiring.adoc | 36 ++--- docs/src/motion/kinematics.adoc | 4 +- docs/src/motion/tweaking-steppers.adoc | 8 +- docs/src/plasma/plasma-cnc-primer.adoc | 56 +++---- .../woodpecker/images/QTvcp Widgets.html | 140 +++++++++--------- src/emc/usr_intf/pncconf/help.glade | 4 +- 26 files changed, 191 insertions(+), 191 deletions(-) diff --git a/debian/copyright b/debian/copyright index e91ad1475d..42a51aacd7 100644 --- a/debian/copyright +++ b/debian/copyright @@ -484,7 +484,7 @@ License: LGPL-2 with this program. If not, see . On Debian systems, the complete text of the GNU Lesser General Public - License version 2.1 can be found in ‘/usr/share/common-licenses/LGPL-2’. + License version 2.1 can be found in '/usr/share/common-licenses/LGPL-2'. License: LGPL-2.1+ This program is free software; you can redistribute it and/or modify @@ -501,7 +501,7 @@ License: LGPL-2.1+ with this program. If not, see . On Debian systems, the complete text of the GNU Lesser General Public - License version 2.1 can be found in ‘/usr/share/common-licenses/LGPL-2.1’. + License version 2.1 can be found in '/usr/share/common-licenses/LGPL-2.1'. License: MIT Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/docs/man/man1/hal_parport.1 b/docs/man/man1/hal_parport.1 index 1437258fab..628b8f1c0a 100644 --- a/docs/man/man1/hal_parport.1 +++ b/docs/man/man1/hal_parport.1 @@ -90,17 +90,17 @@ The following lists the input and output pins by the type setting used in the cf Reads physical input pins of all ports and updates HAL \-in and \-in\-not pins. .TP \fBparport.

.write (funct) -Reads HAL \-out pins of port

and updates that port’s physical output pins. +Reads HAL \-out pins of port

and updates that port's physical output pins. .TP \fBparport.write\-all (funct) Reads HAL \-out pins of all ports and updates all physical output pins. .TP \fBparport.

.reset (funct) -Waits until \fIreset\-time \fRhas elapsed since the associated write, then resets pins to values indicated by \fI\-out\-reset \fRand \fI\-out\-invert \fRsettings. reset must be later in the same thread as write. 'If '\fI\-out\-reset \fRis TRUE, then the reset function will set the pin to the value of \fI\-out\-invert\fR. This can be used in conjunction with stepgen’s doublefreq to produce one step per period. The stepgen stepspace for that pin must be set to 0 to enable doublefreq. +Waits until \fIreset\-time \fRhas elapsed since the associated write, then resets pins to values indicated by \fI\-out\-reset \fRand \fI\-out\-invert \fRsettings. reset must be later in the same thread as write. 'If '\fI\-out\-reset \fRis TRUE, then the reset function will set the pin to the value of \fI\-out\-invert\fR. This can be used in conjunction with stepgen's doublefreq to produce one step per period. The stepgen stepspace for that pin must be set to 0 to enable doublefreq. .SH USAGE The hal_parport component is a driver for the traditional PC parallel port. The port has a total of 25 physical pins of which 17 are used for signals. The original parallel port divided those pins into three groups: data, control, and status. The data group consists of 8 output pins, the control group consists of 4 output pins, and the status group consists of 5 input pins. -In the early 1990’s, the bidirectional parallel port was introduced, which allows the data group to be used for output or input. The HAL driver supports the bidirectional port, and allows the user to set the data group as either input or output. If configured as \fIout\fR, a port provides a total of 12 outputs and 5 inputs. If configured as \fIin\fR, it provides 4 outputs and 13 inputs. +In the early 1990's, the bidirectional parallel port was introduced, which allows the data group to be used for output or input. The HAL driver supports the bidirectional port, and allows the user to set the data group as either input or output. If configured as \fIout\fR, a port provides a total of 12 outputs and 5 inputs. If configured as \fIin\fR, it provides 4 outputs and 13 inputs. In some parallel ports, the control group pins are open collectors, which may also be driven low by an external gate. On a board with open collector control pins, if configured as \fIx\fR, it provides 8 outputs, and 9 inputs. @@ -147,7 +147,7 @@ For each parallel port handled by the hal_parport driver, a type can optionally If the type is not specified, the default is out. -A type of epp is the same as out, but the hal_parport driver requests that the port switch into EPP mode. The hal_parport driver does not use the EPP bus protocol, but on some systems EPP mode changes the electrical characteristics of the port in a way that may make some marginal hardware work better. The Gecko G540’s charge pump is known to require this on some parallel ports. +A type of epp is the same as out, but the hal_parport driver requests that the port switch into EPP mode. The hal_parport driver does not use the EPP bus protocol, but on some systems EPP mode changes the electrical characteristics of the port in a way that may make some marginal hardware work better. The Gecko G540's charge pump is known to require this on some parallel ports. See the Note above about mode x. .TP diff --git a/docs/src/code/code-notes.adoc b/docs/src/code/code-notes.adoc index d744d31939..363fb1aa93 100644 --- a/docs/src/code/code-notes.adoc +++ b/docs/src/code/code-notes.adoc @@ -26,7 +26,7 @@ very much a work in progress, and its layout may change in the future. orientation. A second set of linear orthogonal coordinates U, V, and W allows tool motion (typically for cutting actions) relative to the previously offset and rotated axes. - Unfortunately “axis” is also + Unfortunately "axis" is also sometimes used to mean a degree of freedom of the machine itself, such as the saddle, table, or quill of a Bridgeport type milling machine. On a Bridgeport this causes no confusion, since movement of the table @@ -968,8 +968,8 @@ any one buffer is unclear from existing documentation and from the original source code. Allowing unspecified multiple processes to connect to a buffer is no more difficult to implement. -The mutex types boil down to one of two, the default “os_sem” or “mao -split”. Most of the NML messages are relatively short and can be copied +The mutex types boil down to one of two, the default "os_sem" or "mao +split". Most of the NML messages are relatively short and can be copied to or from the buffer with minimal delays, so split reads are not essential. diff --git a/docs/src/code/contributing-to-linuxcnc.adoc b/docs/src/code/contributing-to-linuxcnc.adoc index 98c3dbcf28..3886c8975a 100644 --- a/docs/src/code/contributing-to-linuxcnc.adoc +++ b/docs/src/code/contributing-to-linuxcnc.adoc @@ -194,8 +194,8 @@ third commit, add a new feature which is made easier by the refactoring and which would not have worked without fixing that bug. This is helpful to reviewers, because it is easier to see that the -"factor out code into new function" step was right when there aren’t -other edits mixed in; it’s easier to see that the bug is fixed when +"factor out code into new function" step was right when there aren't +other edits mixed in; it's easier to see that the bug is fixed when the change that fixes it is separate from the new feature; and so on. === Follow the style of the surrounding code @@ -207,9 +207,9 @@ done, do it as a commit separate from any semantic changes. === Simplify complicated history before sharing with fellow developers -With git, it’s possible to record every edit and false start as a +With git, it's possible to record every edit and false start as a separate commit. This is very convenient as a way to create checkpoints -during development, but often you don’t want to share these false +during development, but often you don't want to share these false starts with others. Git provides two main ways to clean history, both of which can be done @@ -218,7 +218,7 @@ freely before you share the change: `git commit --amend` lets you make additional changes to the last thing you committed, optionally modifying the commit message as well. Use this if you realized right away that you left something out of the commit, -or if you typo’d the commit message. +or if you typo'd the commit message. `git rebase --interactive upstream-branch` lets you go back through each commit made since you forked your feature branch from the upstream branch, diff --git a/docs/src/code/style-guide.adoc b/docs/src/code/style-guide.adoc index 6479dea27b..7137a1a467 100644 --- a/docs/src/code/style-guide.adoc +++ b/docs/src/code/style-guide.adoc @@ -10,7 +10,7 @@ When making small edits to code in a style different than the one described below, observe the local coding style. Rapid changes from one coding style to another decrease code readability. -Never check in code after running “indent” on it. The whitespace +Never check in code after running "indent" on it. The whitespace changes introduced by indent make it more difficult to follow the revision history of the file. diff --git a/docs/src/common/glossary.adoc b/docs/src/common/glossary.adoc index 59be9a911a..9b2c01e33b 100644 --- a/docs/src/common/glossary.adoc +++ b/docs/src/common/glossary.adoc @@ -159,7 +159,7 @@ Feedrate Override:: (((feedrate override))) A manual, operator controlled change in the rate at which the tool moves while cutting. Often used to allow the operator to adjust for tools that are a little dull, or - anything else that requires the feed rate to be “tweaked”. + anything else that requires the feed rate to be "tweaked". Floating Point Number:: A number that has a decimal point. (12.300) In HAL it is known as float. diff --git a/docs/src/config/core-components.adoc b/docs/src/config/core-components.adoc index 1890c0ea9a..f83b51ceab 100644 --- a/docs/src/config/core-components.adoc +++ b/docs/src/config/core-components.adoc @@ -9,7 +9,7 @@ See also the man pages 'motion(9)'. == Motion These pins and parameters are created by the realtime 'motmod' module. -This module provides a HAL interface for LinuxCNC’s motion planner. +This module provides a HAL interface for LinuxCNC's motion planner. Basically motmod takes in a list of waypoints and generates a nice blended and constraint-limited stream of joint positions to be fed to the motor drives. @@ -381,7 +381,7 @@ See the motion man page 'motion(9)' for details on the pins and parameters. == iocontrol -iocontrol − accepts NML I/O commands, interacts with HAL in userspace. +iocontrol - accepts NML I/O commands, interacts with HAL in userspace. The signals are turned on and off in userspace - if you have strict timing requirements or simply need more i/o, consider using the realtime diff --git a/docs/src/config/iov2.adoc b/docs/src/config/iov2.adoc index b6767b2255..dcc4b42810 100644 --- a/docs/src/config/iov2.adoc +++ b/docs/src/config/iov2.adoc @@ -150,11 +150,11 @@ Additional pins added by I/O Control V2 == Parameters -* iocontrol.0.tool-prep-index (s32, RO) IO’s internal array index of the prepped +* iocontrol.0.tool-prep-index (s32, RO) IO's internal array index of the prepped tool requested by the most recent T-word. 0 if no tool is prepped. On random - toolchanger machines this is tool’s pocket number (ie, the same as the + toolchanger machines this is tool's pocket number (ie, the same as the tool-prep-pocket pin), on non-random toolchanger machines this is a small - integer corresponding to the tool’s location in the internal representation of + integer corresponding to the tool's location in the internal representation of the tool table. This parameter returns to 0 after a successful tool change M6. == Communications diff --git a/docs/src/config/stepper.adoc b/docs/src/config/stepper.adoc index b636d6dc3c..79ff29e2a7 100644 --- a/docs/src/config/stepper.adoc +++ b/docs/src/config/stepper.adoc @@ -198,7 +198,7 @@ same pin. === Changing polarity of a signal -If external hardware expects an “active low” signal, set the +If external hardware expects an "active low" signal, set the corresponding '-invert' parameter. For instance, to invert the spindle control signal: @@ -218,7 +218,7 @@ addf pwmgen.make-pulses base-thread net spindle-speed-cmd spindle.0.speed-out => pwmgen.0.value net spindle-on spindle.0.on => pwmgen.0.enable net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out -setp pwmgen.0.scale 1800 # Change to your spindle’s top speed in RPM +setp pwmgen.0.scale 1800 # Change to your spindle's top speed in RPM ---- This assumes that the spindle controller's response to PWM is simple: diff --git a/docs/src/drivers/shuttle.adoc b/docs/src/drivers/shuttle.adoc index a345a38749..cb6b43db9e 100644 --- a/docs/src/drivers/shuttle.adoc +++ b/docs/src/drivers/shuttle.adoc @@ -5,8 +5,8 @@ == Description -Shuttle is a non-realtime HAL component that interfaces Contour Design’s -ShuttleXpress, ShuttlePRO, and ShuttlePRO2 devices with LinuxCNC’s HAL. +Shuttle is a non-realtime HAL component that interfaces Contour Design's +ShuttleXpress, ShuttlePRO, and ShuttlePRO2 devices with LinuxCNC's HAL. If the driver is started without command-line arguments, it will probe all /dev/hidraw* device files for Shuttle devices, and use all devices @@ -30,7 +30,7 @@ returns to center when released. The Shuttle devices have an internal 8-bit counter for the current jog-wheel position. The shuttle driver can not know this value until the Shuttles device sends its first event. When the first event comes into -the driver, the driver uses the device’s reported jog-wheel position +the driver, the driver uses the device's reported jog-wheel position to initialize counts to 0. This means that if the first event is generated by a jog-wheel move, @@ -84,13 +84,13 @@ of the device (the order in which the driver found them), for example '.spring-wheel-s32' (s32 out):: The current deflection of the spring-wheel (the outer wheel). - It’s 0 at rest, and ranges from -7 at the counter-clockwise extreme + It's 0 at rest, and ranges from -7 at the counter-clockwise extreme to +7 at the clockwise extreme. '.spring-wheel-f' (float out):: The current deflection of the spring-wheel (the outer wheel). - It’s 0.0 at rest, -1.0 at the counter-clockwise extreme, and +1.0 at + It's 0.0 at rest, -1.0 at the counter-clockwise extreme, and +1.0 at the clockwise extreme. (The Shuttle devices report the spring-wheel position as an integer from -7 to +7, so this pin reports only 15 - discrete values in it’s range.) + discrete values in it's range.) diff --git a/docs/src/gcode/g-code.adoc b/docs/src/gcode/g-code.adoc index 573ddb974e..6282254e02 100644 --- a/docs/src/gcode/g-code.adoc +++ b/docs/src/gcode/g-code.adoc @@ -610,7 +610,7 @@ G7 Program G7 to enter the diameter mode for axis X on a lathe. When in the diameter mode the X axis moves on a lathe will be 1/2 the distance to the center of the lathe. For example X1 would move the cutter to -0.500” from the center of the lathe thus giving a 1” diameter part. +0.500" from the center of the lathe thus giving a 1" diameter part. [[gcode:g8]] == G8 Lathe Radius Mode(((G8 Lathe Radius Mode))) diff --git a/docs/src/gui/gladevcp.adoc b/docs/src/gui/gladevcp.adoc index 725b1a299d..23025f4925 100644 --- a/docs/src/gui/gladevcp.adoc +++ b/docs/src/gui/gladevcp.adoc @@ -2852,7 +2852,7 @@ may be specified using the exported environmental variable: GLADEVCP_EXTRAS. This variable should be a path list of one or more configuration directories separated by a (:). Typically, this variable would be set in a shell starting linuxcnc or in -a user’s ~/.profile startup script. Example: +a user's ~/.profile startup script. Example: ==== export GLADEVCP_EXTRAS=~/mygladevcp:/opt/othergladevcp diff --git a/docs/src/gui/image-to-gcode.adoc b/docs/src/gui/image-to-gcode.adoc index 27162c5e3e..510caf3dd9 100644 --- a/docs/src/gui/image-to-gcode.adoc +++ b/docs/src/gui/image-to-gcode.adoc @@ -52,8 +52,8 @@ G-code and as the units for each option labeled '(units)'. === Invert Image -If “no”, the black pixel is the lowest point and the white pixel is -the highest point. If “yes”, the black pixel is the highest point and +If "no", the black pixel is the lowest point and the white pixel is +the highest point. If "yes", the black pixel is the highest point and the white pixel is the lowest point. === Normalize Image @@ -144,8 +144,8 @@ The shape of the cutting part of the tool. Possible tool shapes are: - Ball End - Flat End - - 45 degree “vee” - - 60 degree “vee” + - 45 degree "vee" + - 60 degree "vee" === Lace bounding diff --git a/docs/src/gui/pyvcp.adoc b/docs/src/gui/pyvcp.adoc index ef2e7a3449..43a69df555 100644 --- a/docs/src/gui/pyvcp.adoc +++ b/docs/src/gui/pyvcp.adoc @@ -1039,7 +1039,7 @@ A table is a container that allows layout in a grid of rows and columns. Each row is started by a '' tag. A contained widget may span rows or columns through the use of the '' tag. The sides of the cells to which -the contained widgets “stick” +the contained widgets "stick" may be set through the use of the '' tag. A table expands on its flexible rows and columns. diff --git a/docs/src/gui/tooledit.adoc b/docs/src/gui/tooledit.adoc index 6ac73655e2..e641ac508e 100644 --- a/docs/src/gui/tooledit.adoc +++ b/docs/src/gui/tooledit.adoc @@ -69,7 +69,7 @@ TOOL_EDITOR = tooledit Z DIAM ---- .Résultat obtenu -image::images/tooledit-columns_fr.png["Éditeur graphique de table d’outils - Choix des colonnes",align="left"] +image::images/tooledit-columns_fr.png["Éditeur graphique de table d'outils - Choix des colonnes",align="left"] == Stand Alone Use The 'tooledit' program can also be invoked as a standalone diff --git a/docs/src/hal/canonical-devices.adoc b/docs/src/hal/canonical-devices.adoc index 0305fb6baf..d05ce2c576 100644 --- a/docs/src/hal/canonical-devices.adoc +++ b/docs/src/hal/canonical-devices.adoc @@ -6,7 +6,7 @@ == Introduction The following sections show the pins, parameters, and functions that -are supplied by “canonical devices”. All HAL device drivers should +are supplied by "canonical devices". All HAL device drivers should supply the same pins and parameters, and implement the same behavior. Note that the only the `` and `` fields are @@ -112,7 +112,7 @@ converters or PWM generators. (funct) *write* -- This causes the calculated value to be output to the hardware. If enable is false, then the output will be 0, regardless of *value*, *scale*, and *offset*. -The meaning of “0” is dependent on the hardware. For example, a +The meaning of "0" is dependent on the hardware. For example, a bipolar 12-bit A/D may need to write 0x1FF (mid scale) to the D/A get 0 volts from the hardware pin. If enable is true, read scale, offset and value and output to the adc (*scale* * *value*) + *offset*. If enable diff --git a/docs/src/hal/general-ref.adoc b/docs/src/hal/general-ref.adoc index 086e142070..7ce6cad6f1 100644 --- a/docs/src/hal/general-ref.adoc +++ b/docs/src/hal/general-ref.adoc @@ -27,11 +27,11 @@ level tools can be designed to recognize such structure, if the names provide the necessary information. To do that, all HAL components should follow these rules: - - Dots (“.”) separate levels of the hierarchy. - This is analogous to the slash (“/”) in a filename. - - Hyphens (“-”) separate words or fields in the same level of the hierarchy. - - HAL components should not use underscores or “MixedCase”. - - Use only lowercase letters and numbers in names. + - Dots (".") separate levels of the hierarchy. + This is analogous to the slash ("/") in a filename. + - Hyphens ("-") separate words or fields in the same level of the hierarchy. + - HAL components should not use underscores or "MixedCase". + - Use only lowercase letters and numbers in names. == Hardware Driver Naming Conventions @@ -71,20 +71,20 @@ The individual fields are: Virtually every I/O device has multiple channels, and the channel number identifies one of them. Like device numbers, channel numbers start at zero and increment.footnote:[One exception to the - “channel numbers start at zero” rule is + "channel numbers start at zero" rule is the parallel port. Its HAL pins are numbered with the corresponding pin number on the DB-25 connector. This is convenient for wiring, but inconsistent with other drivers. There is some debate over whether this - is a bug or a feature.] + is a bug or a feature.] If more than one device is installed, the channel numbers on additional devices start over at zero. If it is possible to have a channel number greater than 9, then channel numbers should be two digits, with a leading zero on numbers less than 10 to preserve sort ordering. Some modules have pins and/or parameters that affect more than one channel. For example a PWM generator might have four channels - with four independent “duty-cycle” inputs, but one “frequency” + with four independent "duty-cycle" inputs, but one "frequency" parameter that controls all four channels (due to hardware - limitations). The frequency parameter should use “0-3” as the channel + limitations). The frequency parameter should use "0-3" as the channel number. :: @@ -93,7 +93,7 @@ The individual fields are: two pins, one is the state of the physical pin, the other is the same thing inverted. That allows the configurator to choose between active high and active low inputs. For most io-types, there is a standard set - of pins and parameters, (referred to as the “canonical interface”) that + of pins and parameters, (referred to as the "canonical interface") that the driver should implement. The canonical interfaces are described in the <> chapter. diff --git a/docs/src/hal/halmodule.adoc b/docs/src/hal/halmodule.adoc index e8f3fb4f90..7eb760dd92 100644 --- a/docs/src/hal/halmodule.adoc +++ b/docs/src/hal/halmodule.adoc @@ -55,7 +55,7 @@ halcmd: show pin == Userspace components and delays -If you typed “show pin” quickly, you may see that 'passthrough.out' +If you typed "show pin" quickly, you may see that 'passthrough.out' still had its old value of 0. This is because of the call to 'time.sleep(1)', which makes the assignment to the output pin occur at most once per second. Because this is a userspace component, the actual @@ -425,10 +425,10 @@ This shows ways to get the pin value and information. microcontroller to the PC using a serial interface. Python has a very capable serial interface module called http://pyserial.sourceforge.net/[pyserial] - (Ubuntu package name “python-serial”, in the universe repository) + (Ubuntu package name "python-serial", in the universe repository) * Attach a http://lcdproc.omnipotent.net/[LCDProc]-compatible LCD module and use it to display a digital readout with information of your choice - (Ubuntu package name “lcdproc”, in the universe repository) + (Ubuntu package name "lcdproc", in the universe repository) * Create a virtual control panel using any GUI library supported by Python (gtk, qt, wxwindows, etc) diff --git a/docs/src/hal/tools.adoc b/docs/src/hal/tools.adoc index c56d37d477..1d56c6e5cd 100644 --- a/docs/src/hal/tools.adoc +++ b/docs/src/hal/tools.adoc @@ -15,7 +15,7 @@ provides usage info: man halcmd ---- -If you have compiled LinuxCNC for “run-in-place”, you must source +If you have compiled LinuxCNC for "run-in-place", you must source the rip-environment script to make the man page available: ---- diff --git a/docs/src/integrator/steppers.adoc b/docs/src/integrator/steppers.adoc index 9d21512def..13e4dc5c14 100644 --- a/docs/src/integrator/steppers.adoc +++ b/docs/src/integrator/steppers.adoc @@ -6,8 +6,8 @@ == Stepper Motor Operation Stepper motors operate by sequentially energising and de-energising several coils surrounding the rotor in such a -way that the shaft is magnetically forced to rotate around in discrete steps. Steps of 0.9 – 1.8 degrees are quite -common, giving 400 – 200 steps per full revolution of the shaft. +way that the shaft is magnetically forced to rotate around in discrete steps. Steps of 0.9 - 1.8 degrees are quite +common, giving 400 - 200 steps per full revolution of the shaft. As in real life, nothing can change from one state to another with absolutely no time delay. In the case of the stepper motor, the current passing through each coil, and thus the magnetic field that pulls the rotor around to @@ -17,7 +17,7 @@ current. More coil inductance results in a slower rate of current change and thu expansion and contraction. The maximum torque that the stepper motor can achieve is when the motor is stationary with one winding energised. -This figure may be quoted on a stepper motor datasheet as the ‘holding torque’. As the rate at which each coil is +This figure may be quoted on a stepper motor datasheet as the 'holding torque'. As the rate at which each coil is energised and de-energised increases to induce rotation in the shaft, the time that each coil can exert its full magnetic attraction on the rotor reduces, thereby reducing the overall torque. This relationship between speed and torque is largely inversely proportional. @@ -29,7 +29,7 @@ trace), and the 8mH (red trace) coil takes twice as long again: image::images/inductance-step-response.png[align="center"] -If the rate at which step changes are applied to the coils is significantly shorter than the rise time, it’s easy +If the rate at which step changes are applied to the coils is significantly shorter than the rise time, it's easy to see that the winding has less time to attain full magnetic attraction on the rotor, and thus maximum torque is curtailed. In the below example the 2mH coil can achieve the full 5A limit before the step voltage is removed, but the 4mH and 8mH coils cannot: @@ -61,7 +61,7 @@ by monitoring the current being drawn through the motor windings and rapidly swi very high frequency to maintain this current. Depending on the drivers being used, it may even be possible to hear this high frequency whistling in the motors themselves when stationary. Because the voltage is rapidly switched on and off to maintain the winding current at an approximate fixed value, these types of drivers are also known as -‘chopper drive’. +'chopper drive'. == Selecting a Stepper Power Supply @@ -85,13 +85,13 @@ not result in a corresponding improvement in speed/torque by the same degree. If running a stepper motor at 64VDC, this may help in narrowing down the proposed power supply to 32VDC which will also help minimise excessive heat rise in the motor windings. -The other factor to consider is the current rating of the power supply. This is based from the motor’s winding +The other factor to consider is the current rating of the power supply. This is based from the motor's winding current ratings and whether the motor windings are wired in series or parallel, both of which should be listed in -the motor’s datasheet. A good rule of thumb is to size the power supply current rating at 2/3 of the rated phase +the motor's datasheet. A good rule of thumb is to size the power supply current rating at 2/3 of the rated phase current of the stepper motor if the windings are in parallel, or 1/3 of the rated current if wired in series. Thus, for a stepper motor rated at 4A wired in parallel, the power supply needs to have a current rating of at least 2.7A, or 1.3A if wired in series. The total current rating of the complete system is then the sum of all -stepper motors’ current requirements. +stepper motors' current requirements. == Resonance @@ -99,7 +99,7 @@ Motor resonance occurs when the rate at which the steps are applied to the windi of the motor itself. Applying steps for a prolonged period of time at this rate results in the torque dropping dramatically, and the motor may stall or even rotate in random directions. Some stepper motor datasheets provide plots of the torque/speed relationship and show a dip in the graph where resonance is likely to occur. It should -be noted that this resonant peak provided in the datasheet is only for the motor itself – as soon as the motor is +be noted that this resonant peak provided in the datasheet is only for the motor itself - as soon as the motor is coupled to other components (ie, installed in a CNC system) the resonant frequency may be altered, or even multiple new resonances introduced. @@ -128,7 +128,7 @@ whole steps that motor is manufactured to perform at (eg, 200 steps per revoluti As each winding is energised the rotor clocks around fully from one detent to the next. Additional rotational resolution from a stepper motor can be obtained by performing microstepping, whereby the -current being driven into each winding can essentially be ‘ramped’ in discrete intermediate steps. This then +current being driven into each winding can essentially be 'ramped' in discrete intermediate steps. This then causes the rotor to gradually straddle across each rotational detent rather than making the full jump from one step to the next. @@ -165,16 +165,16 @@ obtain the necessary resolution and torque gains. In the simplest CNC systems employing stepper motors, the host computer and/or stepper driver receives no feedback from the motor that it has achieved the desired outcome when commanded to begin stepping. The assumption by the software, driver and end user is that the motor operated correctly and the axis has moved to the expected new -position. A system operating in this fashion is said to be running in ‘open loop’, where the device at the end of +position. A system operating in this fashion is said to be running in 'open loop', where the device at the end of the signal chain (the stepper motor) does not provide any indication to the device at the start of the chain (the computer) that the target was reached. -A further enhancement to the basic stepper motor is to run the system in a ‘closed loop’. This is achieved by +A further enhancement to the basic stepper motor is to run the system in a 'closed loop'. This is achieved by equipping the stepper motor with a rotary encoder whose positional signal is returned back to a device higher up -in the signal chain. In this way the motors’ actual position can be compared to the expected position at all +in the signal chain. In this way the motors' actual position can be compared to the expected position at all times, and the drive parameters adjusted in real time to ensure that the motor does not fall behind. This enables closed loop stepper systems to be able to achieve better speed and torque performance than open loop systems, due -to the system constantly compensating for any deviation to the stepper’s performance under varying loads. +to the system constantly compensating for any deviation to the stepper's performance under varying loads. Basic systems operating in this fashion may only close the loop between the motor and the driver, leaving the software on the host computer out of the loop. The software issues step/direction pulses to the downstream driver diff --git a/docs/src/integrator/wiring.adoc b/docs/src/integrator/wiring.adoc index fef7bde1a7..a6d545066b 100644 --- a/docs/src/integrator/wiring.adoc +++ b/docs/src/integrator/wiring.adoc @@ -62,8 +62,8 @@ amount of current it carries have a bearing on the choice of wire to be used. Th recycled CAT5 ethernet cable is insufficient to withstand the voltages that can appear at the output terminals of a Variable Frequency Drive, nor is the cross sectional area of the conductor sufficient to carry several amps of current without overheating and potentially causing a fire. Conversely, while it is perfectly permissible to wire a -limit switch circuit using 2.5 sqmm cable, it creates needless bulk in the wiring loom. Consult any manufacturer’s -documentation and your local country’s electrical wiring codes for minimum suggested wire gauges for power and +limit switch circuit using 2.5 sqmm cable, it creates needless bulk in the wiring loom. Consult any manufacturer's +documentation and your local country's electrical wiring codes for minimum suggested wire gauges for power and control requirements. === Shielded Wire @@ -74,9 +74,9 @@ are trying to combat. .Foil Shielded Wire -Foil shielded wire has a thin aluminium or copper foil that is usually bonded to a film of plastic that surrounds +Foil shielded wire has a thin aluminum or copper foil that is usually bonded to a film of plastic that surrounds the wire. The enclosed wire is usually 100% covered. Attaching the foil to earth can be difficult, especially if -the foil is constructed from aluminium or laminated to a plastic backing material. For this reason, it is +the foil is constructed from aluminum or laminated to a plastic backing material. For this reason, it is usual to find a bare metal stranded wire enclosed inside the cable which is in contact with the foil for the full length of the cable. This is called the drain wire and is used to make the connection to earth with. @@ -86,7 +86,7 @@ Braided shielded wire has a woven copper braid that surrounds the wire. It is mo provide 100% coverage, but is more flexible than foil shielded types. Coverage is typically 70% to 95% depending on how tight the braid has been constructed. Despite the lower coverage of braided shield, the effectiveness is greater than foil shielding due to the increased bulk of the braid, and copper being a better conductor than -aluminium. +aluminum. For very noisy environments, a further subset of the above two shielding methodologies may be employed, whereby both braid and foil shielding is used simultaneously. Individual wires in a multi-conductor cable may also be shielded @@ -107,7 +107,7 @@ also help minimise any potential sources of mains-borne interference. [NOTE] Be aware that in many countries, the installation and alteration of mains circuits can only be carried out by -licenced electricians. +licensed electricians. == Power Supply Units @@ -134,7 +134,7 @@ for your country, and the conduction of other unrelated signals in that same wir Commoning of a DC PSU is somewhat dependent on the electrical operating requirements of the CNC system. For example, a stepper motor driver operating with a 24VDC motor supply and a 5V logic supply may have optically-isolated signal -input lines which provide complete electrical separation of the driver’s input and output circuitry for safety and +input lines which provide complete electrical separation of the driver's input and output circuitry for safety and noise immunity purposes. Tying the stepper motor and logic control supply commons together in this case may have a detrimental impact on the operation of the system. @@ -155,13 +155,13 @@ DC commons are tied where is usually taken out of the hands of the end user. == DC Supply Feeds In situations where a DC circuit is run with the common point disconnected from the mains earth (ie, the supply is -‘floating’), it can be helpful to run DC supplies using twisted pairs of wires, whereby each pair of wires in the +'floating'), it can be helpful to run DC supplies using twisted pairs of wires, whereby each pair of wires in the circuit (eg, the positive and negative leads) is physically twisted together in a helix pattern. The twist in the -wire allows both conductors to share the same ‘real estate’ as closely as possible. Any EMI that passes across -them will therefore be largely cancelled as both conductors will receive the same degree of EMI. For additional +wire allows both conductors to share the same 'real estate' as closely as possible. Any EMI that passes across +them will therefore be largely canceled as both conductors will receive the same degree of EMI. For additional protection use twisted wire that is housed in a shielded jacket with the shield terminated to mains earth. -Note however that twisted pairs of wires are less effective at combatting the effects of EMI if one of the two +Note however that twisted pairs of wires are less effective at combating the effects of EMI if one of the two wires is referenced to mains earth, as the conductor at earth potential is less able to be influenced by EMI than the un-earthed conductor. In these instances the twisting of the wires has less of an impact on the overall noise immunity, and shielded cable will be intrinsically more effective at reducing noise pickup. @@ -173,7 +173,7 @@ controller inputs, axis limit switches etc) are the most susceptible to noise in the low level voltages that are used to convey the information. When a limit or home switch is engaged, or a tool probe has made or broken contact, this signal is used to signify the event has taken place. Typically this is done by using input pins on the computer interface card or parallel port which, dependent on the application, may be -signalled using as little as 3.3V. Evidently a 2V noise spike has the potential to corrupt the validity of a +signaled using as little as 3.3V. Evidently a 2V noise spike has the potential to corrupt the validity of a signal if the useful range is only 0-3.3V. If possible, isolate the common point of the PSU supplying the logic peripherals from the rest of the system. @@ -181,12 +181,12 @@ For example, keeping the common of the low voltage power supply isolated from th supply will reduce the chances of large currents flowing in the stepper motor return line contaminating the common of the low voltage supply. -If the controller uses differential signalling, use twisted pairs to carry the signal. Shielded cable is preferred +If the controller uses differential signaling, use twisted pairs to carry the signal. Shielded cable is preferred when the control lines are single-ended, or if the distances traversed are long or through electrically hostile environments. When grounding the shield in the cable, terminate to the mains earth. If the controller and interfacing devices can withstand higher control signals, consider altering the wiring and -power supply requirements to use a bigger voltage for signalling (eg, 12V or 24V). The same 2V EMI noise spike +power supply requirements to use a bigger voltage for signaling (eg, 12V or 24V). The same 2V EMI noise spike that could corrupt a 3.3V limit switch signal will be far less likely to cause issues with a limit switch operating with a 24V signal. @@ -207,7 +207,7 @@ shield on the output lines reduces the amount of noise they can radiate. If at all possible the Variable Frequency Drive (VFD) should be mounted in a separate enclosure or cabinet to reduce the risk of it radiating noise into adjacent wiring. If the VFD enclosure is metallic it must be earthed as per any -recommendations in the manufacturer’s documentation. +recommendations in the manufacturer's documentation. Because the VFD is a high power, high frequency electronic switching device, the output is notoriously prone to EMI radiation, and it is advisable to run the VFD output to the connected motor in a shielded cable, with the @@ -219,7 +219,7 @@ shield terminated to mains earth. Any wire that will be moved about during normal operation of the CNC falls into this category. For example, wires running from stepper drivers through a cable management system (drag chains) and then to the stepper motors -mounted on a moveable gantry. Cables and wires operating in these circumstances should be rated for extra +mounted on a movable gantry. Cables and wires operating in these circumstances should be rated for extra flexibility. This precludes the use of solid-core wires and cables, as the constant flexing will lead to fatigue and eventual failure of the conductors. @@ -246,8 +246,8 @@ possible while wiring between two points. Very few mechanical switches (eg, an axis limit switch or tool probe input) will close or open perfectly when operated. More often than not the switch contacts will physically bounce against each other several times within a very short space of time when operated. This may be interpreted by the machine controller as multiple operations -of the same signal when in reality only one clean state change was expected. Sometimes it doesn’t matter, but in -many circumstances it is desirable to ensure that any state change is as ‘clean’ as possible and does not +of the same signal when in reality only one clean state change was expected. Sometimes it doesn't matter, but in +many circumstances it is desirable to ensure that any state change is as 'clean' as possible and does not interfere with the operation of the machine. This is accomplished by debouncing. Debouncing is achieved by permitting a state change on a mechanical switch to only register with the controller diff --git a/docs/src/motion/kinematics.adoc b/docs/src/motion/kinematics.adoc index 2256c054b0..ff02402b4b 100644 --- a/docs/src/motion/kinematics.adoc +++ b/docs/src/motion/kinematics.adoc @@ -14,7 +14,7 @@ all) use a common coordinate system called the Cartesian Coordinate System. The Cartesian Coordinate system is composed of three axes (X, Y, Z) each -perpendicular to the other two. footnote:[The word “axes” is also +perpendicular to the other two. footnote:[The word "axes" is also commonly (and wrongly) used when talking about CNC machines, and referring to the moving directions of the machine.] @@ -279,7 +279,7 @@ return 0; == Implementation details A kinematics module is implemented as a HAL component, and is -permitted to export pins and parameters. It consists of several “C” +permitted to export pins and parameters. It consists of several "C" functions (as opposed to HAL functions): ---- diff --git a/docs/src/motion/tweaking-steppers.adoc b/docs/src/motion/tweaking-steppers.adoc index cf10b881b5..49e8871d4a 100644 --- a/docs/src/motion/tweaking-steppers.adoc +++ b/docs/src/motion/tweaking-steppers.adoc @@ -72,16 +72,16 @@ for) the data sheet that has your drive's specs. From the Gecko G202 manual: .... Step Frequency: 0 to 200 kHz -Step Pulse “0” Time: 0.5 us min (Step on falling edge) -Step Pulse “1” Time: 4.5 us min +Step Pulse "0" Time: 0.5 us min (Step on falling edge) +Step Pulse "1" Time: 4.5 us min Direction Setup: 1 us min (20 us min hold time after Step edge) .... From the Gecko G203V manual: .... Step Frequency: 0 to 333 kHz -Step Pulse “0” Time: 2.0 us min (Step on rising edge) -Step Pulse “1” Time: 1.0 us min +Step Pulse "0" Time: 2.0 us min (Step on rising edge) +Step Pulse "1" Time: 1.0 us min Direction Setup: 200 ns (0.2 us) before step pulse rising edge diff --git a/docs/src/plasma/plasma-cnc-primer.adoc b/docs/src/plasma/plasma-cnc-primer.adoc index bed813f917..a3ff20217c 100644 --- a/docs/src/plasma/plasma-cnc-primer.adoc +++ b/docs/src/plasma/plasma-cnc-primer.adoc @@ -24,10 +24,10 @@ This start type is widely employed, and has been around the longest. Although it === Blowback Start -This start type uses air pressure supplied to the cutter to force a small piston or cartridge inside the torch head back to create a small spark between the inside surface of the consumable, ionising the air, and creating a small plasma flame. This also creates a “pilot arc” that provides a plasma flame that stays on, whether in contact with the metal or not. This is a very good start type that is now used by several manufacturers. It’s advantage is that it requires somewhat less circuitry, is a fairly reliable and generates far less electrical noise +This start type uses air pressure supplied to the cutter to force a small piston or cartridge inside the torch head back to create a small spark between the inside surface of the consumable, ionising the air, and creating a small plasma flame. This also creates a "pilot arc" that provides a plasma flame that stays on, whether in contact with the metal or not. This is a very good start type that is now used by several manufacturers. It's advantage is that it requires somewhat less circuitry, is a fairly reliable and generates far less electrical noise -For entry level air plasma CNC systems, the blowback style is much preferred to minimise electrical interference with electronics and standard PCs but the High frequency start still rules supreme in larger machines from 200 amps and up. These require industrial level PC’s and electronics and even commercial manufacturers have had issues with faults because they have failed to account for electrical noise in their designs. +For entry level air plasma CNC systems, the blowback style is much preferred to minimise electrical interference with electronics and standard PCs but the High frequency start still rules supreme in larger machines from 200 amps and up. These require industrial level PC's and electronics and even commercial manufacturers have had issues with faults because they have failed to account for electrical noise in their designs. == CNC Plasma @@ -51,8 +51,8 @@ image::images/primer_volts-height.png[width=50%] This graph was prepared from a sample of about 16,000 readings at varying cut height and the regression analysis shows 7.53 volts per mm with 99.4% confidence. In this particular instance this sample was taken from an Everlast 50 amp machine being controlled by Linuxcnc. -Torch voltage then becomes an ideal process control variable to use to adjust the cut height. Let's assume for simplicity that voltage changes by 10 volts per mm. This can be restated to be 1 volt per 0.1mm (0.04”). -Major plasma machine manufacturers (eg Hypertherm, Thermal Dynamics and ESAB), produce cut charts that specify the recommended cut height and estimated arc voltage at this height as well as some additional data. So if the arc voltage is 1 volt higher than the manufacturers specification, the controller simply needs to lower the torch by 0.1 mm (0.04”) to move back to the desired cut height. A torch height control unit (THC) is traditionally used to manage this process. +Torch voltage then becomes an ideal process control variable to use to adjust the cut height. Let's assume for simplicity that voltage changes by 10 volts per mm. This can be restated to be 1 volt per 0.1mm (0.004"). +Major plasma machine manufacturers (eg Hypertherm, Thermal Dynamics and ESAB), produce cut charts that specify the recommended cut height and estimated arc voltage at this height as well as some additional data. So if the arc voltage is 1 volt higher than the manufacturers specification, the controller simply needs to lower the torch by 0.1 mm (0.004") to move back to the desired cut height. A torch height control unit (THC) is traditionally used to manage this process. == Choosing a Plasma Machine for CNC operations @@ -77,26 +77,26 @@ In recent times, another class of machine which includes some of these features == Types Of Torch Height Control -Most THC units are external devices and many have a fairly crude “bit bang” adjustment method. They provide two signals back to the LinuxCNC controller. One turns on if the Z axis should move up and the other turns on if the Z axis should move down. Neither signal is true if the torch is at the correct height. The popular Proma 150 THC is one example of this type of THC. The Linuxcnc THCUD component is designed to work with this type of THC. +Most THC units are external devices and many have a fairly crude “bit bang" adjustment method. They provide two signals back to the LinuxCNC controller. One turns on if the Z axis should move up and the other turns on if the Z axis should move down. Neither signal is true if the torch is at the correct height. The popular Proma 150 THC is one example of this type of THC. The Linuxcnc THCUD component is designed to work with this type of THC. -With the release of the Mesa THCAD voltage to frequency interface, LinuxCNC was able to decode the actual torch voltage via an encoder input. This allowed LinuxCNC to control the Z axis and eliminate external hardware. Early implementations utilising the THCAD replicated the “bit bang” approach. The Linuxcnc THC component is an example of this approach. +With the release of the Mesa THCAD voltage to frequency interface, LinuxCNC was able to decode the actual torch voltage via an encoder input. This allowed LinuxCNC to control the Z axis and eliminate external hardware. Early implementations utilising the THCAD replicated the “bit bang" approach. The Linuxcnc THC component is an example of this approach. Jim Colt of Hypertherm is on record saying that the best THC controllers were fully integrated into the CNC controller itself. Of course he was referring to high end systems manufactured by Hypertherm, Esab, Thermal Dynamics and others such as Advanced Robotic Technology in Australia, little dreaming that open source could produce systems using this approach that rival high end systems. The inclusion of external offsets in Linuxcnc V2.8 allowed plasma control in LinuxCNC to rise to a whole new level. External Offsets refers to the ability to apply an offset to the axis commanded position external to the motion controller. This is perfect for plasma THC control as a method to adjust the torch height in real time based on our chosen process control methodology. Following a number of experimental builds, the <> configuration was incorporated into LinuxCNC 2.8. -This has been an extremely ambitious project and many people around the globe have been involved in testing and improving the feature set. QtPlasmaC is unique in that its design goal was to support all THCs including the simple bit bang ones through to sophisticated torch voltage control if the voltage is made available to LinuxCNC via a THCAD or some other voltage sensor. What’s more, QtPlasmaC is designed to be a stand alone system that does not need any additional G-Code subroutines and allows the user to define their own cut charts that are stored in the system and accessible by a drop-down. +This has been an extremely ambitious project and many people around the globe have been involved in testing and improving the feature set. QtPlasmaC is unique in that its design goal was to support all THCs including the simple bit bang ones through to sophisticated torch voltage control if the voltage is made available to LinuxCNC via a THCAD or some other voltage sensor. What's more, QtPlasmaC is designed to be a stand alone system that does not need any additional G-Code subroutines and allows the user to define their own cut charts that are stored in the system and accessible by a drop-down. == Arc OK Signal Plasma machines that have a CNC interface contain a set of dry contacts (eg a relay) that close when a valid arc is established and each side of these contacts are bought out onto pins on the CNC interface. A plasma table builder should connect one side of these pins to field power and the other to an input pin. This then allows the CNC controller to know when a valid arc is established and also when an arc is lost unexpectedly. There is a potential trap here when the input is a high impedance circuit such as a Mesa card. If the dry contacts are a simple relay, there is a high probability that the current passing through the relay is less than the minimum current specification. Under these conditions, the relay contacts can suffer from a buildup of oxide which over time can result in intermittent contact operation. To prevent this from happening, a pull down resistor should be installed on the controller input pin. Care should be taken to ensure that this resistor is selected to ensure the minimum current passes through the relay and is of sufficient wattage to handle the power in the circuit. Finally, the resistor should be mounted in such a way that the generated heat does not damage anything whilst in operation. -If you have an ArcOK signal, it is recommended it is used over and above any synthesised signal to eliminate potential build issues. A synthesised signal available from an external THC or QtPlasmaC’s Mode 0 can’t fully replace the ArcOK circuitry in a plasma inverter. Some build issues have been observed where misconfiguration or incompatibility with the plasma inverter has occurred from a synthesised ArcOK signal. By and large however, a correctly configured synthesised ArcOK signal is fine. +If you have an ArcOK signal, it is recommended it is used over and above any synthesised signal to eliminate potential build issues. A synthesised signal available from an external THC or QtPlasmaC's Mode 0 can't fully replace the ArcOK circuitry in a plasma inverter. Some build issues have been observed where misconfiguration or incompatibility with the plasma inverter has occurred from a synthesised ArcOK signal. By and large however, a correctly configured synthesised ArcOK signal is fine. -A simple and effective arcOK signal can be achieved with a simple reed relay. Wrap 3 turns of one of the plasma cutter’s thick cables (eg the material clamp cable) around it. Place the relay in an old pen tube for protection and connect one side of the relay to field power and the other end to your ArcOK input pin. +A simple and effective arcOK signal can be achieved with a simple reed relay. Wrap 3 turns of one of the plasma cutter's thick cables (eg the material clamp cable) around it. Place the relay in an old pen tube for protection and connect one side of the relay to field power and the other end to your ArcOK input pin. == Initial Height Sensing -Because the cutting height is such a critical system parameter and the material surface is inherently uneven, a Z axis mechanism needs a method to sense the material surface. There are three methods this can be achieved; Current sensing to detect increased motor torque, a “float” switch and an electrical or “ohmic” sensing circuit that is closed when the torch shield contacts the material. Current sensing is not a viable technique for DIY tables but float switches and ohmic sensing are discussed below: +Because the cutting height is such a critical system parameter and the material surface is inherently uneven, a Z axis mechanism needs a method to sense the material surface. There are three methods this can be achieved; Current sensing to detect increased motor torque, a “float" switch and an electrical or “ohmic" sensing circuit that is closed when the torch shield contacts the material. Current sensing is not a viable technique for DIY tables but float switches and ohmic sensing are discussed below: === Float Switches @@ -127,7 +127,7 @@ To implement this method, a second encoder input is required. If using a mesa card, different firmware is available to provide 2 additional Encoder A inputs on the Encoder B and Encoder Index pins. This firmware is available for download for the 7i76e and 7i96 boards from the Mesa web site on the product pages. -The THCAD is sensitive enough to see the ramp up in circuit voltage as contact pressure increases. The ohmic.comp component included in Linuxcnc can monitor the sensing voltage and set a voltage threshold above which it is deemed contact is made and an output is enabled. By monitoring the voltage, a lower “break circuit” threshold can be set to build in strong switch hysteresis. This minimises false triggering. In our testing, we found the material sensing using this method was more sensitive and robust as well as being simpler to implement the wiring. One further advantage is using software outputs instead of physical I/O pins is that it frees up pins to use for other purposes. This advantage is helpful to get the most out of the Mesa 7i96 which has limited I/O pins. +The THCAD is sensitive enough to see the ramp up in circuit voltage as contact pressure increases. The ohmic.comp component included in Linuxcnc can monitor the sensing voltage and set a voltage threshold above which it is deemed contact is made and an output is enabled. By monitoring the voltage, a lower “break circuit" threshold can be set to build in strong switch hysteresis. This minimises false triggering. In our testing, we found the material sensing using this method was more sensitive and robust as well as being simpler to implement the wiring. One further advantage is using software outputs instead of physical I/O pins is that it frees up pins to use for other purposes. This advantage is helpful to get the most out of the Mesa 7i96 which has limited I/O pins. The following circuit diagram shows how to implement a hypersensing circuit. @@ -158,7 +158,7 @@ setp ohmicsense.ohmic-threshold 22.0 setp ohmicsense.ohmic-low 1.0 net ohmic-vel ohmicsense.velocity-in <= hm2_7i76e.0.encoder.02.velocity -# --- Replace QtPlasmaC’s Ohmic sensing signal --- +# --- Replace QtPlasmaC's Ohmic sensing signal --- unlinkp debounce.0.2.in net ohmic-true ohmicsense.ohmic-on => debounce.0.2.in net plasmac:ohmic-enable => ohmicsense.is-probing @@ -170,20 +170,20 @@ When an arc is established, arc voltage peaks significantly and then settles bac image::images/primer_thc-delay.png[width=100%] -It is important for the plasma controller to “wait it out” before auto sampling the torch voltage and commencing THC control. If enabled too early, the voltage will be above the desired cut volts and the torch will be driven down in an attempt to address a perceived over-height condition. +It is important for the plasma controller to “wait it out" before auto sampling the torch voltage and commencing THC control. If enabled too early, the voltage will be above the desired cut volts and the torch will be driven down in an attempt to address a perceived over-height condition. -In our testing this varies between machines and material from 0.5 to 1.5 seconds. Therefore a delay of 1.5 seconds after a valid arcOK signal is received before enabling THC control is a safe initial setting. If you want to shorten this for a given material, LinuxCNC’s Halscope will allow you to plot the torch voltage and make informed decisions about the shortest safe delay is used. +In our testing this varies between machines and material from 0.5 to 1.5 seconds. Therefore a delay of 1.5 seconds after a valid arcOK signal is received before enabling THC control is a safe initial setting. If you want to shorten this for a given material, LinuxCNC's Halscope will allow you to plot the torch voltage and make informed decisions about the shortest safe delay is used. NOTE: If the cut velocity is not near the desired cut speed at the end of this delay, the controller should wait until this is achieved before enabling the THC. == Torch Voltage Sampling -Rather than relying on the manufacturer’s cut charts to set the desired torch voltage, many people (the writer included) prefer to sample the voltage as the THC is enabled and use that as a set point. +Rather than relying on the manufacturer's cut charts to set the desired torch voltage, many people (the writer included) prefer to sample the voltage as the THC is enabled and use that as a set point. == Torch Breakaway -It is recommended that a mechanism is provided to allow the torch to “break away” or fall off in the case of impact with the material or a cut part that has tipped up. A sensor should be installed to allow the CNC controller to detect if this has occurred and pause the running program. Usually a break away is implemented using magnets to secure the torch to the Z axis stage. +It is recommended that a mechanism is provided to allow the torch to “break away" or fall off in the case of impact with the material or a cut part that has tipped up. A sensor should be installed to allow the CNC controller to detect if this has occurred and pause the running program. Usually a break away is implemented using magnets to secure the torch to the Z axis stage. == Corner Lock / Velocity Anti-Dive @@ -214,7 +214,7 @@ The generally accepted method to get good holes from 37mm dia. and down to mater . Use perpendicular lead in. . No lead out, either a slight over burn or early torch off depending on what works best for you. -You will need to experiment to get exact hole size because the kerf with this method will be wider than your usual straight cut.” +You will need to experiment to get exact hole size because the kerf with this method will be wider than your usual straight cut." This slow down can be achieved by manipulating the feed rate directly in your post processor or by using adaptive feed and an analog pin as input. This lets you use M67/M68 to set the percentage of desired feed to cut at. @@ -225,7 +225,7 @@ From the preceding discussion it is evident that the plasma controller needs to . Remap the F command and save the commanded feedrate set in G-Code via an M67/M68 command . Storing the cut charts in the plasma controller and allow the current feedrate be queried by the G-Code program (as QtPlasmaC does) -One experimental Linuxcnc branch that would be useful for plasma cutting was the state tags branch. This adds a “tag” that is available to motion containing the current feed and speed rates for all active motion commands. It has been merged and will be in LinuxCNC v2.9 +One experimental Linuxcnc branch that would be useful for plasma cutting was the state tags branch. This adds a “tag" that is available to motion containing the current feed and speed rates for all active motion commands. It has been merged and will be in LinuxCNC v2.9 == I/O Pins For Plasma Controllers @@ -275,9 +275,9 @@ WARNING: It is strongly recommended that the torch cannot be enabled while this * An isolated power supply triggers a relay when the torch shield contacts the material. * Connect field power to one output terminal and the other to the input. * Take care to observe relay polarity if opto-coupled solid State relays are used. -* Usually connected to 'motion.probe-input' and may be or’d with the float switch. +* Usually connected to 'motion.probe-input' and may be or'd with the float switch. -As can be seen, plasma tables are pin intensive and we have already consumed about 15 inputs before the normal estops are added. Others have other views but it is the writer's opinion that the Mesa 7i76e is preferred over the cheaper 7i96 to allow for MPG’s, scale and axis selection switch and other features you may wish to add over time. If your table uses servos, there are a number of alternatives. Whilst there are other suppliers, designing your machine around the Mesa ecosystem will simplify use of their THCAD board to read arc voltage. +As can be seen, plasma tables are pin intensive and we have already consumed about 15 inputs before the normal estops are added. Others have other views but it is the writer's opinion that the Mesa 7i76e is preferred over the cheaper 7i96 to allow for MPG's, scale and axis selection switch and other features you may wish to add over time. If your table uses servos, there are a number of alternatives. Whilst there are other suppliers, designing your machine around the Mesa ecosystem will simplify use of their THCAD board to read arc voltage. === Torch Breakaway Sensor @@ -330,9 +330,9 @@ NOTE: Integrators should familiarise themselves with the Linuxcnc documentation == External Offsets and Plasma Cutting -External Offsets were introduced to Linuxcnc with version 2.8. By external, it means that we can apply an offset external to the G-Code that the trajectory planner knows nothing about. It easiest to explain with an example. Picture a lathe with an external offset being applied by a mathematical formula to machine a lobe on a cam. So the lathe is blindly spinning around with the cut diameter set to a fixed diameter and the external offset moves the tool in and out to machine the cam lobe via an applied external offset. To configure our lathe to machine this cam, we need to allocate some portion of the axis velocity and acceleration to external offsets or the tool can't move. This is where the ini variable OFFSET_AV_RATIO comes in. Say we decide we need to allocate 20% of the velocity and acceleration to the external offset to the Z axis. We set this equal to 0.2. The consequence of this is that your maximum velocity and acceleration for the Lathe’s Z axis is only 80% of what it could be. +External Offsets were introduced to Linuxcnc with version 2.8. By external, it means that we can apply an offset external to the G-Code that the trajectory planner knows nothing about. It easiest to explain with an example. Picture a lathe with an external offset being applied by a mathematical formula to machine a lobe on a cam. So the lathe is blindly spinning around with the cut diameter set to a fixed diameter and the external offset moves the tool in and out to machine the cam lobe via an applied external offset. To configure our lathe to machine this cam, we need to allocate some portion of the axis velocity and acceleration to external offsets or the tool can't move. This is where the ini variable OFFSET_AV_RATIO comes in. Say we decide we need to allocate 20% of the velocity and acceleration to the external offset to the Z axis. We set this equal to 0.2. The consequence of this is that your maximum velocity and acceleration for the Lathe's Z axis is only 80% of what it could be. -External offsets are a very powerful method to make torch height adjustments to the Z axis via a THC. But plasma is all about high velocities and rapid acceleration so it makes no sense to limit these parameters. Fortunately in a plasma machine, the Z axis is either 100% controlled by the THC or it isn’t. During the development of Linuxcnc’s external offsets it was recognised that Z axis motion by G-Code and by THC were mutually exclusive. This allows us to trick external offsets into giving 100 % of velocity and acceleration all of the time. We can do this by doubling the machine’s Z axis velocity and acceleration settings in the ini file and set OFFSET_AV_RATIO = 0.5. That way 100% of the maximum velocity and acceleration will be available for both probing and THC. +External offsets are a very powerful method to make torch height adjustments to the Z axis via a THC. But plasma is all about high velocities and rapid acceleration so it makes no sense to limit these parameters. Fortunately in a plasma machine, the Z axis is either 100% controlled by the THC or it isn't. During the development of Linuxcnc's external offsets it was recognised that Z axis motion by G-Code and by THC were mutually exclusive. This allows us to trick external offsets into giving 100 % of velocity and acceleration all of the time. We can do this by doubling the machine's Z axis velocity and acceleration settings in the ini file and set OFFSET_AV_RATIO = 0.5. That way 100% of the maximum velocity and acceleration will be available for both probing and THC. Example: On a metric machine with a NEMA23 motor with a direct drive to a 5mm ball screw, 60 mm/second maximum velocity and 700 mm/sec/sec acceleration were determined to be safe values without loss of steps. For this machine, set the Z axis in the ini file as follows: @@ -418,7 +418,7 @@ Because there is not likely to be any significant EMI, you should be able to saf * If you do not have a voltage divider, either install scaling resistors inside the plasma cutter and install the THCAD in the control panel or follow the suggestions for HF start machines. -* If you have a voltage divider, install a THCAD-10 in your control panel. We’ve had no problems with this configuration with a 120 amp Thermal Dynamics plasma cutter. +* If you have a voltage divider, install a THCAD-10 in your control panel. We've had no problems with this configuration with a 120 amp Thermal Dynamics plasma cutter. .HF Start @@ -450,9 +450,9 @@ Plasma cutting is inherently an extremely hostile and noisy electrical environme Therefore, system builders should select components carefully and design from the ground up to cope with this hostile environment to avoid the impact of Electro-Magnetic Interference (EMI). Failure to do this could result in countless hours of fruitless troubleshooting. -Choosing ethernet boards such as the Mesa 7i76e or the cheaper 7i96 helps by allowing the PC to be located away from the electronics and the plasma machine. This hardware also allows the use of 24 volt logic systems which are much more noise tolerant. Components should be mounted in a metal enclosure connected to the mains earth. It is strongly recommended that an EMI filter is installed on the mains power connection. The simplest way is to use a EMI filtered mains power IEC connector commonly used on PC’s and electric appliances which allows this to be achieved with no extra work. Plan the layout of components in the enclosure so that mains power, high voltage motor wires and logic signals are kept as separate as possible from each other. If they do have to cross, keep them at 90 degrees. +Choosing ethernet boards such as the Mesa 7i76e or the cheaper 7i96 helps by allowing the PC to be located away from the electronics and the plasma machine. This hardware also allows the use of 24 volt logic systems which are much more noise tolerant. Components should be mounted in a metal enclosure connected to the mains earth. It is strongly recommended that an EMI filter is installed on the mains power connection. The simplest way is to use a EMI filtered mains power IEC connector commonly used on PC's and electric appliances which allows this to be achieved with no extra work. Plan the layout of components in the enclosure so that mains power, high voltage motor wires and logic signals are kept as separate as possible from each other. If they do have to cross, keep them at 90 degrees. -Peter Wallace from Mesa Electronics suggests; “If you have a CNC compatible plasma source with a voltage divider, I would mount the THCAD inside your electronics enclosure with all the other motion hardware. If you have a manual plasma source and you are reading raw plasma voltage, I would mount the THCAD as close to the plasma source as possible (even inside the plasma source case if it fits.) In this case, make sure that all low side THCAD connections are fully isolated from the plasma source. If you use a shielded box for the THCAD, the shield should connect to your electronic enclosure ground, not the plasma source ground.” +Peter Wallace from Mesa Electronics suggests; “If you have a CNC compatible plasma source with a voltage divider, I would mount the THCAD inside your electronics enclosure with all the other motion hardware. If you have a manual plasma source and you are reading raw plasma voltage, I would mount the THCAD as close to the plasma source as possible (even inside the plasma source case if it fits.) In this case, make sure that all low side THCAD connections are fully isolated from the plasma source. If you use a shielded box for the THCAD, the shield should connect to your electronic enclosure ground, not the plasma source ground." It is recommended to run a separate earth wire from motor cases and the torch back to a central star grounding point on the machine. Connect the plasma ground lead to this point and optionally an earth rod driven into the ground as close as possible to the machine (particularly if its a HF start plasma machine). @@ -460,7 +460,7 @@ External wiring to motors should be shielded and appropriately sized to handle t We are aware of at least one commercial system builder who has had problems with induced electrical noise on the ohmic sensing circuit. Whilst this can be mitigated by using ferrite beads and coiling the cable, adding a feed through power line filter is also recommended where the ohmic sensing signal enters the electronics enclosure. -Tommy Berisha, the master of building plasma machines on a budget says: “If on a budget, consider using old laptop power bricks. They are very good, filtering is good, completely isolated, current limited (this becomes very important when something goes wrong), and fitting 2 or 3 of them in series is easy as they are isolated ( be aware that some do have the grounding wired to the negative output terminal, so. It has to be disconnected, simply done by using a power cable with no ground contacts)”. +Tommy Berisha, the master of building plasma machines on a budget says: “If on a budget, consider using old laptop power bricks. They are very good, filtering is good, completely isolated, current limited (this becomes very important when something goes wrong), and fitting 2 or 3 of them in series is easy as they are isolated ( be aware that some do have the grounding wired to the negative output terminal, so. It has to be disconnected, simply done by using a power cable with no ground contacts)". == Water Tables @@ -480,11 +480,11 @@ Stepper motors suffer from resonance and a direct drive pinion is likely to mean == QtPlasmaC LinuxCNC Plasma Configuration -The <> which is comprised of a HAL component (plasmac.hal) plus a complete configurations for the QtPlasmaC GUI has received considerable input from many in the LinuxCNC Open Source movement that have advanced the understanding of plasma controllers since about 2015. There has been much testing and development work in getting QtPlasmaC to its current working state. Everything from circuit design to G-Code control and configuration has been included. Additionally, QtPlasmaC supports external THC’s such as the Proma 150 but really comes into its own when paired with a Mesa controller as this allows the integrator to include the Mesa THCAD voltage to frequency converter which is purpose built to deal with the hostile plasma environment. +The <> which is comprised of a HAL component (plasmac.hal) plus a complete configurations for the QtPlasmaC GUI has received considerable input from many in the LinuxCNC Open Source movement that have advanced the understanding of plasma controllers since about 2015. There has been much testing and development work in getting QtPlasmaC to its current working state. Everything from circuit design to G-Code control and configuration has been included. Additionally, QtPlasmaC supports external THC's such as the Proma 150 but really comes into its own when paired with a Mesa controller as this allows the integrator to include the Mesa THCAD voltage to frequency converter which is purpose built to deal with the hostile plasma environment. QtPlasmaC is designed to stand alone and includes the ability to include your cutting charts yet also includes features to be used with a post processor like SheetCam. -The QtPlasmaC system is now included in Version 2.9 and above of Linuxcnc. Its now quite mature and has been significantly enhanced since the first version of this guide was written. QtPlasmaC will define LinuxCNC’s plasma support for many years to come as it includes all of the features a proprietary high end plasma control system at an open source price. +The QtPlasmaC system is now included in Version 2.9 and above of Linuxcnc. Its now quite mature and has been significantly enhanced since the first version of this guide was written. QtPlasmaC will define LinuxCNC's plasma support for many years to come as it includes all of the features a proprietary high end plasma control system at an open source price. == Hypertherm RS485 Control diff --git a/share/qtvcp/screens/woodpecker/images/QTvcp Widgets.html b/share/qtvcp/screens/woodpecker/images/QTvcp Widgets.html index 2d3bac3058..8dd0445db6 100644 --- a/share/qtvcp/screens/woodpecker/images/QTvcp Widgets.html +++ b/share/qtvcp/screens/woodpecker/images/QTvcp Widgets.html @@ -215,7 +215,7 @@

QTvcp Widgets

1. HAL Only Widgets

-

These Widgets usually have HAL pins and don’t react to the machine Controller

+

These Widgets usually have HAL pins and don't react to the machine Controller

1.1. XEmbed Widget

Allows one to embed program into the widget.
@@ -255,7 +255,7 @@

1.3. LED Widget

Figure 1. LED
-

An indicator that optionally follows a HAL pin’s logic.

+

An indicator that optionally follows a HAL pin's logic.

  • @@ -299,7 +299,7 @@

    1.3. LED Widget

The LED properties can be defined in a stylesheet with the following code added to the .qss file.
-The name_of_led would be the name defined Designer’s editor.

+The name_of_led would be the name defined Designer's editor.

LED #name_0f_led{
@@ -312,13 +312,13 @@ 

1.3. LED Widget

1.4. Checkbox Widget

This widget allows the user to check a box to set a HAL pin true or false.

-

It is based on pyQT’s QCheckButton

+

It is based on pyQT's QCheckButton

1.5. Radio Button Widget

This widget allows a user to set HAL pins true or false.
Only one widget of a group can be true at a time.

-

It is based on pyQT’s QRadioButton

+

It is based on pyQT's QRadioButton

1.6. Push Button Widget

@@ -407,7 +407,7 @@

1.6.1. LED indicator option

1.6.2. Text changes on state

Choosing the checked_state_text_option allows a checkable button to change the text based
-on it’s checked state. It uses the properties true_state_string and false_state_string
+on it's checked state. It uses the properties true_state_string and false_state_string
to specify the text for each state.

@@ -420,13 +420,13 @@

1.6.3. Call python commands on state

The capitalized word INSTANCE will give access to the widgets instances and handler functions.
eg. INSTANCE.my_handler_function_call(True)
-The capitalized word ACTION will give access to qtvcp’s ACTION library.
+The capitalized word ACTION will give access to qtvcp's ACTION library.
eg. ACTION.TOGGLE_FLOOD()
-The capitalized word PROGRAM_LOADER will give access to qtvcp’s PROGRAM_LOADER library.
+The capitalized word PROGRAM_LOADER will give access to qtvcp's PROGRAM_LOADER library.
eg. PROGRAM_LOADER.load_halshow()
-The capitalized word HAL will give access to HAL’s python module.
+The capitalized word HAL will give access to HAL's python module.
eg. HAL.set_p('motion.probe-input,1)'

-

It is based on pyQT’s QpushButton

+

It is based on pyQT's QpushButton

@@ -447,12 +447,12 @@

1.7. Focus Overlay Widget

1.8. Grid Layout Widget

This widget controls if the widgets inside it are enabled or disabled.
disabled widgets are typically a different colour and do not respond to actions.

-

It is based on pyQT’s QGridLayout

+

It is based on pyQT's QGridLayout

1.9. LCD Number Widget

This widget displays HAL float values in a LCD looking way.

-

It is based on pyQT’s QLCDNumber

+

It is based on pyQT's QLCDNumber

1.10. CamView Widget

@@ -474,8 +474,8 @@

1.12. GeneralHALOutput Widget

1.13. WidgetSwitcher Widget

This is used to switch the view of a multi-widget layout to show just one widget.
This might be used to flip between a large view of a widget or a smaller multi widget view.
-I’ts different from a stacked widget as it can pull a widget from anywhere in the screen and
-place it in it’s page with a different layout then it originally had.
+I'ts different from a stacked widget as it can pull a widget from anywhere in the screen and
+place it in it's page with a different layout then it originally had.
The original widget must be in a layout for switcher to put it back.

In Designer you will add the widgetswitcher widget on screen.
@@ -609,7 +609,7 @@

2.1. Action Button Widget

pan-left, pan-right, rotate-up, rotate-down, rotate-cw, rotate-ccw
command string - MDI command string that will be invoked if the MDI command action is selected.
ini_mdi_number - a reference to the INI file [MDI_COMMAND_LIST] section.
-Set an integer of select one line under the INI’s MDI_COMMAND line starting at 0.
+Set an integer of select one line under the INI's MDI_COMMAND line starting at 0.
Then in the INI file, under the heading [MDI_COMMAND_LIST] add a line:
MDI_COMMAND=<some command>

Action buttons are subclasssed from indicated_PushButton

@@ -689,7 +689,7 @@

2.1.1. LED indicator option

2.1.2. Text changes on state

Choosing the checked_state_text_option allows a checkable button to change the text based
-on it’s checked state. It uses the properties true_state_string and false_state_string
+on it's checked state. It uses the properties true_state_string and false_state_string
to specify the text for each state.

@@ -702,13 +702,13 @@

2.1.3. Call python commands on state The capitalized word INSTANCE will give access to the widgets instances and handler functions.
eg. INSTANCE.my_handler_function_call(True)
-The capitalized word ACTION will give access to qtvcp’s ACTION library.
+The capitalized word ACTION will give access to qtvcp's ACTION library.
eg. ACTION.TOGGLE_FLOOD()
-The capitalized word PROGRAM_LOADER will give access to qtvcp’s PROGRAM_LOADER library.
+The capitalized word PROGRAM_LOADER will give access to qtvcp's PROGRAM_LOADER library.
eg. PROGRAM_LOADER.load_halshow()
-The capitalized word HAL will give access to HAL’s python module.
+The capitalized word HAL will give access to HAL's python module.
eg. HAL.set_p('motion.probe-input,1)'
-Indicated PushButtons and Actionbuttons are based on pyQT’s QPushButton

+Indicated PushButtons and Actionbuttons are based on pyQT's QPushButton

@@ -746,7 +746,7 @@

2.3. Axis Tool Button

You select the axis by setting the joint number
You can select a halpin option that is set true when the axis is selected

-

It is based on pyQT’s QToolButton

+

It is based on pyQT's QToolButton

2.4. Camview Widget

@@ -761,11 +761,11 @@

2.5. DRO Widget

metric_template imperial_template angular_template

-

It is based on pyQT’s QLabel

+

It is based on pyQT's QLabel

2.6. GcodeDisplay

-

It is based on pyQT’s

+

It is based on pyQT's

2.7. GcodeEditor Widget

@@ -776,7 +776,7 @@

2.7. GcodeEditor Widget

into the MDILine widget.
It has a signal percentDone(int) that that can be connected to a slot (such as a
progressBar to display percent run)

-

It is based on pyQT’s QsciScintilla

+

It is based on pyQT's QsciScintilla

2.8. GCodeGraphics Widget

@@ -830,7 +830,7 @@

2.8.1. ACTION functions

ACTION.ADJUST_PAN(X,Y) -directly set the relative pan of view in x and y direction

ACTION.ADJUST_ROTATE(X,Y) -directly set the relative rotation of view in x and y direction

-

It is based on pyQT’s opengl widget.

+

It is based on pyQT's opengl widget.

@@ -843,7 +843,7 @@

2.9. StateLabel Widget

Diameter Mode
FPR Mode
Metric Mode

-

It is based on pyQT’s QLabel

+

It is based on pyQT's QLabel

2.10. StatusLabel Widget

@@ -861,7 +861,7 @@

2.10. StatusLabel Widget

Current Feedrate
Requested Spindle Speed
User System

-

It is based on pyQT’s QLabel

+

It is based on pyQT's QLabel

2.11. StatusImageSwicher Widget

@@ -895,10 +895,10 @@

2.11. StatusImageSwicher Widget

2.12. StatusStacked

-

This widget displays one of three panels based on linuxcnc’s mode.
+

This widget displays one of three panels based on linuxcnc's mode.
This allows you to automatically display different widgets on Manual, MDI and Auto modes.

todo
-It is based on pyQT’s QStacked widget.

+It is based on pyQT's QStacked widget.

2.13. Jog Increments Widget

@@ -908,11 +908,11 @@

2.13. Jog Increments Widget

This will be available to all widgets through STATUS.
You can select linear or angular increments by the property linear_option
in Designer property editor.

-

It is based on pyQT’s combobox

+

It is based on pyQT's combobox

2.14. ScreenOption widget

-

This widget doesn’t add anything visually to a screen but sets up important
+

This widget doesn't add anything visually to a screen but sets up important
options. This is the preferred way to use these options

These include:
  • @@ -1066,7 +1066,7 @@

    2.15. StatusSlider Widget

-

It is based on pyQT’s QSlider

+

It is based on pyQT's QSlider

2.16. State LED Widget

@@ -1213,7 +1213,7 @@

2.16. State LED Widget

The LED properties can be defined in a stylesheet with the following code added to the .qss file.
-The name_of_led would be the name defined Designer’s editor.

+The name_of_led would be the name defined Designer's editor.

State_LED #name_0f_led{
@@ -1256,13 +1256,13 @@ 

2.17. StatusAdjustmentBar

-

It is based on pyQT’s QProgressBar

+

It is based on pyQT's QProgressBar

2.18. SystemToolButton

This widget allows you to manually select a user system by pressing and holding.
-If you don’t set the button text it will automatically update to the current system.

-

It is based on pyQT’s QToolButton

+If you don't set the button text it will automatically update to the current system.

+

It is based on pyQT's QToolButton

2.19. MacroTab Widget

@@ -1384,7 +1384,7 @@

2.20. MDILine Widget

-

It is based on pyQT’s QLineEdit

+

It is based on pyQT's QLineEdit

2.21. MDIHistory

@@ -1447,8 +1447,8 @@

2.22. MDITouchy

Figure 6. MDI Touchy

This widget display button and entry lines for use with entering MDI commands.
-It is based on Linuxcnc’s Touchy screen’s MDI entry process.
-It’s large buttons are most useful for touch screens.
+It is based on Linuxcnc's Touchy screen's MDI entry process.
+It's large buttons are most useful for touch screens.

To use MDITouchy, first press one of the G/XY, G/RO, M or T button.
On the left, will show the current line that can be filled out, then press Next for the next line.
@@ -1456,7 +1456,7 @@

2.22. MDITouchy

Clear clears th ecurrent entry.
Back allows you to change previous line entries.

-The widget requires an explicied call to MDITouchu’s python code to actually run the MDI command
+The widget requires an explicied call to MDITouchu's python code to actually run the MDI command
For handler file code: if the widget was named mditouchy in designer, this command would
run the displayed MDI command.

@@ -1466,14 +1466,14 @@

2.22. MDITouchy

http://www.gnu.org/software/src-highlite -->
self.w.mditouchy.run_command()

For action button use: if the widget was named mditouchy in designer,
-use the action button’s Call python commands option and enter:

+use the action button's Call python commands option and enter:

INSTANCE.mditouchy.run_command()
-

The macro button will cycle though macro’s defined in the INI heading [DISPLAY]
+

The macro button will cycle though macro's defined in the INI heading [DISPLAY]
add one or more 'MACRO = ' lines. Each should be of the format: