docs: Update for latest changs to skew_correction

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
This commit is contained in:
Arksine 2019-06-28 15:40:00 -04:00 committed by KevinOConnor
parent 0c379d060f
commit 57eb0e8975
4 changed files with 87 additions and 40 deletions

View File

@ -377,28 +377,15 @@
# if retries are enabled then retry if largest and smallest probed points # if retries are enabled then retry if largest and smallest probed points
# differ more than retry_tolerance # differ more than retry_tolerance
# Printer Skew Correction. It is possible to use software to correct # Printer Skew Correction. It is possible to use software to correct
# printer skew across 3 planes, xy, xz, yz. This is done by printing # printer skew across 3 planes, xy, xz, yz. This is done by printing
# a calibration model along a plane and measuring three lengths. See # a calibration model along a plane and measuring three lengths. Due
# skew_correction.md in the docs directory for more details. # to the nature of skew correction these lengths are set via gcode. See
# skew_correction.md and G-Codes.md in the docs directory for details.
# #
#[skew_correction] #[skew_correction]
#xy_ac_length:
#xy_bd_length:
#xy_ad_length:
# The measured lengths (in mm) on the xy plane skew calibration print.
# If one length is provided all three lengths must be provided. The default
# is no measurement, which results in no skew correction along the xy plane.
#xz_ac_length:
#xz_bd_length:
#xz_ad_length:
# The same as above, on the xz plane. The default is no skew correction
# on the xz plane.
#yz_ac_length:
#yz_bd_length:
#yz_ad_length:
# The same as above on the yz plane. The default is no skew correction
# on the yz plane.
# In a multi-extruder printer add an additional extruder section for # In a multi-extruder printer add an additional extruder section for
# each additional extruder. The additional extruder sections should be # each additional extruder. The additional extruder sections should be

View File

@ -6,6 +6,11 @@ All dates in this document are approximate.
# Changes # Changes
20190628: All configuration options have been removed from the
[skew_correction] section. Configuration for skew_correction
is now done via the SET_SKEW gcode. See skew_correction.md
for recommended usage.
20190607: The "variable_X" parameters of gcode_macro (along with the 20190607: The "variable_X" parameters of gcode_macro (along with the
VALUE parameter of SET_GCODE_VARIABLE) are now parsed as Python VALUE parameter of SET_GCODE_VARIABLE) are now parsed as Python
literals. If a value needs to be assigned a string then wrap the value literals. If a value needs to be assigned a string then wrap the value

View File

@ -477,12 +477,26 @@ of retraction required.
The following commands are available when the "skew_correction" config The following commands are available when the "skew_correction" config
section is enabled. section is enabled.
- `SET_SKEW [XY=<ac_length,bd_length,ad_length>] [XZ=<ac,bd,ad>]
[YZ=<ac,bd,ad>] [CLEAR=<0|1>]`: Configures the [skew_correction] module
with measurements (in mm) taken from a calibration print. One may
enter measurements for any combination of planes, planes not entered will
retain their current value. If `CLEAR=1` is entered then all skew
correction will be disabled.
- `GET_CURRENT_SKEW`: Reports the current printer skew for each plane in - `GET_CURRENT_SKEW`: Reports the current printer skew for each plane in
both radians and degrees. The skew is calculated based on parameters both radians and degrees. The skew is calculated based on parameters
provided to the [skew_correction] section of printer.cfg. provided via the `SET_SKEW` gcode.
- `CALC_MEASURED_SKEW [AC=<ac_length>] [BD=<bd_length>] [AD=<ad_length>]`: - `CALC_MEASURED_SKEW [AC=<ac_length>] [BD=<bd_length>] [AD=<ad_length>]`:
Calculates and reports the skew (in radians and degrees) based on a Calculates and reports the skew (in radians and degrees) based on a
measured print. This can be useful for determining the printer's current measured print. This can be useful for determining the printer's current
skew after correction has been applied. It may also be useful before skew after correction has been applied. It may also be useful before
correction is applied to determine if skew correction is necessary. See correction is applied to determine if skew correction is necessary. See
skew_correction.md for details on skew calibration objects and measurements. skew_correction.md for details on skew calibration objects and
measurements.
- `SKEW_PROFILE [LOAD=<name>] [SAVE=<name>] [REMOVE=<name>]`: Profile
management for skew_correction. LOAD will restore skew state from the
profile matching the supplied name. SAVE will save the current skew state
to a profile matching the supplied name. Remove will delete the profile
matching the supplied name from persistent memory. Note that after SAVE
or REMOVE operations have been run the SAVE_CONFIG gcode must be run
to make the changes to peristent memory permanent.

View File

