Printing a Benchy using ICESL - Slicer and SliceCrafter

97 views
Skip to first unread message

Colin Hudson

unread,
Nov 3, 2017, 8:12:45 PM11/3/17
to IceSL
Hi,
Firstly, thank you for releasing and maintaining ICESL.

 I have had trouble with slicing and printing a 3d Benchy with the PrusaI3 printer profile. The top of the chimney is missing and there is a small section of the cabin wall with no outer perimeter plastic.

IceSL and SliceCrafter (Prusa I3 printer profile) were used as slicers (but only the IceSL 2.1.6 version was printed).

Attached file are a (poor) picture of the benchy and the gcode produced by Slicecrafter for the prusa i3 printer profile.

Here is an extract of the gcode with some comments to help me understand what is going on. G1 X73.000 Y73.900 Z11.000 F1200 E25.328 ; move and extrude G1 X72.915 Y73.870 Z11.000 F1200 E25.331 ; move and move the extruder position=25.331 G1 F4800 G1 X72.810 Y73.670 Z11.000 G1 F2400 E22.331 ; Move the extrude back 3mm = 25.331 - 22.331 G1 F4800 G1 X72.750 Y73.670 Z11.000 G92 E0 ; Zero the extruder position as part of the layer change ; </layer> G1 F4800 ; <layer> G1 Z11.200 ; Move up a layer G1 F4800 G1 X72.720 Y73.830 Z11.200 G1 F2400 E0.000 ; Prime but it doesn't move the extruder back the 3mm retracted on the previous layer. G1 F1200 G1 X72.770 Y73.840 Z11.200 F1200 E0.002 ; Move and extrude

My understanding is that effectively there was a retract but the prime does not move the filament back.
Looking through the gcode produced for E0.000 showed numerous instances of this happening. This was particularly prevalent through the chimney section.

I was able to address the benchy issue by changing the printer.lua code for retract and prime by adding a line extruder_e = e - len and extruder_e = e + len to the two functions.

function retract(extruder,e) 
  len   = filament_priming_mm[extruder]
  speed = priming_mm_per_sec * 60;
  letter = 'E'
  output('G1 F' .. speed .. ' ' .. letter .. f(e - len - extruder_e_restart))
  extruder_e = e - len 
  return e - len
end

function prime(extruder,e)
  len   = filament_priming_mm[extruder]
  speed = priming_mm_per_sec * 60;
  letter = 'E'
  output('G1 F' .. speed .. ' ' .. letter .. f(e + len - extruder_e_restart))
  extruder_e = e + len 
  return e + len
end

Is this the appropriate fix? Should retract and prime be restricted to the same layer?
processed (7).gcode
Benchy.jpg

sylefeb

unread,
Nov 4, 2017, 3:41:09 AM11/4/17
to IceSL
Hi Colin,

Sorry about this: it looks like I broke something in this profile during the last update. I will look into it later today, fix it, and send the updated files + explanations here.
The most tested profiles are UM2 / UM3 ; you can also use them as reference to create your own printer scripts.

Thanks for pointing this out!
Best regards,
Sylvain
PS: IceSL 2.1.7 beta 1 is imminent, I'll include the fix as well.

sylefeb

unread,
Nov 4, 2017, 3:53:30 AM11/4/17
to IceSL
Hi Colin,

I confirm your fix is correct. I found that some other profiles were impacted as well :-\.
Thanks a lot for pointing this out, we'll update soon to make sure the fix is propagated.

Sylvain
Reply all
Reply to author
Forward
0 new messages