Closed ghost closed 6 years ago
Wait, what? You can't use regular retract and toolchange retract in the same print with your scheme?
I explain Retract after LAYER CHANGE , must works , because it will be used The only issue is to have the layer change retract 'g10 ' and after a G10 S1 , it will makes problems in marlin and if a Layer change appears at the same time of Tool change ,it's perfect , because the recovery will appear too , The only issue is to avoid the double retract gcode
and of course , in the case of a layer change without a tool change , the functionnality must be activated Or in a single nozzle print too , this functionnality must works
The reason there's an extra G10 in there is because the retract is considered per-extruder.
So why aren't extra retracts handled in a sane manner in Marlin?
we have worked on the firmware retract code and because of the low ressources and time wasted by uneeded code , we are forced to write our cote at is simple essence without a big code of exception and protection against a bad produced code We don't have 32 bits plutonium suractivated processor , and all macro is reduced at his minimum
It's why , we can not make a shield anti bad gcode to protect marlin every time Our FW retract put a status when G10 named ' retracted' , and G10 S1 named ' swapped ' , we assume that we trust gcode and we make marlin with no gcode corruption In this case , if G10 appear , with zlift activated , Extrusion will retract , zlift up the carriage , and if a G10 S1 appears after , zlift is blocked ' in my version ' , but we will have retract distance + long retract distance , and when recover , our FWretract don't make addition of the 2 retractation , to recover exactly , and , when recover , it will recover without the length of the first G10 and the print will have a moment of no printing. Each G10 must have a G11 and nothing else between
I need a good gcode , because marlin can not make the ' police ' of corrupted gcode You don't know that , because in 32bits smoothieware , you have tons of progrmemory , and high speed float arithmetic unit inside lol
You don't have a single bit to store swap/retract state (per extruder)?
The logic to retract on layer change doesn't know about whether or not it's a retract. The unretract there is actually from the call to extrude.
Best solution I can think of is to unretract immediately after the toolchange. Who knows what that will break.
But for information ,i never use retraction when no needed , retraction make seam , oozes and blob , so it's why i use it with precaution , and it's not in my style , to apply retraction on layer change , and i don't know why the option force a retractration after layer change exist . but if you can make a processing that can avoid this G10 just when a tool change follows You make a very good SLICER FOR ALL MARLIN MACHINES
Ok , if you think it's too complicated to make a tortured code to have it , ok we surrender If you think , you can avoid a double G10 in the case of layer change and tool change together It's perfect
In all case , you have made a fully functionnal lib for marlin I will use it for some days , i will inform you
And inform me if you have made a new release that permit to keep ' layer change retraction forced'
THK YOU VERY MUCH FOR ALL
You mean that commit?
It's not a bit problem loll , it's a rewritten FwRetract each time a bad gcode appear We have our exigence about Gcode and we want a clean gcode lolll
So do you keep the retraction state per-extruder?
yes the two last release works ' if no change layer retract enable '
if layer change enable , G10 before G10S1 appears
Slic3r-long-retract.2017.09.02.1345.8c9140f.64bit Slic3r-long-retract.2017.09.02.1343.8f211aa.64bit works
i don't understand the commit , what it makes
Read the commit message.
if g10 , then ' retracted' status if g10 s1 after g10 status ' swapped ' and retracted lengh is lost , will only recover with long retract length
Unretract immediately after toolchange
ok , but we never have problem of all AFTER G10S1
all issues are BEFORE
But , it's true , if we have G10S1 , and a G10 appears after it , the swap status is dead and recover will just be a short recover
g10 must be followed by a g11 G10 S1 too If g10 after g10s1 = problem if g10s1 after g10= problem Clean Gcode needed
It'd be perfectly legal though to issue multiple G10s (or even G10 S1) in a row and then unretract all at once with a single G11. That's actually how Slic3r models it.
You're going to have post a 3d model (you can export to AMF to save multi extruder setups, etc) and a slic3r config so I can see what is going on on your end.
Slicer is intelligent , have the models , and make tool path The machine is a robot and can not made the cure of bad gcode
See highlighted menu item for export to AMF (preserving all modifier meshes, multiple extrusion, etc).
Slic3r works fine now
Just forced to disable ' FORCE RETRACT AFTER LAYER CHANGE'
If one day , you want to solve this , it's perfect
Now slicer produce a clean and very comprehensive GCODE
all is perfect 'without layer change retract forced'
@bubnikv How does your marlin fork solve this, or did you change the gcode generation.. or just ignore fw retract?
@studiodyne well we accept pull requests. If you can work out the logic then great.
Not using fw retract with Slic3r gets you the Wipe feature (which afaik is impossible with fw retract).
Fw Marlin If G10 S1 and G10 after , G10 is ignored If G10 and G10 s1 recover is only the long retract lengh and ' short retract length' is missing
yes , i you read my topic about firmware retract , i explain , Fw is just a tool , an utility , to test our parameters but will never be the future of printing The clean print need , the nozzle wipe to avoid seam and others dirty things , Fw retract is robotic and primitive and will never make a 3 axis movement to make a wipe But it's a good tool , to see with ou eyes what values is need for each nozzle , feedrate of recover and lengh When we have our parameters , we disable FW and we forget it I have made a topic about ' Firmware retractation ' here Understanding FIRMWARE RETRACTATION G10 / G11 / G10 S1 #7597
I assume you have made a good job , and i'm very happy If one day , you have the force to make a code , to avoid a double G10 + G10S1 when layer change retract + tool change long retract appears together , it will be perfect For the moment it's enough , i'm happy
Another Request Two choices
and no user that come here to ' cry ' !!!!
Give me a complete test case that shows the "bad gcode" (that is, the inputs to Slic3r that gives the output).
i go to sleep , may be tomorow i will have a surprise What choice you have choseen for the last release
Thk you so much , for this ONE DAY and ONE NIGHT COLLABORATION
In unrelated news, under fw retract only it should be sorted out. It should always unretract when entering into a toolchange beforehand and complete unretract (to cover the retraction from the toolchange) at the end of the toolchange.
You may have to handle a spurious unretract on Marlin's end.
https://github.com/alexrj/Slic3r/pull/4108/commits/b35f913a057468ae90f071473a0bc0294f37d4d3
Give me a complete test case that shows the "bad gcode" (that is, the inputs to Slic3r that gives the output).
I promise to print only with slic3r the next weeks , i will see all issues if exist I have examined the gcode produced tonight and it's very good , i just need to work every day with it and to use the machine , that is the best verification Now i go to sleep , Thks for all , very good job
Without ' force retraction after layer change ' all is absolutely perfect
G1 X95.527 Y94.044 E1.66541 ; infill
G1 X95.173 Y93.639 E1.67764 ; infill
G10 S1 ; retract for toolchange
G92 E0 ; reset extrusion distance
T1 ; change extruder
G92 E0 ; reset extrusion distance
G1 X103.125 Y111.253 F7800.000 ; move to first perimeter point
G11 ; unretract
G92 E0 ; reset extrusion distance
G1 F1800
G1 X103.083 Y111.878 E0.01424 ; perimeter
With 'force retraction after layer change' A G10 appears after a G10S1 and it's not possible for marlin
G1 X95.527 Y94.044 E1.66541 ; infill
G1 X95.173 Y93.639 E1.67764 ; infill
G10 S1 ; retract for toolchange
G92 E0 ; reset extrusion distance
T1 ; change extruder
G92 E0 ; reset extrusion distance
G10 ; retractβοΈ but IGNORED BY MARLIN , not a problem but not serious π
G92 E0 ; reset extrusion distance
G1 X103.125 Y111.253 F7800.000 ; move to first perimeter point
G11 ; unretract
G92 E0 ; reset extrusion distance
G1 F1800
G1 X103.083 Y111.878 E0.01424 ; perimeter
With 'force retraction after layer change' A G10 appears before a G10S1 and it's not possible for marlin
G1 X173.559 Y105.107 E2.25929 ; infill
G10 ; retractβοΈ
G92 E0 ; reset extrusion distance
G1 Z0.300 F7800.000 ; move to next layer (1) *********************************
; Tool change--------------------------------
T1 ; change extruder
G92 E0 ; reset extrusion distance
G10 ; retractβοΈ but IGNORED BY MARLIN , not a problem but not serious π
G92 E0 ; reset extrusion distance
G1 X64.125 Y100.003 F7800.000 ; move to first perimeter point
G11 ; unretract
G92 E0 ; reset extrusion distance
G1 F1800
NOT GOOD MUST BE DELETED : Slic3r-long-retract.2017.09.03.1349.6a1ecd9.64bit
Without LAYER CHANGE FORCED RETRACTATION G10 Appears after tool change ' only the first tool change '
G1 Z0.350 F7800.000
G10 S1
G92 E0
T1
G92 E0
G10 βοΈ
G92 E0
G1 X63.571 Y98.340 F7800.000
G11
G92 E0
G1 F1800
You have placed a G11 just after T1 , and it's not possible , because the nozzle is on the old color and on the print , if you recover here , print will be dirty and with a blob
G10 S1
G92 E0
T1
G92 E0
G11 βοΈ No ! because the nozzle is always on the other color and will blob on the print
_This solution is not good , this G11 MUST BE AFTER A MOVE LIKE THE FOLLOWING_
G92 E0
G10 πππ MARLIN ignore G10 after G10S1
G92 E0
G1 X63.714 Y98.292 F7800.000
G11 ; ππππ THE ONLY G11 ALLOWED ππππ
G92 E0
G1 F900
Please delete the last release and keep the release just before This precedent release works
FORCE RETRACTACTION ON LAYER CHANGE ENABLED = BUG try to make the fix to delete a double G10/G10 S1 when (layer change + tool change appears together)
Impossible to tweak marlin , because need of making memorisation of all amounts of retract for each extruder , to be recovered with the right value and more
keep only this version Slic3r-long-retract.2017.09.02.1345.8c9140f.64bit
Slic3r-long-retract.2017.09.03.1349.6a1ecd9.64bit and Slic3r-long-retract.2017.09.03.1355.5ef96ef.64bit are wrong
THese two last release place a G11 where not allowed , impossible to keep this versions Or delete the functionnalitΓ© that make a G11 just after the tool change. Because before to be recover the nozzle must move on the right area and only after must be recovered but not directly on the object and the other color . This will make a blob on the printed object and with other color
too much G10 too much G11 it's a war :smile: look
G1 X174.744 Y92.592 E2.91138
G10
G92 E0
G1 Z1.850 F7800.000
G11
G92 E0
G10 S1
G92 E0
T1
G92 E0
G11
G92 E0
G10
G92 E0
G1 X63.672 Y98.204 F7800.000
G11
G92 E0
G1 F900
G1 X63.790 Y98.494 E0.0
Please return to this
Slic3r-long-retract.2017.09.02.1345.8c9140f.64bit
Please return to this
Slic3r-long-retract.2017.09.02.1345.8c9140f.64bit
Let's stay at this version that have 2 bugs but that WORKS FINE
This version can works if we DISABLE ' Force retractation after layer '
please return on this versions , it's a good base for continue to solve problems
Upload the model you are testing with.
I am done with this back and forth.
On Sep 3, 2017 3:05 AM, "studiodyne" notifications@github.com wrote:
Please return to this Slic3r-long-retract.2017.09.02.1345.8c9140f.64bit
β You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/alexrj/Slic3r/issues/4106#issuecomment-326790518, or mute the thread https://github.com/notifications/unsubscribe-auth/AAB8CpG3EDxNi_-C8LaDcIfN9lVkfb_pks5sel23gaJpZM4PK3V1 .
ONLY With Slic3r-long-retract.2017.09.02.1345.8c9140f.64bit
With Force Retract after Layer Change DISABLED ' WORKS PERFECT'
1 Minor bug , not important
- One G10 at the first tool change just after the first T1 , Marlin will ignore it
If ENABLED 1 minor bugs and a big bug :
because G10 will retract the short length , and G10 S1 will retract long length , but when recover , only the long length will be applied and extruder will have a missing length to extrude and this will corrupt printing ... In reality it's not dramatic because after a tool change , the nozzle go to a purge process and if some length are missing on recover , it will not affect printing. But without prime and purge process , print is corrupted
_
If you can solve this it's perfect
@studiodyne Run the next build 7f0e6063ea47bdca1cd27cd8dcb1d5934fa7c8e0. Test with 4106.zip
I've reverted back to the older version and turned on gcode comments to be verbose enough to tell you which extruder Slic3r thinks it is retracting and unretracting.
This configuration also has "retract on layer change" enabled for both extruders.
:large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle:
:large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle::large_blue_circle:
PERFECT !!!! Very good job !! Thk you very much I will print with this one or two weeks and i inform you about if you can add it IN stable version
But if you have time to delete this ' G10 ' that appears after each PRIME tool change it's perfect π i have modified MarlinFW , to have G10S1 after G10 It means , for the moment slicer works only for me and my own custom FW If you correct this bug , all users of marlin will use it now , without a marlin PR not sure to be accepted Thks for all
look
G1 Z0.350 F7800.000
G10 S1
G92 E0
T1
G92 E0
G10 βοΈβοΈβοΈβοΈ ONLY ONE before the first TOOLCHANGE of each extruder , take care to not delete the first G10 of the beginning of the print . I'm sure all first G10 are the same process , then , take care to keep alive the G10 of the starting print π
G92 E0
G1 X63.571 Y98.340 F7800.000
G11
G92 E0
G1 F1800
I told you, turn on gcode comments (verbose gcode). You will see what is going on much more clearly.
with FW enabled and layer forced retract
G10 S1 ; retract for toolchange extruder 0
G92 E0 ; reset extrusion distance
T1 ; change extruder
G92 E0 ; reset extrusion distance
G10 ; retract extruder 1 π΅π΅π΅π΅π΅π΅π΅π΅
G92 E0 ; reset extrusion distance
G1 X100.392 Y100.070 F7800.000 ; move to first perimeter point
G11 ; unretract extruder 1
G92 E0 ; reset extrusion distance
FW disabled and layer forced retract
G1 X96.401 Y109.365 E5.31816 ; infill
G1 E-4.68184 F2400.00000 ; retract for toolchange extruder 0
G92 E0 ; reset extrusion distance
T1 ; change extruder
G92 E0 ; reset extrusion distance
G1 E-2.00000 F2400.00000 ; retract extruder 1 π΅π΅π΅π΅π΅π΅π΅π΅
G92 E0 ; reset extrusion distance
G1 X100.392 Y100.070 F7800.000 ; move to first perimeter point
G1 E2.00000 F2400.00000 ; unretract extruder 1
G1 F1800
G1 X100.346 Y100.195 E2.00413 ; perimeter
May be an init , or Something like that
See the two retracts are for different extruders after the layer change?
π΅π΅π΅π΅π΅π΅π΅π΅π΅π΅π΅π΅π΅π΅π΅π΅ Works now ! Read the end of topic Dual Y Single nozzle direct drive works on MARLIN with FW enabled '0.6mm height π΅π΅π΅π΅π΅π΅π΅π΅π΅π΅π΅π΅π΅π΅π΅π΅
No G10 S1 before ToolChange
Firmware Retractation not ready for Multi Extrusion printing
Firmware retraction when ' selected ' , forget to make ' tool change retractation in multi extruder printing , but works fine when only one extruder because no need of tool change long retract. Please implement G10 S1 just before a toolchange , to make the long retractation , if a dual nozzle the print is still possible but dirty with missing perimeters because of not primed extruder , but if SINGLENOZZLE ' Y ' , with 50mm load/unload the print crashes !
Firmware retraction activated Multi extruder print is impossible
Using TOOLCHANGE TAB ToolChange Tab unusable because of REPEATING of the G10 than can confuse the machine
Slic3r Request PR π₯
I have made a topic about ' Firmware retractation ' here Understanding FIRMWARE RETRACTATION G10 / G11 / G10 S1 #7597
No Firmware retract All is perfect
:fr: