skew_correction: add documentation

Signed-Off-By:  Eric Callahan <arksine.code@gmail.com>
This commit is contained in:
Arksine 2019-06-12 20:26:58 -04:00 committed by KevinOConnor
parent b37222e3a1
commit a3b4543c97
4 changed files with 88 additions and 0 deletions

View File

@ -377,6 +377,28 @@
# if retries are enabled then retry if largest and smallest probed points
# differ more than retry_tolerance
# Printer Skew Correction. It is possible to use software to correct
# printer skew across 3 planes, xy, xz, yz. This is done by printing
# a calibration model along a plane and measuring three lengths. See
# skew_correction.md in the docs directory for more details.
#
#[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
# each additional extruder. The additional extruder sections should be

View File

@ -468,3 +468,17 @@ of retraction required.
parameters.
- `G11`: Unretracts the extruder using the currently configured
parameters.
## Skew Correction
The following commands are available when the "skew_correction" config
section is enabled.
- `GET_CURRENT_SKEW`: Reports the current printer skew for each plane in
both radians and degrees. The skew is calculated based on parameters
provided to the [skew_correction] section of printer.cfg.
- `CALC_MEASURED_SKEW [AC=<ac_length>] [BD=<bd_length>] [AD=<ad_length>]`:
Calculates and reports the skew (in radians and degrees) based on a
measured print. This can be useful for determining the printer's current
skew after correction has been applied. It may also be useful before
correction is applied to determine if skew correction is necessary. See
skew_correction.md for details on skew calibration objects and measurements.

BIN
docs/img/skew_lengths.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

52
docs/skew_correction.md Normal file
View File

@ -0,0 +1,52 @@
Software based skew correction can help resolve dimensional inaccuracies
resulting from a printer assembly that is not perfectly square. Note
that if your printer is significantly skewed it is strongy recommended to
first use mechanical means to get your printer as square as possible prior
to applying software based correction.
# Print a Calibration Object
The first step in correcting skew is to print a
[calibration object](https://www.thingiverse.com/thing:2563185/files)
along the plane you want to correct. There is also a
[calibration object](https://www.thingiverse.com/thing:2972743)
that includes all planes in one model. You want the object oriented
so that corner A is toward the origin of the plane.
Make sure that the [skew_correction] module is not enabled in printer.cfg
prior to printing the calibration part.
# Take your measurements
The [skew_correcton] module requires 3 measurements for each plane you want
to correct; the length from Corner A to Corner C, the length from Corner B
to Corner D, and the length from corner A to corner D. When measuring length
AD do not include the flats on the corners that some test objects provide.
![skew_lengths](img/skew_lengths.png)
# Update printer.cfg
Enter your lengths for the calibration print corresponding to the correct
plane under the [skew_correction] section in printer.cfg, for example:
```
[skew_correction]
xy_ac_length: 140.4
xy_bd_length: 142.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
skew of a single plane and output the results:
```
CALC_MEASURED_SKEW AC=<ac_length> BD=<bd_length> AD=<ad_length>
```
# Caveats
When using the [skew_correction] module it is suggested to home all axes
before attempting a move. Homing a single axis to move could result in a
correction along the x and/or y axis, potentially leading to a homing error.
It is also important to keep in mind that it is possible for [skew_correction]
to generate a correction that moves the tool beyond the printer's boundries
on the X and/or Y axes. It is recommended to arrange parts away from the
edges when using [skew_correction].