Diagonal Z hop - Help me test this new slicing idea

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 พ.ค. 2024
  • In the face of a real torture test challenge, I thought of a new way to handle Z hop. The same clearance to prevent collisions, but with the hope of reduced stringing. This concept is called diagonal Z hop, and in this video I’ll show you my results and show you how you can help me test it.
    Try diagonal Z hop here: teachingtechyt.github.io/diag...
    0:00 Introduction
    0:37 E3D overhang egg - A proper torture test
    Overhang egg on Printables: www.printables.com/model/1585...
    3:57 Understanding diagonal Z hop
    5:21 How the post processor works
    Link to source code on GiHub (diagonalZhop() function): github.com/teachingtechYT/tea...
    7:52 My print test results
    Retraction test page with STL: teachingtechyt.github.io/cali...
    3Dbenchy: www.3dbenchy.com
    9:09 Alternate strategy with results
    11:00 Weaknesses and potential improvements
    11:35 Conclusion
    Buy quality and affordable filament from X3D. Buy 3, get 1 free and a free sample pack with every order: www.x3d.com.au
    Get Quality Resins from 3D Printers Online. 5% off storewide for Teaching Tech subscribers [Code: tech5]
    3dprintersonline.com.au/
    Take a look around and if you like what you see, please subscribe.
    Support me on Patreon: / teachingtech

