Jump to content

mixing "one at a time" with "all at once"


bovvalot

Recommended Posts

Posted · mixing "one at a time" with "all at once"

I'm trying to print 20 coins that I've designed (attached)
My current configuration is to print them all at once. I print the first 14 layers one colour, then the remaining layers (the design on the face of the coin) is printed a different colour. Currently I use the pause at height and change the filament so the disk is one colour and the design is another. all good. except the disk isn't as good quality as i would like it to print.

When I print all at once, there is a lot of travel over the coin as it prints walls first, then prints inside to out, so the nozzle always has to travel over the surface, even when combing is switched on to avoid outer surface. Then there is also always an entry/exit point on the disk.
Then at the end, after the colour change, there is no way to avoid the outer surface of the disk as each layer is printed, so there are lots of travels and marks. I've tried z hop, retraction and combing, but for some reason I can't this perfect. 

What I would like to do is this:
Print the disks one at a time (this seems to achieve great results as there are less entry/ exits and surface travels) but it means 20 filament changes...
So I'd like to print the first 14 layers of each model, one at a time to create the disk
change the filament,
then print the last few layers, one at time to add the design to the disk

 

Is there a way that i can print like this? 

I was looking at manual gcode manipulation but I don't think the extraction numbers will line up so I gave up on that

I also looked at support blocker, but I don't think I can get that to work as I'm describing either.

 

Any suggestions I can try?