@ -1,6 +1,6 @@
Software based skew correction can help resolve dimensional inaccuracies Software based skew correction can help resolve dimensional inaccuracies
resulting from a printer assembly that is not perfectly square. Note resulting from a printer assembly that is not perfectly square. Note
that if your printer is significantly skewed it is strongy recommended to that if your printer is significantly skewed it is strongly recommended to
first use mechanical means to get your printer as square as possible prior first use mechanical means to get your printer as square as possible prior
to applying software based correction. to applying software based correction.
@ -12,8 +12,9 @@ along the plane you want to correct. There is also a
that includes all planes in one model. You want the object oriented that includes all planes in one model. You want the object oriented
so that corner A is toward the origin of the plane. so that corner A is toward the origin of the plane.
Make sure that the [skew_correction] module is not enabled in printer.cfg Make sure that no skew correction is applied during this print. You may
prior to printing the calibration part. do this by either removing the [skew_correction] module from printer.cfg
or by issuing a `SET_SKEW CLEAR=1` gcode.
# Take your measurements # Take your measurements
The [skew_correcton] module requires 3 measurements for each plane you want The [skew_correcton] module requires 3 measurements for each plane you want
@ -23,18 +24,56 @@ AD do not include the flats on the corners that some test objects provide.
![skew_lengths](img/skew_lengths.png) ![skew_lengths](img/skew_lengths.png)
# Update printer.cfg # Configure your skew
Enter your lengths for the calibration print corresponding to the correct Make sure [skew_correction] is in printer.cfg. You may now use the `SET_SKEW`
plane under the [skew_correction] section in printer.cfg, for example: gcode to configure skew_correcton. For example, if your measured lengths
along XY are as follows:
``` ```
[skew_correction] Length AC = 140.4
xy_ac_length: 140.4 Length BD = 142.8
xy_bd_length: 142.8 Length AD = 99.8
xy_ad_length: 99.8
``` ```
Restart your printer. If desired, you can reprint the calibration part
with skew correction enabled. The following gcode can be used to calculate `SET_SKEW` can be used to configure skew correction for the XY plane.
skew of a single plane and output the results:
```
SET_SKEW XY=140.4,142.8,99.8
```
You may also add measurements for XZ and YZ to the gcode:
```
SET_SKEW XY=140.4,142.8,99.8 XZ=141.6,141.4,99.8 YZ=142.4,140.5,99.5
```
The [skew_correction] module also supports profile management in a manner
similar to [bed_mesh]. After setting skew using the `SET_SKEW` gcode,
you may use the `SKEW_PROFILE` gcode to save it:
```
SKEW_PROFILE SAVE=my_skew_profile
```
After this command you will be prompted to issue a `SAVE_CONFIG` gcode to
save the profile to persistent storage. If no profile is named
`my_skew_profile` then a new profile will be created. If the named profile
exists it will be overwritten.
Once you have a saved profile, you may load it:
```
SKEW_PROFILE LOAD=my_skew_profile
```
It is also possible to remove an old or out of date profile:
```
SKEW_PROFILE REMOVE=my_skew_profile
```
After removing a profile you will be prompted to issue a `SAVE_CONFIG` to
make this change persist.
# Verifying your correction
After skew_correction has been configured you may reprint the calibration
part with correction enabled. Use the following gcode to check your
skew on each plane. The results should be lower than those reported via
`GET_CURRENT_SKEW`.
``` ```
CALC_MEASURED_SKEW AC=<ac_length> BD=<bd_length> AD=<ad_length> CALC_MEASURED_SKEW AC=<ac_length> BD=<bd_length> AD=<ad_length>
@ -42,11 +81,13 @@ CALC_MEASURED_SKEW AC=<ac_length> BD=<bd_length> AD=<ad_length>
# Caveats # Caveats
When using the [skew_correction] module it is suggested to home all axes Due to the nature of skew correction it is recommended to configure skew
before attempting a move. Homing a single axis to move could result in a in your start gcode, after homing and any kind of movement that travels
correction along the x and/or y axis, potentially leading to a homing error. near the edge of the print area such as a purge or nozzle wipe. You may
use use the `SET_SKEW` or `SKEW_PROFILE` gcodes to accomplish this. It is
also recommended to issue a `SET_SKEW CLEAR=1` in your end gcode.
It is also important to keep in mind that it is possible for [skew_correction] Keep in mind that it is possible for [skew_correction] to generate a correction
to generate a correction that moves the tool beyond the printer's boundries that moves the tool beyond the printer's boundries on the X and/or Y axes. It
on the X and/or Y axes. It is recommended to arrange parts away from the is recommended to arrange parts away from the edges when using
edges when using [skew_correction]. [skew_correction].