mirror of https://github.com/Desuuuu/klipper.git
gcode_arcs: Disable E moves in absolute extrude mode
Commit 402110f6
didn't actually fix absolute extrude mode. For now,
report an error if an extrude move is requested in absolute extrude
mode.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
fc627ec470
commit
43fa41c1af
|
@ -38,23 +38,20 @@ class ArcSupport:
|
|||
if not asI and not asJ:
|
||||
raise self.gcode.error("G2/G3 neither I nor J given")
|
||||
asE = self.gcode.get_float("E", params, None)
|
||||
if asE is not None and gcodestatus['absolute_extrude']:
|
||||
raise self.gcode.error("G2/G3 only supports relative extrude mode")
|
||||
asF = self.gcode.get_float("F", params, None)
|
||||
clockwise = (params['#command'] == 'G2')
|
||||
|
||||
# Build list of linear coordinates to move to
|
||||
coords = self.planArc(currentPos, [asX, asY, asZ], [asI, asJ],
|
||||
clockwise)
|
||||
e_per_move = e_base = 0.
|
||||
if asE is not None:
|
||||
if gcodestatus['absolute_extrude']:
|
||||
e_base = currentPos[3]
|
||||
e_per_move = (asE - e_base) / len(coords)
|
||||
|
||||
# Convert coords into G1 commands
|
||||
for coord in coords:
|
||||
g1_params = {'X': coord[0], 'Y': coord[1], 'Z': coord[2]}
|
||||
if e_per_move:
|
||||
g1_params['E'] = e_base + e_per_move
|
||||
if asE is not None:
|
||||
g1_params['E'] = asE / len(coords)
|
||||
if asF is not None:
|
||||
g1_params['F'] = asF
|
||||
self.gcode.cmd_G1(g1_params)
|
||||
|
|
|
@ -3,6 +3,7 @@ DICTIONARY atmega2560.dict
|
|||
CONFIG gcode_arcs.cfg
|
||||
|
||||
# Home and move in arcs
|
||||
M83
|
||||
G28
|
||||
G1 X20 Y20 Z20
|
||||
G2 X125 Y32 Z20 E1 I10.5 J10.5
|
||||
|
|
Loading…
Reference in New Issue