ความคิดเห็น • 246

  • @bujin5455
    @bujin5455 ปีที่แล้ว +197

    I think you need to ask yourself "why" does z-hop cause stringing when just horizontal movements don't? The solution comes out of that question. I think the difference in stringing between z-hop and no z-hop is two fold:
    1) When you lift the nozzle directly off of the print surface, the action of doing this creates a suction effect which pulls some of the molten plastic back down the nozzle. You then move the head, stringing the molten plastic.
    2) When you move horizontally (instead of lifting) you avoid the suction effect, and you create a wiping effect which helps clean the nozzle, avoiding stringing.
    With these two effects in mind, I believe you can see why your "diagonal Z hop" produces the effects that it is.
    I can see two possible solutions to this.
    First solution:
    Start the hop maneuver AFTER you have already horizontally moved off of the print surface (and you are in the air), thereby maintaining the wiping effect, and avoiding the suction effect.
    Second solution:
    Begin the hop by doing a quick filament retraction, and at the same time an in-place head orbit, providing the wiping effect, toward the end of the orbit start increasing your z height. In practice this looks like a corkscrew movement, as you begin your hop. The filament should be continuously retracted throughout the corkscrew movement, providing a reverse suction effect, to counter act the somewhat reduced suction effect (reduced because of the spiral lift) that will remain from lifting off the surface. I believe Bambu Lab is using this method in their slicer (this is what my X1C looks like it's doing), and it seems to work pretty well.

    • @davydatwood3158
      @davydatwood3158 ปีที่แล้ว +9

      Solution 1 wouldn't solve the core problem, though, unless I'm missing something. The entire reason for doing the z-hop is to not move horizontally while the nozzle is still at risk of hitting the print. Moving horizontally to avoid stringing before hopping has most of the risk of collisions that not hopping at all does, I would think.

    • @bujin5455
      @bujin5455 ปีที่แล้ว +23

      @@davydatwood3158 it depends entirely where the point of failure is. There are three potential failure modes here:
      1) You are printing along, finish a run, and as you move to your next print location, you run into a protrusion close to where you were just printing.
      2) You finish a run, and you run into a protrusion somewhere between where you just finished and your destination.
      3) You finish a run, and you run into a protrusion very close to your destination print site.
      Number 1: doesn't cause failure all that often because the area is fresh and warm, and deforms easily, and so bumps tend to move out of the way.
      Number 2: happens some times (though most slicers try to avoid unnecessary travel over the model), but since it should be an island, you should jump over it with the first solution I proposed, as you are doing a z-lift as soon as you get into free air. Also, you could prioritize finding free air to make that z travel.
      Number 3: is the failure mode I observe most often, because the destination is usually cooled significantly (as its often gone the longest without being touched), thus it's already pretty rigid, and the print head has reached it's maximum travel speed, so it hits with the most force. The first solution completely addresses this failure mode.

    • @Kalvinjj
      @Kalvinjj ปีที่แล้ว +4

      @@bujin5455 Yes, I've seen that specially in supports. The print head can freely move away from the curling little horns (I hate those...), but when it's reaching the destination it will knock it out easily as it hits the curled up horns sharply.
      Happens a heck lot with top parts of a circle.

    • @davydatwood3158
      @davydatwood3158 ปีที่แล้ว

      @@bujin5455 you make a very cromulent point, sir! I defer to your greater knowlege.

    • @reinux
      @reinux ปีที่แล้ว +3

      Maybe we can make a script that'll generate a matrix of different retraction + hop timings to see which ones work best for which filament/printer.

  • @JonNewell
    @JonNewell ปีที่แล้ว +23

    I bought my first 3D printer this week, a Bambu Lab X1 carbon. It printed this egg in just over 1hr, with no issues or stringing, no supports. Used generic filament too. So far I’m blown away with this printer.

    • @JP-xd6fm
      @JP-xd6fm ปีที่แล้ว +8

      Man, is like someone starts racing cars with a F1 instead of a little crappy car... Lucky bastard! 😜😜🤣

    • @No0o0o0o0o0
      @No0o0o0o0o0 ปีที่แล้ว +2

      Exactly , just dropped the file in, sliced then printed. NO changes to default and perfect print in an hour. I am on over 1500hrs printed so far. Only cleaning/greasing and belt tightening maintenance. So between your new out the box and my seasoned X1C fast accurate prints are straight forward on some printers.

    • @OutOfNamesToChoose
      @OutOfNamesToChoose ปีที่แล้ว

      I'm really proud of the progress that 3D printing has made. I'm still using my first 3D printer of an Ender 3 Pro, and hearing people like you getting into 3D printing with such significantly better printers makes me excited about what will be available years down the line when I decide to upgrade.

  • @emilcost8613
    @emilcost8613 ปีที่แล้ว +8

    When printing parts with little first layer contact area, I add a 5mm brim and use glue stick. You can also add a little paint on supports even though you may not need them. The support base adds a little sticking action to small first layer parts. I also slice the model using Prusa's cut function. This adds the extra step of gluing the parts together and adding a little filler to sand. I greatly admire your skills at programming G-code.. very impressive work on developing the diagonal Z hop. Nice work!

  • @johnathon007
    @johnathon007 ปีที่แล้ว +4

    It really seems like the more blended the axis movements become the better the prints turn out. Eventually I'd like to see a slicer that moves more organically mixing all 3 axis smoothly.

  • @hal_wayland
    @hal_wayland ปีที่แล้ว +1

    I've had the idea for this but certainly didn't think of postprocessing the G-code to try it out :D Cool to see that someone has tried it out, that it seems to work, and that you've given us a tool to try it out ourselves. Thanks!

  • @MetalRhino42
    @MetalRhino42 ปีที่แล้ว +1

    I hope you're remembered in the future for all the stuff you have contributed to 3d printing

  • @ChrisTheBear93
    @ChrisTheBear93 ปีที่แล้ว

    It's funny how I was thinking about this just yesterday. Genius. Keep up the good work 👏

  • @yru2501
    @yru2501 ปีที่แล้ว +2

    Important thing is when retraction occurs. For long time retracting in slicer was done WHILE moving up Zhop. This was perfect receipt for string to pull. You can fine tune it with "wipe". Enforcing 50-90% of retraction before wipe will break string before mowing up. I checked 2.5 PS and this behavior is corrected. Still by using last few mm of path as place to wipe /not much settings in PS/ you could better break string. A blob will start to form, but a "reverse wipe" on landing could hide it. And after a month of tuning... :D

  • @amandamoger9648
    @amandamoger9648 ปีที่แล้ว +1

    Love your way of explaining...Just sliced a model part in the z hop script that usually strings bad no matter how I tweak it. Probably 70% less which as i produce models to sell means less clean up time. Always something new to try....thanks for the effort....

  • @htpkey
    @htpkey ปีที่แล้ว +7

    Awesome experiment Michael!
    It's awesome that you added the source code!

  • @eskanderx1027
    @eskanderx1027 ปีที่แล้ว

    Great idea with the alternative hop

  • @fookingsog
    @fookingsog ปีที่แล้ว +33

    Most of my stringing and overhang issues have been remedied by setting layer height to 0.16, 100% fan, retract & then wipe towards infill before moving to another area. No Z-Hop necessary.

    • @noway8233
      @noway8233 ปีที่แล้ว +6

      Zhop is very usefull for avoid crash with parts pf a model , specially if yuo print fast ,for me "fast" is 120 , 150 mm/s

    • @DanielSanPedro
      @DanielSanPedro ปีที่แล้ว +1

      I didn’t know one could wipe towards infill before hopping. Going to have try that in addition to diagonal.

    • @fookingsog
      @fookingsog ปีที่แล้ว +1

      @@DanielSanPedro I think it's termed "wipe inwards" if memory serves me correctly.

    • @Nanoqtran
      @Nanoqtran ปีที่แล้ว +1

      @@fookingsog which slicer are you using?

    • @fookingsog
      @fookingsog ปีที่แล้ว +2

      @@Nanoqtran Currently using SuperSlicer.

  • @mthobbies5885
    @mthobbies5885 ปีที่แล้ว +32

    Very cool idea. I’ve always thought it would make more sense to have an extrusion path finish then retract followed by a wipe move away then a vertical lift. Followed by a travel move. All the benefits of a hop without stringing.

    • @LightCarver
      @LightCarver ปีที่แล้ว +7

      Wipe while retracting is an option in Superslicer. Has about a dozen options for adjusting it's behavior too. Prusaslicer has it too, possibly other slicers.

    • @Montragon29
      @Montragon29 ปีที่แล้ว +3

      There are options like these also in Cura. wipe distance within wall, after/before retraction, etc...

    • @Montragon29
      @Montragon29 ปีที่แล้ว +1

      @@LightCarver these options exist in Cura too(wipe distance within wall/path after retraction etc). Also there is an option for coasting within wall/path before/after retraction, before movement to other parts of the print or layers.

    • @mthobbies5885
      @mthobbies5885 ปีที่แล้ว

      @@Montragon29 I didn’t know that.

    • @LightCarver
      @LightCarver ปีที่แล้ว

      @@Montragon29 That's good. I haven't used Cura in quite a while and didn't check.

  • @TherealSquiffy
    @TherealSquiffy 10 หลายเดือนก่อน +1

    yoo teaching tech. an hour ago i started printing the overhang egg, and guess what??? it went perfectly first try! I have no idea how, but it has very little stringing and very good quality. and with default settings!?! I really have no idea how it worked so well.

    • @TherealSquiffy
      @TherealSquiffy 10 หลายเดือนก่อน +1

      and yes... no brims or rafts.

  • @nandingpanelo
    @nandingpanelo ปีที่แล้ว

    Youre amazing. Happy new year

  • @Drakoman07
    @Drakoman07 ปีที่แล้ว +4

    What an interesting concept! Michael, I’m always impressed with your intuitive explanations. No wonder you’re a teacher, you’re killer at it!

  • @stefanguiton
    @stefanguiton ปีที่แล้ว +1

    Awesome work!

  • @MCsCreations
    @MCsCreations ปีที่แล้ว

    Pretty interesting idea indeed, Michael! 😃
    Stay safe there with your family! 🖖😊

  • @bowieinc
    @bowieinc ปีที่แล้ว +1

    Great video!!! Very impressed!

  • @hyprodimus
    @hyprodimus 10 หลายเดือนก่อน +1

    This has been added to Orca Slicer (i switched from Cura, its been amazing). Under the Printer Settings --> Extruder --> Retraction --> Z hop type --> Slope
    Switching from Normal (vertical) to Slope solved my stringing problems. I was trying to modify temperature, retraction length, retraction speed, drying filament, etc, you know all of the traditional things that can help. The only thing that worked was disabling z hop. Of course you lose the benefits of z hop, and risk knocking off prints. Then I came across your video and discovered that its already in the slicer! I reset my settings and only changed to use Z hop Slope, and the stringing is virtually gone! Im at 220 C temp for PLA, 0.8mm retraction distance for a DD extruder, 45 mm/s retraction speed. Pretty normal I think. Anyways, this makes me love Orca slicer even more. Orca has all the best features from the other slicers and some unique ones.

  • @bj_
    @bj_ ปีที่แล้ว

    I remember years ago an experimental slicing tech where, at the end of a perimeter move, it would partially re-trace the perimeter to wipe the tool and smoothly lift off the part following that direction and then when it was off the part would curve mid-air towards the next extrusion target.

  • @laudavhutcheon946
    @laudavhutcheon946 ปีที่แล้ว

    I swear all my devices are listening to me :) I'm having an issue with my very large printer hotend dragging, pulling and damaging the print. Miraculously this comes up in my you tube feed today. Life saver!!!

  • @runklestiltskin_2407
    @runklestiltskin_2407 ปีที่แล้ว +5

    Looks to me like you could improve the bed adhesion, too.

    • @sublucid
      @sublucid ปีที่แล้ว

      Yeah, I thinking “Uhhh, did you try using a brim?”
      But there might be another issue that crops up in that case if it’s hitting curled up edges…

    • @Karavusk
      @Karavusk ปีที่แล้ว

      @@sublucid I was thinking "why isn't he using 100% fan speed all the time for pla?"
      Z hop is not something I would ever use to fix this

  • @BenRyherd
    @BenRyherd ปีที่แล้ว

    That's so wild, obviously you thought of it first because you tried it and made a video already but I had this EXACT idea this morning when I woke up. The conclusion I came to is that you'd have to be able to set the "diagonal angle" otherwise really detailed parts with a little curling might still get hit if the hotend didn't get to the full "hop height" before travel, and if you get to the full hop height before the diagonal move it actually just ends up being a longer travel move.

  • @RaphaelRema
    @RaphaelRema ปีที่แล้ว +12

    Nice idea, Michael.
    After travel, maybe if the nozzle lands at the infill instead of at the perimeter would help a bit more.

    • @ottoglockner8467
      @ottoglockner8467 ปีที่แล้ว +3

      yes! also maybe before "lift of" the nozzle goes a bit inwards to the part while retract and then makes the z hop to the other location to pint.

    • @RaphaelRema
      @RaphaelRema ปีที่แล้ว +2

      @@ottoglockner8467 Perfect! Like a wipe on the infill before and after the travel. That would be awesome.

  • @user-mz6qu3hz6m
    @user-mz6qu3hz6m ปีที่แล้ว +1

    Michael, I attempted to print some POM in my X1C today, and at one point I slowed the print speed down to 10mm/sec, and I noticed the X1C does something my Prusas do not-the print head does a little curly-q motion on retractions, so in effect it’s kind of doing what you’re suggesting here. Try it on your X1C and see what I mean. Very interesting.

  • @2mD
    @2mD ปีที่แล้ว

    while watching the first part of the video i was thinking that it would work better if the z hop only goes up vertically and then drops straight down to avoid hitting curled up edges.
    im glad i watched to whole video before commenting because apparently you had the same idea ;)

  • @Dekker3D
    @Dekker3D ปีที่แล้ว +1

    I would've implemented this at a constant diagonal angle, like 10-20 degrees from horizontal, up until it hits the desired z-hop height. That seems like the best way to avoid those curled-up bits consistently, and also makes small hops much less of an issue.

  • @JamShady
    @JamShady ปีที่แล้ว +2

    The reason I use z-hop is to avoid hitting printed parts, as you demonstrated with the curling edges of the egg. Your modification appears to ignore this necessity by making the upwards travel move so slight over larger distances that there is probably more likelihood of it hitting the printed part on larger prints. I would suggest you need a slight modification to your 'alternate' approach which is to make three movements; first a short diagonal move upwards which introduces the required height for the z-hop, but also keeps the nozzle moving horizontally, then move the rest of the way horizontally and finally descend as appropriate to the required location. Imagine the path like the flight of a plane; short and quick ascent, linear travel, and then descend. That would appear to satisfy everything. As for how well it prints... let's see?

  • @RomanoPRODUCTION
    @RomanoPRODUCTION ปีที่แล้ว

    Interesting job, let's hope prusa will hear you about that.

  • @antonkoenraadt
    @antonkoenraadt 8 หลายเดือนก่อน

    Inspiring video:) How does this test and theory compare to pulbic domain Orca slicer Spiral or Slope Z hop type settings?

  • @goldchain34
    @goldchain34 ปีที่แล้ว

    I think the alt z-hop that would work best is the one that starts at the same level at the print, retracts (and in it's movement away acts as a sort of wipe), but then change height to max z-hop height during travel, to then stop and lower into place over the next starting point. It accomplishes the "wipe" when leaving, and the z-hop to avoid little lips (as you pointed out) when moving back to a section.

  • @mariobro1954
    @mariobro1954 ปีที่แล้ว +8

    My idea for this was to removed the original z raise and add the Z height increase to the destination gcode before the gcode for lowing back down on the Z. This is diagonal on the take off, but normal Z lower as you go back down to the part. I have created post script I run from excel VBA code to achieve this. (I see you got to this point as well. Didn't watch the video first.. lol)

    • @yellowdog3872
      @yellowdog3872 ปีที่แล้ว +4

      I think you're right with this. The was the diagonal hop is done in the video would still lead to a collision or still have a higher chance of one. Your method actually gets to clearance height where it matters, not in the middle where the hop height doesn't make a difference.

  • @CodeMasterCody88
    @CodeMasterCody88 ปีที่แล้ว

    I modded my ender 3 with a fan on the gantry and it's a blower fan and it's amazing. Printing now and it's doing great. Thanks to your linear advanced plus the NEW input shaper on marlin I am very pleased. You should download the 2.1.2 enable the input shaper deleting the slashes and then follow their instructions and I'm over here with 3k acceleration with 120mms on an ender 3 bed slinger my gosh!

  • @JoshMurrah
    @JoshMurrah ปีที่แล้ว +2

    I think this is about 80% right, and I'm really intrigued by your thoughts here - I think there's an additional constraint/limit here... you need to leave at the start of travel, and arrive at the end of travel, at a certain movement angle, say 30 degrees, or so... if you do a long travel, you are risking hitting curled edges somewhere, since you're moving mostly horizontally at one or both ends. This means a move is in three phases... leave at a degree of uptake until (and if) you reach your z-hop height, then a horizontal travel section if needed, then at the right point, start your descent into the end of the move at the arrival angle. This means more complicated gcode and possibly accel/decel delays, but the angle you leave and arrive at, needs to be constrained to keep from these quasi-horizontal start/end of the move.

    • @reverse_engineered
      @reverse_engineered ปีที่แล้ว +1

      That was exactly my thought too. His issue with short travels was that the angle was too steep. Rather than limit the minimum distance, he needs to control the angle. It ends up looking a lot like an acceleration curve: a fixed angle up to the desired height, a flat travel at that height, then a fixed angle down to the end of the travel.

  • @PiefacePete46
    @PiefacePete46 ปีที่แล้ว

    There's two factors contributing to the failure:
    (1) The warped protrusions that the head colides with. This is the real issue, and is the first thing to fix, if possible.
    (2) Bed adhesion... if the part is immoveably stuck to the bed, it will help avoid disaster when collisions do occur. Michael, along with all the 3D printing channel Gurus, have long since adopted their favourite systems. Some time back, I watched an excellent series, pre-dating 3D printers, on Rapid Prototyping by Dan Gelbart. He explained that if you clean a surface with Isopropyl Alchohol, or products like thinners, you actually leave a layer of hydrocarbons. Although it is typically only one atom thick, it acts as a separation layer. I think he said that a detergent which can be rinsed off completely is preferable. Ivan Miranda demonstrated his preferred method in a video: basically clean it with dishwash liquid, (no additives, colouring, perfumes), rinse with hot water, pat dry with a paper towel (I just shake my glass bed until only the tiniest of droplets remain; the heated bed gets rid of those.) From that point on *** DO NOT TOUCH IT... E V E R ! ! ! ***
    This has worked for me, but Michael's test model will be a challenge for any method.
    Watching with interest!

  • @reneeceldesigns3965
    @reneeceldesigns3965 7 หลายเดือนก่อน

    Can I make another suggestion. Keep the setting without Z hop for 2mm initial movement. Then perform the Z hop. Thus you keep the original non Z hop 'wipe' movement and keep the benefits of Z hop.

  • @redrover1154
    @redrover1154 ปีที่แล้ว +1

    While I can understand the 'up' portion of the diagonal move, I'm not sure the 'down' portion of the diagonal move actually contributes much to the improved print quality. If the benefit of the diagonal move is to clear the nozzle from curled edges, you would theoretically want to reach the maximum height of the z-hop as soon as possible (at an angle that still provided the low-stringing benefit of course), sustain that z-position, then drop to the model at the intended destination (such as in your alternate diagonal move) Moving diagonally upwards the entire travel move seems to just increase the risk of clipping some element of the model over long distance travel. So perhaps you could include another parameter that controls the total distance traveled before the maximum z-hop height is achieved.

  • @RoHo764
    @RoHo764 ปีที่แล้ว

    Thanks!

  • @Marzec309
    @Marzec309 ปีที่แล้ว +5

    Here's an idea to tweak your alternate Z hop. If you can travel off the part horizontally and then once clear start the alternate hop motion. This way you still get the wiping action as the nozzle clears the part.

    • @alejandroperez5368
      @alejandroperez5368 ปีที่แล้ว

      Outer perimeters need to be printed last, and the nozzle needs to move to the point where the nozzle has the shortest path to exit the printed area, even if it means moving away from the next printing point, otherwise you may hit your already printed section (curled borders). Once the nozzle is outside, lift and move it towards the next printing point, going down vertically. Also, retractions may need to be tweaked.

    • @TheSupertecnology
      @TheSupertecnology 7 หลายเดือนก่อน

      Cura already does such thing; parameter is called "avoid printed parts" and it can also avoid support material. It does choose between a z hop or an avoidant travel move though, but never both simultaneously.

  • @kel5944
    @kel5944 ปีที่แล้ว +7

    I think this has great potential. I think it might work better if the travel path is shaped more like this _/---| basically, move horizontal first as if no z hop at all, but then quickly go up at an angle to max z hop height to get as much benefit as possible. Then go straight down to the part to print in case the part you are about to print to has curled up. I think that would make it less likely to catch the nozzle than dropping diagonally to that point.

    • @Dustmuffins
      @Dustmuffins 10 หลายเดือนก่อน

      This is pretty much exactly what happens in Orcaslicer if you enable slope zhop. It works extremely well and I was able to print the torture egg on the first try with nearly zero stringing.

  • @andybrice2711
    @andybrice2711 ปีที่แล้ว +3

    I have a related idea which I've been wanting to try, but I'm not quite good enough at G-Code yet. Let's call it something like "Non-Planar Bridging". I'm wondering if we extruded bridges in just the right arc/parabola/catenary shape, whether we could eliminate sagging.

    • @SianaGearz
      @SianaGearz ปีที่แล้ว

      I don't believe that this is possible. But I can give it a try and it's an interesting idea. You don't expect the extruded bead to fully cure while you're bridging. Indeed thus helps you keep it somewhat clean as surface tension helps you fight gravity and maintain low sag. So when you draw your bridge faster, it actually succeeds more. You can also underextrude the bridge, since area will drop a little with extrusion width but volume and weight will drop much faster.
      But very slow bridges cure more and maybe it is a thing that can be done.

  • @Chazlolok
    @Chazlolok ปีที่แล้ว

    Love it

  • @Happy3dprinting
    @Happy3dprinting ปีที่แล้ว +2

    Without this sort of concept testing and development ideas we wouldn’t have 3d printing as today. Great idea and I will be testing this as soon as I can.

  • @digital0785
    @digital0785 ปีที่แล้ว +3

    i had thought about adding a slight raise during bridging to keep sagging down as it has potentially time to harden more of a "stretched" state so it's essentially bowing up to compensate for the sag

    • @MatrixRage
      @MatrixRage ปีที่แล้ว +2

      In manufacturing with beams or other structural steel, such as the main rails of trailers, etc this concept is called “pre-cambering” they camber the material so that it’s bowed upward when there is no load, but after the structure is loaded,it supports it flat

  • @bert_b13
    @bert_b13 2 หลายเดือนก่อน

    "Curse this overhang egg." 😂Legend.

  • @triblade1669
    @triblade1669 ปีที่แล้ว

    I think this will work amazing. Industrial machines already use this idea. My jobs laser cutter let's you choose been curved, diagonal, out rectangular movement when moving from part to part.

  • @Duraltia
    @Duraltia ปีที่แล้ว

    Halfway into the video I was already about to suggest the Alternate approach which by the time the video finished became redundant - Nice to see my gut feeling not having betrayed me.

  • @hallowedshade125
    @hallowedshade125 ปีที่แล้ว +1

    Wanna get wrecked? Take a shot everytime Michael says Zed. 😆

  • @intheworld99
    @intheworld99 ปีที่แล้ว

    Really interesting your research and testing. Very thanks for your resources in your calibration site and videos. Did you already talk about a way to recover a failed print? I mean a way to launch a new print in top of existing failed print by offseting Z and chopping the gcode at the right "height" or maybe another technique to get it. This would be super useful for those big prints that fail at the very end.

  • @MartinDerTolle
    @MartinDerTolle ปีที่แล้ว

    I think one important parameter would be the delta between the current printing layer height and the height to which the printer head will lift off to. In your example, no such delta is set, so it just lifts off as much as it wants to. My thought process is that the diagonal z-hop, as beneficial it may be, probably only really matters for near the point of lift-off and maybe at the drop-down (not with the proposed alternative, of course), so it would make sense to move the printer head in a straight line onwards from where continuing to move the printer head in the upwards direction would prove no benefit

  • @ObGoRat
    @ObGoRat ปีที่แล้ว

    Cool idea and thanks for helping the community out with your tuning site and tips!
    Would it be possible to let the hotend sidestep to an area where nothing had ben printed yet and no potentially curled up sections could pose a collision risk? Then, you would have the pros of a normal non-z-hop horizontal movement but still dodge printed edges which did curl up. I have no idea about programming though, so I am not sure whether it would be hard to write an algorithm for a slicer which identifies possible pathways in the same level instead of inserting a z-hop to a level where nothing should be because there should not yet be extrusions. On that note, maybe the existing code for non-planar slicing could help out here..

  • @rammiii2908
    @rammiii2908 ปีที่แล้ว

    Great Idea and good explanation. Why not make a small movement to the inside of the print, the direction pointing to the infill?

  • @g3-is-me
    @g3-is-me ปีที่แล้ว +1

    It seems like the moving horizontally has the effect of wiping the nozzle clean. I wonder if a method of retract, then move horizontally off the part, then ramping upward would be effective. Then a simple lowering like you do in the alt method and restoring the filament back to the nozzle would work. Further, to prevent whatever limited filament might be dragged off the edge, a brief reverse in horizontal direction might keep more material away from the part edge. Whatever might remain would potentially have minimal impact on the next layer deposited. I"m still new to all this, so I don't have the experience to predict the possible results.

  • @PaulW7000
    @PaulW7000 ปีที่แล้ว

    This is a great idea, and I like all the replies. Post processing gives infinite flexibility.
    Now my speculation begins:
    I think the hop is required regardless of how well the print is secured, because you must avoid hitting curled edges. (My post processor does this also).
    Another thing to consider - we could call it ooze time - the interval between print operations that the printhead can/will ooze.
    Vertical hops are very inefficient/slow due to the 90 degree angle. Not having the first vertical hop after the retract reduces the time, and so possibly less stringing.
    Three 30 degree moves would be quicker, four moves at 22.5 degrees would be a lot faster. (Remember my Junction Deviation Visualizer, smaller angles corner much faster).
    Yet another thing to consider is that ooze can contribute to nozzle depressurization, particularly when there are a lot of moves in a short period of time. You may see that your extrusion widths get narrower (easy enough to measure). (And there is also filament deformation with repeated retracts). That can be compensated in your slicer.
    I think there may be some shake when your bed is being moved up and down, perhaps that is contributing to the accuracy issue. Angular hops reduce the rate of the bed movement slightly, that might help during the ending movement to reduce resonance.
    You're doing great work!

  • @CodeMasterCody88
    @CodeMasterCody88 ปีที่แล้ว

    Within orca slicer which is a fork of Bambu slice you can use the spiral z hop that Bambu uses on their machine. I use orca for my ender 3 pro. Printing one of these now with spiral z hop.

  • @dovedyson2073
    @dovedyson2073 ปีที่แล้ว

    Love the shirt.

  • @MisterkeTube
    @MisterkeTube ปีที่แล้ว +7

    Do you have "wipe while retracting" set in PrusaSlicer (unsure what it is in cura) when enabling z-hop? I would expect that what your change does is similar to: retract while moving the nozzle over printed stuff to basically wipe it clean and the do z-movements to avoid hitting stuff. That's what I would expect "wipe while retracting" to do when z-hop is enabled: retract and wipe and then move up. So, did you have that option set?

    • @uhu4677
      @uhu4677 ปีที่แล้ว

      I am actually amazed, that he doesn't seem to know this option.
      I always enable Z-Hop, and I always enable wipe.
      No stringing here.

  • @jesta192
    @jesta192 ปีที่แล้ว +2

    What if, in the slicer, travel moves avoided areas near overhangs? I can still see your method hitting the curl in some cases on certain models. If there was a setting that said the travel move must begin away from any overhangs (including a margin), and would also need to avoid printed areas, I think it might be the best way forward.

  • @VaWo13
    @VaWo13 ปีที่แล้ว

    great idea!
    but i think you should've tried adding a small wipe-distance of around 1 mm to the start of the trave!

  • @dev-debug
    @dev-debug ปีที่แล้ว +1

    I messed with this via cura post processing script a while back (I"m older so a while back was probbaly almost 2 years lol). Not for stringing issues but for a smoother surface when using z hop. Lifting straight up was leaving a stippled texture. Never thought about it for stringing nor tested it for that. My end print macro does pull away up and diagonal now so makes sense that could help. I may have to dig the code back out and play with it some more. Maybe I'll release a cura post processing script for it.

  • @MAJ_T_Bagger
    @MAJ_T_Bagger ปีที่แล้ว

    Very cool idea! would your post processor allow a z hop half way through the travel move? Then your normal anti stringing settings shouldn't be affected but still get the benefit of the hop on the next print move?

  • @cosmiccrunch8591
    @cosmiccrunch8591 ปีที่แล้ว

    A simpler and potentially safer (in regards to avoiding collisions) solution would be a short horizontal wipe while retracting and then a normal z hop before completing the full travel move.

  • @Plumpkatt1
    @Plumpkatt1 9 หลายเดือนก่อน

    I am curious how someone who uses FW retraction and sets Z hop there could benefit from this? I found this Spiral Zhop setting in Orca which led me here. Orca has me wondering too since I usually use FW retraction. Wondering how this will react using Orca FW retraction and Zhop Alternatives?

  • @mikejones-vd3fg
    @mikejones-vd3fg ปีที่แล้ว

    Clever work around and perfect timing because it may not be needed soon, I just saw a solid state cooling fan with no moving parts at CES, super cool and would be perfect for 3d printing. And what do you know the issue of the print not sticking is directly related to cooling. I wonder how much speed we're actually loosing because of non optimal cooling. I see fan upgrades in the 3d print community all the time but nothing much more said after that. The company claims it can improve laptops performance x2 is how bad cooling is these days , giving them another 5-10w of headroom, which is alot if your processor is only 15w to begin with so a pretty major breakthough in coolin technology i cant wait to see it applied to 3d printing. Maybe you could mod an ender 3 to print at 500m/s with that kind of fan? I saw the video on PCworld's channel that shows it off at CES if anyones interested and Frore Systems is the company. It looks like a flat lithium battery that apparenty is filled with these small vibrating membranes that suck air in at incredible speeds and blow it out the end.

  • @ScottLahteine
    @ScottLahteine ปีที่แล้ว

    In general the diagonal Z hop is similar to the wiping option in the slicer, providing a little more surface and time to capture oozing filament. A short retraction as part of the Z hop may also help the process for objects with small surfaces. And you may get even more improved results by accurately tuning Linear Advance, and of course doing all you can to avoid ooze and wet filament that generates uneven pressure. Oiling the filament (e.g., with a paper towel dipped in vegetable oil) is another old-fashioned way to reduce ooze because it produces a slightly more regular extrusion. The object I sometimes use for this kind of stress testing is the classic Voronoi Skull at a very small size. Even before we had Linear Advance I was able to tune my old crufty Prusa i3 to the point where the output was almost completely string free. Anyway, diagonal Z hop is a fine variant of wiping and it would make a useful OctoPrint plugin while we await the slicer option.

  • @benjaminjohnson6476
    @benjaminjohnson6476 ปีที่แล้ว

    This is a thought i had for a gcode modification that i dont have the skills for but could reduce travel times in prints. What i have noticed is if you align the zseam to one spot like a corner the slicer will be starting and ending each wall in relatively the same spot. So i thought why have it stop, retract, move, prime, print when it could just continue from the end of one wall to the adjacent start of the next wall out. Effectively connecting all the walls into one cohesive snaking wall for each layer. To me this seems like it could reduce travel times pretty well.

  • @CB_agotchi
    @CB_agotchi ปีที่แล้ว +2

    I think there's something to it. Bambu slicer uses a spiral z hop and it works great 🤷🏻‍♀️

  • @pyalot
    @pyalot ปีที่แล้ว

    I think stringing is reduced with no z-hop because the bit of oozing filament is wiped off as the head moves sideways away from the just printed part. You could experiment with „micro wipes“. Basically retract, then do a little wiggle before hopping.

  • @yusky03
    @yusky03 ปีที่แล้ว

    I printed this out of ABS using the same settings I use to print all my Voron Parts. Came out perfect other than some minor miss aligned bridge extrusions due to the bridges being on a curve. I guess the low part cooling needed for ABS with 40c chamber temps really makes this a cake walk for ABS. My Lift Z is set to 0.2mm and I didn't have any stringing. I even even have outer perimeters printing first which should make overhangs harder to print.

  • @Enjoymentboy
    @Enjoymentboy ปีที่แล้ว

    Watching the animation showing the difference between standard travel z hop and diagonal z hop really clarified this for me. I'm new to 3d printing so I am taking in all the info I can and this is great stuff. But one thing hit me: Why do the hop from 2 edges that at close together instead of from the "outer" edges? Using the tower you showed in this video would it help to do the hops at the outside edge, travel over the printed surface doing the diagonal hop and then "land" on the outer edge on the other tower followed by moving inwards as those layers are applied? I suspect I'm not describing it well but I would think that the stringing could be reduced if the strings are connected inside the print surface instead of at the edges.

  • @GuckerAndi
    @GuckerAndi ปีที่แล้ว +1

    When looking at the alternate diagonal z hop, it seams that the stringing is more at short travel moves. I guess thats the result of a bigger angle between horizontal and the travel move. Maybe you get better results by defining the diagonal angle to be constant instead of the travel height. You could still have a maximum height and after reaching that a horizontal move.

  • @Sebastian0x7BF
    @Sebastian0x7BF ปีที่แล้ว

    I think you have to avoid any nozzle movement but the horizontal one just after the retraction - as far as I get it that’s the main cause of reduced stringing when no Z-hop is in use.
    The Z-hop has to be done just before the nozzle reaches the next extrusion point to avoid the collision.
    Of course the transition between movements can be fluent like S-shape to reduce resonances, however it’s a matter of fine tuning the whole idea.

  • @valshaped
    @valshaped ปีที่แล้ว

    I think starting flat and using a curve upward at the start of the move would be a good choice

  • @ashleys3dprintshop
    @ashleys3dprintshop ปีที่แล้ว +2

    I know the X1C does a Z hop while printing but I just that ran model on my printer and it printed fine, no stringing, on default settings in 1 hr.
    Uploaded for proof.

    • @tfinzel
      @tfinzel ปีที่แล้ว +1

      Same for me on my Bambu Lab X1C. No problems with that print.

  • @markdavis1338
    @markdavis1338 ปีที่แล้ว

    Have you considered incorporating acceleration and deceleration in the Z and/or filliment feed profiles?

  • @cho4d
    @cho4d ปีที่แล้ว +2

    like you i suspect the key is in the initial move away from the model. i think starting the move horizontally (ie. identical to no z-hop) would be worth trying. then raise Z while travelling using a sine function or something so most of the vertical move is done near the end to hop over the obstacle before plopping down again.

    • @bsimmons00
      @bsimmons00 ปีที่แล้ว

      Wouldn't this just lead back to the original issue of the nozzle catching on the curled overhangs? That was my takeaway from the video. The diagonal hop is interesting but you still need that initial vertical hop of some sort to get clearance over any curling.

    • @bujin5455
      @bujin5455 ปีที่แล้ว +1

      @@bsimmons00 depends on which overhang you're talking about. If you're talking about the overhang (protrusion) at the destination, then no, you're hoping over it. If you believe the problem is because of a protrusion closer to the head's current position, then yeah, you won't avoid that. Though, from experience, it seems like there are few issues that arise from bumps near your current print site (probably because of how fresh and warm the area is), and most of the issues come from crashing into something near the end of the travel to the next print destination (which is cooler and more rigid).

  • @gerthddyn
    @gerthddyn ปีที่แล้ว +1

    I'm curious about Patrick's egg. His looks perfect and even zooming in you can see almost none of the overhang jaggies yours has. Did he expound on his settings to get that and his printer? I'm still not sure what causes stringing with z-hop and why you don't get any if you don't do it and go in a straight line.

  • @rui701
    @rui701 ปีที่แล้ว

    Can you have like 10% of the first movement purely horizontal, then use the alternate..
    So that oozing of the PLA is not going up but over the part without lifting up a single mm..
    (Hope you can understand my idea)
    Thank you for this great content!!

  • @iannicholls2790
    @iannicholls2790 ปีที่แล้ว

    My guess, explained better by Bu Jin here, is that the stringing would be reduced if you didn't raise until the head is in mid-air. That is, delay the z-hop for a mm or two, but keep it vertical. This way, it wipes away any stringing on the source island, z-hops over other islands, and down to resume at the destination.

    • @ScottyMcCraigles
      @ScottyMcCraigles ปีที่แล้ว

      My thoughts as well while watching the video.

  • @koenvanduffel2084
    @koenvanduffel2084 6 หลายเดือนก่อน

    What about the spiral Zhop in Orca slicer? That helped me out a lot when printing PA12.

  • @mtyler2469
    @mtyler2469 ปีที่แล้ว

    I tried the Alternate Z Hop and it defiantly made an improvement to the stringing. (have pics if you want) is there any way to wipe the nozzle and then have it perform the Z Hop?

  • @poepflater
    @poepflater 7 หลายเดือนก่อน

    My bed is only 140mm but the higher the object gets the worse the effect seems to be... as the head moves between the left and right extremes it seems to dig harder into the surfaces at the sides... I was expecting it to dig more in the middle due to rail droop, but it is like the bed istelf is drooped... unlikely as it is a sheet of glass. Calibration of first layer is critical to adhesion. My bed is calibrated well in general and after I put some hair spray on the plate I can get several prints in without releasing, while still not needing the giymnastics needed to remove from glue stick... Sort out the 1st layer, maybe increase temp to 215C for layer one to make it more smearable, and it will stick

  • @santiagopostorivo
    @santiagopostorivo ปีที่แล้ว

    Will it work well with Klipper? I read that the normal Z Hop should be disabled. I used it with klipper and it worked fine, so I do not know why that suggestion was made in the Klipper guide.

  • @six1free
    @six1free ปีที่แล้ว

    I think it's worthwile and should be introduced into cura.... I will test it out (and if it doesn't work you can bet you'll hear about it :D - politely of course, I make betas too)

  • @puerlatinophilus3037
    @puerlatinophilus3037 ปีที่แล้ว

    As the stringing most likely comes from the upward motion sucking out molten filament from the nozzle, I propose the following;
    1. start the line horizontal without retracting
    2. After a defined distance (let's say 2mm) you retract while doing the movement of step 3.
    3. Continue like your second proposed method. I.e. move to 0.6mm above location B.
    4. Unretract and lower to location B.
    If you want to get extra fancy you can try unretracting a small bit more filament before lowering down to location B and retract back to normal before touching down. But idk probably nothing exciting would happen.

  • @condorman6293
    @condorman6293 ปีที่แล้ว +1

    Bambu Studio incorporated something similar in the form of spiral z hop

  • @elvinhaak
    @elvinhaak ปีที่แล้ว

    Will test soon.
    But: I think the results will be even better with a reversed start-section. What I mean is the following:
    Z-hop to the opposite moving first for a short bit and then do the real motion, a bit overshoot and move back. I'm pretty sure this can eliminate the stringing even further.

    • @reverse_engineered
      @reverse_engineered ปีที่แล้ว

      Basically a wipe in the reverse direction? I was thinking something similar. It might be a bit tricky though because it might not be obvious which way to move back if there are many short segments.

    • @elvinhaak
      @elvinhaak ปีที่แล้ว

      @@reverse_engineered Yes, that is what I meant too. Might get the distance from the last line but still tricky.

  • @ShadowDrakken
    @ShadowDrakken ปีที่แล้ว

    I suspect a horizontal wipe equal to the extrusion width (ie. as if z-hop were disabled briefly) before starting the diagonal movement should help with the stringing.

  • @dannyberne
    @dannyberne ปีที่แล้ว

    I used to have a script that would intercept the g10 through g11 command, retract E, do a 3d diagonal move to just above where I was going to plop down, and then unretract E, and simultaneously plop down. I stopped when I started using firmware retraction and linear advance. I've thought about hacking marlin to make g10 and g11 more complex by adding some canned code, but I haven't found the time

  • @MauriceMischo
    @MauriceMischo ปีที่แล้ว

    One great tipp to achieve simalr results is to increase the Z jerk

  • @rubenexplains2640
    @rubenexplains2640 ปีที่แล้ว

    I'm printing on a shitty fire hazard ANET A8 on a heated glass bed, hair spray for helping the part stick and a BL-Touch for bed leveling and I never had issues with parts getting of the bed. Maybe your bed adhesion is sub-optimal and that is where your bottleneck is. Your z-hop solution is promising though, great find!

  • @cassandracollins4150
    @cassandracollins4150 ปีที่แล้ว

    seems promising, although it would take way longer to print possily moving back the way you came when starting the travel (eg traveling allong the+Y and then step up towards -Y) then towards the next extrusion. try to make the stringing go inside already excitant parts.

  • @thealpatxino
    @thealpatxino ปีที่แล้ว

    An alternative method that also could be tested is to make the Diagonal go directly above the destination point and not the middle point. in that way it would do two moves, one diagonal upwords, and then the vertical down to start the new extrusion. It could reduce the stringing and also had the benefits of a not so dialled extrusion so it does not knock the piece out of he bed.

    • @thealpatxino
      @thealpatxino ปีที่แล้ว

      oh well... i finish to see the video now... hahahah

  • @adamfilip
    @adamfilip ปีที่แล้ว

    I think this is a good idea, and should be implemented as an option in prusaslicer. the most control we have the better

  • @_GRBL
    @_GRBL ปีที่แล้ว

    i think this would be so much more effective if it wiped towards the center of the island so it can wipe the nozzle in a way that's somewhat supported so it doesn't knock the print over before the movement. ideally the end of the movement would be on the other side so it doesn't have to wipe the opposite direction then change direction to make the movement... if that makes sense.

  • @krisparker8984
    @krisparker8984 ปีที่แล้ว

    Love the new tool! I would love to use it on all of my prints currently but there's a limitation to how large a gcode you can process due to it being browser based. Is there a way to download the script to bypass the limitations of it being browser based?

    • @float32
      @float32 ปีที่แล้ว

      Browsers are a little more capable than they used to be.

  • @begeekru
    @begeekru ปีที่แล้ว

    I think problem could be mitigated by avoiding entering and crossing curled zones, which can be detected by slicer as areas of steep overhangs. If nozzle will avoid these zones printing will continue regardles curling.

  • @geoffpot
    @geoffpot ปีที่แล้ว

    I was toying with this idea too, tho I was gonna do it in firmware.
    Why did you decide not to include the retraction/unretraction in the process? Maybe retraction while still would be best, but I would think if you could do the unretract on the downstroke, that should save time.

  • @stevenhu202
    @stevenhu202 ปีที่แล้ว

    I wonder if you could combine this with a x/y jerk. Just have it change its angle so the stringing doesn't connect.