Coin x5.stl

  • Link to post
    Share on other sites

    Posted · mixing "one at a time" with "all at once"

    Howdy! It's always more helpful if you can post a Cura project file (.3mf, get it set up then go to File > Save Project) rather than just the model so we know what printer and settings you're using. 🙂

     

    What filament are you using? PLA should be able to retract well enough if you're using the right settings and you've got your machine properly tuned.

     

    50 minutes ago, bovvalot said:

    after the colour change, there is no way to avoid the outer surface of the disk as each layer is printed, so there are lots of travels and marks. I've tried z hop, retraction and combing, but for some reason I can't this perfect. 

    I don't think combing takes layers below it into account, and even then, if it's impossible to make a route which meets the combing setting, it'll avoid as best as it can.

    You need to get your retraction right, assuming you're using a material that retracts well *subtle glance at spool of PLA sitting on other side of room*. If you're using PETG or TPU (squishy coins are fun) avoiding strings is like finding a parking spot in the Sydney CBD. Specifically, you can't. And if you're using ABS, you probably shouldn't be. (Shouldn't be using ABS, that is.)

    If you're not retracting properly, Z hop won't have any significant effects on stringing.

    It doesn't help that your design is kind of awkward as it slices (I'm using standard quality settings here because I don't know what you're using):

    image.thumb.png.b86f001bc05b41f1844836d555f30c95.png

    → Blue arrows: Parts where due to thickness it has to switch between one thick line and two thin lines.

    → Yellow arrows: Parts where it's thick enough to generate an inner wall.

    Both of those situations require moves. Inside the x it handles it reasonably gracefully, around the 5, not so much.

     

    So what can we do? If I set Walls > Minimum Wall Line Width to 0.24mm (the narrowest you can reliably pull off with the "standard" 0.4mm nozzle) that improves the situation a lot to begin with:

    image.thumb.png.bdf7bebcc0e078a78c8dc8a7f4f66fcc.png

    Although that does give us a small dislocated section off the x:

    image.png.60ea4e92d70a0b3d934e79bde406aa98.png

    If I turn on Walls > Print Thin Walls that reconnects it:

    image.png.44835df57ca480f061de8886a79447c7.png

    It's also added a tiny section of inner wall to the inside of the x there, which isn't a problem stringing wise (it just does a non-retract move and does the outer wall.

     

    If we want to remove those bits of wall the "hit it with a hammer" approach is to increase Walls > Wall Transitioning Threshold Angle. If I set it to 38° it gets rid of them, and adds a bit of detail back to the x at the expense of those detailed bits being fat single walls requiring their own starts (but now we don't have tiny bits of inner wall that do):

    image.thumb.png.7492d7859854e24a20f7800700869a40.png

    I'm not sure you'd be able to do much better than that when it comes to avoiding travels. Those changes again were:

    • Walls > Minimum Wall Line Width to 0.4mm
    • Walls > Print Thin Walls enabled
    • Walls > Wall Transitioning Threshold Angle to 38°

    But I would say the most important part is make sure you're using a filament that retracts well and get your retraction settings right. Reducing the number of travels and starts/stops might result in less stringing but if your aim is "none" then you need to be retracting properly.

     

    If you need to figure out your settings there's an awesome plugin (just look in Marketplace at the top right) called AutoTowers Generator which can print test towers for retraction. Although it hasn't been updated in a little bit so if your printer has a direct drive extruder you might need to install OpenSCAD so it can generate a custom retraction distance tower (I usually retract PLA 0.8mm on my Ender-3 V3 SE) - don't worry, not hard to get that set up, just a little bit of extra work).

     

    === AND NOW THE PART YOU MAYBE OR MAYBE NOT SHOULDN'T TRY AT HOME ===

     

    Oh, I forgot the bit about wanting to do all the bottoms first then all the tops. Not that hard with gcode manipulation, actually, if you know what you're doing. The easiest way would probably be to split the coin into two separate models (top and bottom) and slice both in one at a time, making sure the top half is at the correct height. You'd need to turn off "drop down model" in the move tool and turn off Mesh Fixes > Remove Empty Bottom Layers to get them to slice in midair (and check the preview to make sure they're in midair at the correct height). You'll also need to insert a pause after the last layer of the bottom half.

     

    So with those two files, open up the file for the bottom half and delete the end gcode, should be after pause. Open the file for the top half, and copy everything after the start gcode except you need to make sure you have a G92 E0 line at the start of the top half and there's usually one at the end of the start gcode so keep that. Paste it at the end of your first file (after the pause) and you should have a combined file that does the bottoms one at a time, pauses, then does the tops. The key rule here is if you're not sure if you're doing it right, don't do it. If you want to post some combined gcode for the boffins around here to look at before you run it, feel free.

     

    === AND NOW THE PART WHERE SLASHEE FLEXES HER DESIGN MUSCLES EVEN THOUGH NOBODY ASKED HER TO ===

    Let's look at your design. I don't get what software people are using that exports circles with so few faces, but I can count the number of faces on the edge of the ring using just my digits and those of the neighbour I totally don't have the body of stashed in the freezer 😕 But that one's probably not your fault, it's from the software you're using.

     

    The first thing that struck me: the height. 4.5mm. That's one fat coin. Not sure about other countries but the thickest coins we have here are 2.8mm high ($2). Poker chips are usually around 2-3mm.

     

    Second thing: it's not a very big coin. Diameter-wise the $2 coin is actually the second smallest coin currently in circulation (20.5mm, the smallest being the 5 cent coin at 19.41mm diameter and 1.3mm thick). Diameter-wise (technically wrong since it's a dodecagon, not a circle) is the 50c coin at 31.65mm.

     

    I don't have any $2 coins on me (it's 2024, be amazed I have any cash) but for comparison purposes, here's a pile of four 5c coins (representing your coin), a poker chip and a pair of AA batteries:

    image.thumb.jpeg.4f6f261e3432a003953a0e2c594c7aff.jpeg

     

    Third thing: the height of the text, and then the height of the wall around it. Your text is 0.4mm high (or should I say short) and then has a whole 1mm of just wall above it. It's going to get lost in there. Being that short makes it hard to see to begin with, put it in a well and you've got no chance. If you were to make the text 1mm high it would be a lot easier to read and then you'd only have two layers of wall around it. Unless you make your whole coin shorter... which you should. On the poker chip in my photo, if it had text on it, ideally it would be about the same height as the ribbed ring around the edge.

     

    Fourth thing: font. Even in a different colour, thin text does not stand out very well in a 3D print, especially at this scale (the scale where it can barely print the text with any consistency). You should go for something a bit thicker. I'm not saying it has to be in IMPACT BOLD but something with a bit more body to it is going to be easier to see.

     

    Fifth, and just a minor one: try to avoid making your design touch the edges: if the walls join with the walls of the outer ring it generally looks pretty messy, especially if you're going to make the ring go higher.

  • Link to post
    Share on other sites

    Posted · mixing "one at a time" with "all at once"

    Thanks Slashee. You are a detail person (like me). Love it.

    This is really useful. I'm going to attach a slightly different stl file so you can replicate what I'm looking at.

    First issue. When i print all at once, I get these nasty drags across the coin. I've mucked about with retraction (I'm printing PLA/silk), but for this project, I just can't get it printing well. After trying 2mm,3mm,4mm I ended up retracting 6mm and seems I never went back to 2mm.

    One at a time is the way to go. I find that if i print a bunch of these then snot builds up, burns and drops off the nozzle.  One at a time tends to solve that problem. Temperature and Retraction are an issue, but I can't consistently get it right. Some days it prints well, others (like today) it's rubbish! My other coin project is much simpler (one colour) and printing one at a time solves heaps of issues that I found hard to control doing all at once. Hense I'm seeing if I can do that here. 

    Image below shows the two travels in each layer. one to get from the wall to the center (why it does this is beyond me) - i want it to start in middle and go outwards. On some models it will actually do the wall of one, then the wall of another and then come back to complete the centers. Drives me nuts. The second travel is to move to the wall of next object. this gives me a seam I have to remove from the edge and sometimes an awful surface that I can't clean up with a file (because the letters on the top are there too)

    image.png.e706d1bd2324ce85b5709d781946d3ac.png

    I like the suggestions on the widths, but actually the letters print well. The text gives a slight calligraphy effect which I'm going for, and it looks good, so I don't want to play with the line widths - I already spent time getting that as I want, but actually helpful to see the line widths you go with - that will save a bit of tinkering next time!!

    The model comes from FreeCad if you're interested. This stl you are now looking at doesn't touch walls. I actually print the outer wall completely separately now, and then press this inner piece into the outer to make the whole "coin". This stl is thinner as I didn't like the height, so you are right about that, but I gave you an old file. I already fixed and you see it is thinner, so we are thinking alike!

    Anyway, I was also thinking of the two models idea, but freecad wont let me split the model as  you suggest. the bottom half will be fine, but the top half will be two shapes, an X and a 5 which freecad doesn't like, so I would need to find another way to do that. Not impossible, but that's probably what I'll end up doing. 

    I tried the support blocker for the same effect, but that doesn't quite work as I intend.

    Happy to manipulate gcode. I was already starting that, but it's a painful task of tedium where I worry about the extraction values and pasting into the right place. It made my head hurt after two models, and with 18 more to go I gave up.

    Anyway, breaking into two models. This could be the way to go, just need to find a way to split them. Doesn't seem there is a native way within CURA to this without a bit of working around. Would be nice to have "print up to height" and "print from height" setting for each model - I could then overlap them and achieve the same thing. or use the support blocker and have "model blocker" option so i can add a "don't print here" shape. but maybe i just need to play with the stl....

    Anyway, curious for additional thoughts. thanks for the reply and sorry for the essay 🙂

     

    x5inner.stl ForSlashee.3mf

  • Link to post
    Share on other sites

    Posted · mixing "one at a time" with "all at once"

    @Slashee_the_Cow

    Thanks for your help. Just a bit of help needed splicing the code together.

    I couldn't add a pause at the end of the bottom half or at the start of the top half. I'm not sure why, normally not a problem - seems I can only add at the beginning of the last layer, not the end, so I added some pause code as a placeholder, but it will certainly be wrong.

    Here is the gcode and how I think i need to modify, can you or someone who knows what they are doing help me tidy it up?  I attached the file, but the snipped below is what I think I need to add/ remove. I'm not sure about the positions within the pause and I have made silly mistakes no doubt.
    Thank you 🙂
     

    G1 X218.383 Y208.453 E3715.1349 ; last line of bottom half
    
    ; Start of deletion?###########################
    ; #############################################
    ;TIME_ELAPSED:4695.173625
    G1 F2700 E3709.1349
    M140 S0
    M107
    G91 ;Relative positioning
    G1 E-2 F2700 ;Retract a bit
    G1 E-2 Z0.2 F2400 ;Retract and raise Z
    G1 X5 Y5 F3000 ;Wipe out
    G1 Z10 ;Raise Z more
    G90 ;Absolute positioning
    
    G1 X0 Y235 ;Present print
    M106 S0 ;Turn-off fan
    M104 S0 ;Turn-off hotend
    M140 S0 ;Turn-off bed
    
    M84 X Y E ;Disable all steppers but Z
    
    M82 ;absolute extrusion mode
    M104 S0
    ;End of Gcode
    ;SETTING_3 {"global_quality": "[general]\\nversion = 4\\nname = Standard - PLA-0
    ;SETTING_3 .4mm Nozzle\\ndefinition = creality_ender3\\n\\n[metadata]\\ntype = q
    ;SETTING_3 uality_changes\\nquality_type = standard\\nsetting_version = 23\\n\\n
    ;SETTING_3 [values]\\nadhesion_type = none\\nlayer_height_0 = 0.3\\nmaterial_bed
    ;SETTING_3 _temperature_layer_0 = 60\\nprint_sequence = one_at_a_time\\nretracti
    ;SETTING_3 on_combing = no_outer_surfaces\\n\\n", "extruder_quality": ["[general
    ;SETTING_3 ]\\nversion = 4\\nname = Standard - PLA-0.4mm Nozzle\\ndefinition = c
    ;SETTING_3 reality_ender3\\n\\n[metadata]\\ntype = quality_changes\\nquality_typ
    ;SETTING_3 e = standard\\nintent_category = default\\nposition = 0\\nsetting_ver
    ;SETTING_3 sion = 23\\n\\n[values]\\nhole_xy_offset = 0.16\\ninfill_pattern = co
    ;SETTING_3 ncentric\\ninfill_sparse_density = 0\\nmaterial_initial_print_tempera
    ;SETTING_3 ture = 215.0\\nmaterial_print_temperature = 210.0\\nmaterial_print_te
    ;SETTING_3 mperature_layer_0 = 215.0\\nretraction_hop_enabled = True\\nretractio
    ;SETTING_3 n_hop_only_when_collides = True\\nspeed_infill = 60.0\\nspeed_print =
    ;SETTING_3  60.0\\nspeed_wall = 35.0\\ntop_bottom_pattern = concentric\\ntop_bot
    ;SETTING_3 tom_pattern_0 = concentric\\nxy_offset_layer_0 = -0.2\\nz_seam_type =
    ;SETTING_3  shortest\\n\\n"]}
    
    ;FLAVOR:Marlin
    ;TIME:723
    ;Filament used: 0.14879m
    ;Layer height: 0.2
    ;MINX:0
    ;MINY:0
    ;MINZ:3.1
    ;MAXX:229.787
    ;MAXY:218.893
    ;MAXZ:8.5
    ;TARGET_MACHINE.NAME:Creality Ender-3
    ;POSTPROCESSED
    ;  [PauseAtHeight]
    ;Generated with Cura_SteamEngine 5.7.1
    M140 S60
    M105
    M190 S60
    M104 S215
    M105
    M109 S215
    M82 ;absolute extrusion mode
    ; Ender 3 Custom Start G-code
    G92 E0 ; Reset Extruder
    G28 ; Home all axes
    G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
    G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
    G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line
    G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little
    G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line
    G92 E0 ; Reset Extruder
    G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
    G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish
    G92 E0
    G92 E0
    G1 F2700 E-6
    ; #####################################
    ; #################### end of deletion?
    
    ; ## start of pause commands here##
    ;TYPE:CUSTOM
    ;added code by post processing
    ;script: PauseAtHeight.py
    ;current layer: 1
    M83 ; switch to relative E values for any needed retraction
    G1 F1500 E-20
    G1 F300 Z1.5 ; move up a millimeter to get out of the way
    G1 F9000 X20 Y20
    G1 F300 Z15 ; too close to bed--move to at least 15mm
    M104 S0 ; standby temperature
    M117 waiting for black
    M84 S3600 ; Keep steppers engaged for 1h
    M300 S440 P1000 ; Beep
    M0 ; Do the actual pause
    M109 S210 ; WAIT for resume temperature
    G1 F300 Z0.5  - needs correcting?
    G1 F9000 X25.785 Y15.142  - needs correcting?
    G1 F300 Z0.5 ; move back down to resume height - needs correcting?
    G1 F1200 ; restore extrusion feedrate
    M82 ; switch back to absolute E values
    ; ## end of pause commands
    
    G92 E0 ; ## Reset Extruder as per Slashee 
    ;LAYER_COUNT:17
    ;LAYER:14
    M106 S255
    ;MESH:x5inner_surface.stl(9)
    G0 F9000 X0.00 Y0.00 Z3.1
    G0 X32.411 Y18.082
    ;TYPE:WALL-INNER
    G1 F2700 E0
    G1 F628.3 X32.341 Y18.122 E0.00256

     

    combined.gcode

  • Link to post
    Share on other sites

    Posted · mixing "one at a time" with "all at once"

    You're pretty much bang on with where you're deleting and what needs correcting in the pause. I'd just remove those three lines which might need correcting and replace the G1 F9000 X20 Y20 near the start of the pause and make it G1 F9000 X0 Y0 - the first move of the new gcode already makes it go to X0 Y0 Z3.1 (which is where you want to be) so that way it'll just have to go down to the correct height. Also at the end of the startup gcode it's retracting (which gets completely obliterated by the pause anyway) so that it doesn't string on the way to the starting point, so after that G92 E0 you so kindly added for me 🙂 put in a G1 F2700 E-6 so that it retracts.

     

    Or just copy this since you got 99% of the way there yourself 😁

    G1 X218.383 Y208.453 E3715.1349 ; last line of bottom half
    
    ; ## start of pause commands here##
    ;TYPE:CUSTOM
    ;added code by post processing
    ;script: PauseAtHeight.py
    ;current layer: 1
    M83 ; switch to relative E values for any needed retraction
    G1 F1500 E-20
    G1 F300 Z1.5 ; move up a millimeter to get out of the way
    G1 F9000 X0 Y0
    G1 F300 Z15 ; too close to bed--move to at least 15mm
    M104 S190 ; standby temperature
    M117 waiting for black
    M84 S3600 ; Keep steppers engaged for 1h
    M300 S440 P1000 ; Beep
    M0 ; Do the actual pause
    M109 S210 ; WAIT for resume temperature
    G1 F1200 ; restore extrusion feedrate
    M82 ; switch back to absolute E values
    ; ## end of pause commands
    
    G92 E0 ; ## Reset Extruder as per Slashee 
    G1 F2700 E-6
    ;LAYER_COUNT:17
    ;LAYER:14
    M106 S255
    ;MESH:x5inner_surface.stl(9)
    G0 F9000 X0.00 Y0.00 Z3.1
    G0 X32.411 Y18.082
    ;TYPE:WALL-INNER
    G1 F2700 E0
    G1 F628.3 X32.341 Y18.122 E0.00256

     

    Also you had your standby temperature (the M104) in the pause at height set to 0° meaning if you didn't get there quickly to change filament it was going to cool and make changing it pretty damn hard 😏 so I changed that to 190 - still plenty warm to change material but slightly cooler so there's less chance of it drooling while it does other things. It wouldn't hurt to hang around with tweezers so that when it heats back up you can quickly grab any boogers off the end of the nozzle once it starts going again (which should be easy enough cause the first move it's making is doing to be down slowly).

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • UltiMaker Cura 5.8 Stable released 🎉
        In the Cura 5.8 stable release, everyone can now tune their Z seams to look better than ever. Method series users get access to new material profiles, and the base Method model now has a printer profile, meaning the whole Method series is now supported in Cura!
        • 3 replies
      • Introducing the UltiMaker Factor 4
        We are happy to announce the next evolution in the UltiMaker 3D printer lineup: the UltiMaker Factor 4 industrial-grade 3D printer, designed to take manufacturing to new levels of efficiency and reliability. Factor 4 is an end-to-end 3D printing solution for light industrial applications
          • Thanks
          • Like
        • 3 replies
    ×
    ×
    • Create New...