-
-
Notifications
You must be signed in to change notification settings - Fork 527
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Combine XY and Z moves at the start of the print #241
Comments
problem is, before going to z= first_layer_height + zlift, we don't know the z of the printer. but i think it's possible to add a mega-zlift for the first layer. basically if layer_heught == lift "above_z", then double the z_lift. Enough? |
Yeah, I am certainly not asking for parsing custom gcode. But I don't think I understand the issue. Can we just first go to a safe Z eg. 10mm and then combine the initial Z and XY moves into a single XYZ move. The X, Y and Z values can stay exactly the same as original, there is no need to compute or know anything else. What am I missing? |
problem is that you have to go back from "10mm" and at the right place, and that is a bunch of special cases, as it interacts with lift, offset, and some others things. it's possible but tedious. |
OK, so can you explain the mega-z-lift workaround? I didn't get that either :-( What is z-lift? Can you describe the sequence of moves that would happen? |
OK, so I found that Z lift in Slic3r++ is what Cura calls Z hop on retraction. I then realized that maybe you meant this: lower to the first layer height as it is now, then raise Z by some amount and then do the XY move and then lower again. Is this what you meant? If so, I think this would work as long as the Z raise amount is not tied to the "Z lift on retract", because that may have to be set independently (e.g. forced to be 0). It would have to be a separate parameter but maybe a hard coded value would work too. |
yes. oh, you can already do that right now. just add an other extruder, set the z-lift of the first extruder to 2mm, slice, add an extruer change at the second layer, and that's it! (it's for testing purpose, as it's a bit of an inconvenience, but it's exactly the behavior i propose). should i add a hardcoded minimum distance for the mega-lift, like more that 10*extruder width ? |
I think this would work. So with z-lift=0 and first layer=0.2mm this will travel at 0.4mm? I would not even bother with all travel moves, just the initial move to starting XY. In general I do not like to use any z-hop/z-lift. But if you do implement it for all travel moves then yeah, I think some minimum distance is needed. |
…height) can be disable if no z-lift is used for the extruder of the current object. can be enable with no z-lift by using random value for z-lift and retract_lift_above to 9999
Finally, i accepted that i need to tinker with the current lift, much simpler to do. So it's you first idea, more or less. |
Thanks, I downloaded the latest CI build with this change but I am getting strange results. I set
but I am still seeing this in the g-code:
so it still does the initial travel move at the first layer height. Also, later in the g-code I see this:
??? |
oh, i added it before each object, but not the skirt ... i'll correct that |
Thanks! |
* At the first move, merge Z-move and don't split the travel, so the printer won't "dance", whatever where the nozzle is. Note:it's a hack, please redo it properly when reworking gcode-writer. * retract_lift_first_layer is gone back to the old simple behavior (revert b16ecbf) * removed auto extra lift for first layer, now that lift_min exists. * with complete object, don't unlift at object/first layer change, to avoid Z-dance * lift_min will be used between brims, skirts, objects but not between object-skirt, object-brim and their object #1783 #1775 #1575 #599 #429 #395 #241
* At the first move don't split the travel * At the first move, if start_gcode_manual and no layer_gcode, don't lift the nozzle so the printer won't "z-dance", whatever where the nozzle is. Note:it's a hack, please redo it properly when reworking gcode-writer. * retract_lift_first_layer is gone back to the old simple behavior (revert b16ecbf) * removed auto extra lift for first layer, now that lift_min exists. * with complete_object, don't unlift at object/first layer change, to avoid Z-dance * lift_min will be used between brims, skirts, objects but not between object-skirt, object-brim and their object #1783 #1775 #1575 #599 #429 #395 #241
Also change other behaviors to be compliant: * At the first move don't split the travel * At the first move, if start_gcode_manual and no layer_gcode, don't lift the nozzle so the printer won't "z-dance", whatever where the nozzle is. Note:it's a hack, please redo it properly when reworking gcode-writer. * retract_lift_first_layer is gone back to the old simple behavior (revert b16ecbf) * removed auto extra lift for first layer, now that lift_min exists. * with complete_object, don't unlift at object/first layer change, to avoid Z-dance * lift_min will be used between brims, skirts, objects but not between object-skirt, object-brim and their object #1783 #1775 #1575 #599 #429 #395 #241
Version
2.2.50
Operating system type + version
Windows 10 (18363) 64-bit
3D printer brand / version + firmware version (if known)
TwoTrees Sapphire-S upgraded with Klipper v0.8.0-526-gf0c394de and SKR 1.4 Turbo
Behavior
At the begining of the print the head always first drops to the initial layer height and then does a fast horizontal move to the correct (x, y) location (this is all after the custom start G-code).
Slice the attached project
Observe the G-code at start (after home and custom g-code):
Single 3D move would be safer in case the bed is not perfectly level
First Z drop, then XY move
Is this a new feature request?
Yes (I think?)
Project File (.3MF) where problem occurs
belt_tensioner.zip
The text was updated successfully, but these errors were encountered: