Please create gyroid infill that is the shape as graphene. This shape has been shown to be very strong as a 3D printed object and if used as an infill would presumably create very strong 3D prints
http://itsybitsymag.com/2017/01/11/mit-research-ten-times-strong-lightweight-graphene/
Reference:
https://github.com/prusa3d/Slic3r/issues/92
FYI the link doesn't work.
It was working a few days ago...
Anyway: https://www.reddit.com/r/3Dprinting/comments/81b39y/new_infill_pattern_gyroid_looks_amazing/
Nice.
Any news on this? Will Cura add this? :)
For now I don't think so, but we will continue to discuss as a team. We would probably be open to adding it via a pull request if someone writes the engine code for it.
Thanks, keep it up, love Cura!
Here is a semi-scientific on-camera comparison:
https://www.youtube.com/watch?v=upELI0HmzHc
Gyroid infill is very useful not just because of its mechanical properties, but also because the interior of the part is fully connected; this is true for no other infill pattern AFAIK. Fully connected interior infill space allows the part to be filled easily with epoxy, and on the other hand lets liquid/air escape through a single hole.
Thanks for providing a usecase other than "I want it".
Let me summarize also the "traiditional" justifications for gyroid: gyroid is one of the strongest infills for a given weight, it is fairly isotropic (=works about the same in all directions), doesn't require strong accelerations, and prints fairly fast. I don't have much hands-on experience with it yet (since Cura is my primary slicer), but I think it may make a good default just based on its mechanical properties alone.
Missing this feature is absolutely the only reason I use slicer PE!! It is a must if you would like to print PETG infill at any decent speeds as line infill will resort to stringing due to the quick changes in direction... Come on dev team, this is a chance to make Cura the greatest slicer again 馃憤
It is a must if you would like to print PETG infill at any decent speeds as...
As what?
@smartavionics you left out the remainder of the sentence. Sharp changes in direction for line infill result in more blobbing and thus poor print quality. Besides, everyone loves Gyroid, so it should just be implemented 馃槃
@smartavionics you left out the remainder of the sentence.
LOL, you added the remainder of the sentence after I made my comment!
Are there any news about it?
Cura has some big stuff in the works so unfortunately for now, no. This issue is marked as "Deferred" because we do not plan to devote any time to it in the foreseeable future, but would like it implemented eventually. Pull requests are very welcome.
After testing this with another slicer, I very much look forward to the day this gets implemented in Cura. I don't see myself ever using anything but gyroid at that point. It looks great, is stronger, faster as it is a more curved continuous movement and can print with less infill (gota see it printing to appreciate it), and at the same time allows me to fill in the voids (the voids are not blocked) with sand for some things that need extra weight. I don't want to waste filament on it (Just fill it with sand after the print). I seem to be able to use a lot less infill % with gyroid.
If someone does a kickstarter (or something similar) to fund the development of gyroid infill for Cura , please post it on the cura forums or in this thread. I don't want to use the other slicer... as I like Cura. I will certainly throw a little money at it. I will certainly be using gyroid infill for quite a bit of future stuff I print though.
OK, I'll have a go at implementing it.
Could some kind person attach a simple model and also the gcode that has been created from that model using gyroid infill so I can compare it with I will be producing. Cheers.
Here's a simple 25x25x25mm cube using gyroid infill 馃憤
Here's the same cube but only with infill... in case its easier for you to check that way @smartavionics
You might want to mention what infill percentage you used as well as include the STL for completeness.
an STL of a 25mm cube..... 馃馃槈 The infill is at 17% for reference
This is a 25x25 cube also with a bunch of different infills with and without walls/top/bottom. I also scaled it by 1200% and did a 300x300 cube with a 2% infill. I couldn't include it as it is bigger than 10MB. I included that in the pic because I printed a 300x300 2% infill for fun... well I aborted it after about 36mm. The 2% 300x300 actually printed which I was surprised by.
The link for the 300x300 (over 10MB) is below if you are curious.
https://drive.google.com/file/d/1OB2GbjhJTXPmezXLHlKC8ajgqa7sbjWD/view
The pic is of the 300x300x36 at 2% infill and a 25x25x25 at 10% infill. Both without walls or top/bottom.
Thanks for the files, they helped a lot.
I am happy to report that after bashing my head against sufficient walls, progress has been made.
As the following pics show, the basic functionality is now working. Needs to be tidied up and performance could be a problem. With high density infill, the slice time goes up hugely. Does Slic3r also slow down a lot for dense gyroid infill?
Awesome!
We could implement a warning for the infill density setting in the frontend if the infill pattern is set to gyroid.
Hi Aldo. That could be a good idea but it's early days yet so I want to find out where the time is going and get it as fast as possible first.
Do people actually use this infill very dense? I just printed that little cube and it seems very sturdy.
Later tonight I will upload a new Linux dev archive so that if anyone is using Linux they could try out the current state of the art.
How strong would you like your infill, Sir?
Gyroid with infill multiplier set to 3...
I have uploaded a new Linux archive that includes this feature in its current early state. If anyone tries it out, please provide feedback.
The archive can be found at https://www.dropbox.com/sh/s43vqzmi4d2bqe2/AAADdYdSu9iwcKa0Knqgurm4a?dl=0
I can't test the Linux build unfortunately but as for speed, Yea it does get slower on another slicer. This with testing with cubes. I assume more complex stuff will take longer.
Testing on the other slicer software...
100x100x100 mm cube using different infill
20% 1 to 2 seconds
40% 3 seconds
60% 4 seconds
70% 5 seconds
80% 6 seconds
90% 8 seconds
95% 9 seconds
99% 9.5 seconds
100% Gui popup... The Gyroid infill pattern is not supposed to work at 100% density Shall I switch to rectilinear fill pattern?
I bet even at 98% it is not very useful to use that infill amount. Previewing in the other software at 99% takes a long time (15 to 20 seconds maybe) to even render the object in it's Preview window which is expected I am sure. Then I get delays of about a second or so when moving the layer up and down in the preview.
I got my CentOS 7 system up and running again. I tried to run the Linux archive you provided on CentOS 7 but I get an error about libssl.
File "/home/user1/Downloads/cura/lib/python3.5/ssl.py", line 98, in
import _ssl # if we can't import it, let the error propagate
ImportError: libssl.so.1.0.0: cannot open shared object file: No such file or directory
CentOS 7 has libssl.so.1.0.2k (openssl-1.0.2k-12.el7.x86_64)
Closest thing I could find which is a recent thing...
https://github.com/Ultimaker/Cura/issues/4061
If I shouldn't post that info in this thread as it is unrelated to gyroid, let me know and I will remove it.
EDIT: The official appimage does run for me from the Cura download site (3.4.1) so it is only your archive that gives the error. I am running your archive by running cura.sh but the official appimage I am just executing ./Cura-3.4.1.AppImage.
Sorry, the archive didn't work for you, it was created on a Ubuntu 16.04.5 system.
With regard to the infill density could you please create a 50% infill cube using another slicer and attach the gcode so I can compare densities.
Cura does have a performance problem when the infill has many lines so some work is needed there.
Another issue at the moment is that gyroid infill doesn't work with the connect infill lines option and it would be nice to get that working.
here is the 25mm 50% infill cube from the other slicer software.
cube_25x25_50%_2walls_3topbottom.zip
EDIT: If you want something bigger, let me know.
My first print. It is pretty strong. The thickness of the lines are thinner but that is likely some setting differences between slicers. I am completely new at the other slicer.
EDIT: This paragraph is about 'Connect infill lines' which was already stated doesn't work yet so this can be ignored and is known. Some things that are noticeable... In Cura it stops extruding when it moves over to the next line. With the other slicer, it just continues to extrude when it moves to the next line which gives it a little more rigidity and looks cleaner (no stringing at top speeds as it never stops extruding when doing infill) but wastes more filament of course. I actually like Cura's way because I want to print some things without top bottom and walls and the extra filament messes up the pretty structure on the sides :). It would be better to have an option though so we could decide if we should just keep extruding or stop during the movement to the next line. With the Cura version, the cube looks kind of not so perfect though because of the stringing as that is most visible when you look at it but that might be my settings and it is only visual. If you look at the inside though, It looks nice. I have never cared about infill looks until this version of infill so that just might be me :).
I am liking it. It is a very good start for this. Thanks for putting the time into it. I am going to keep using this version for Gyroid infill even though I have to go through hoops to get the files to my desktop to print them :).
Cura's version is on the right hand side of the pics.
I forgot to mention that the 10% in the other slicer is about the same as 7.6% in Cura going by the pattern size. Not that any one is right or wrong, just an observation.
EDIT: I had them reversed when I first posted this a minute ago.
EDIT2: I wasn't very clear when I was mentioning that Cura's was thinner. That of course makes it weaker. I just don't know if that is settings, speed, or something else. They are both set to 60mm/s speed but something is obviously different in the overall thickness of the lines or something. I am relatively new to 3d printing (4 or 5 months) so I am no expert on 3d printing.
The other slicer seems to be overextruding which is why it is thicker and stronger. Cura is right at 0.4mm (my nozzle width) but slic3r is making the lines from 0.52 to 0.56. I think I have slic3r configured properly but I can't be 100% sure. Maybe they are overextruding on purpose with a default setting somewhere or maybe just this infill or maybe something else entirely :).
I printed triangle infill on slic3r and that was correctly 0.4mm. Gyroid on slic3r was around 0.52 to 0.56. It seems like slic3r is purposely over-extruding for the Gyroid infill. I printed a few of each and it was consistent.
EDIT: Is there another forum we can discuss this. I don't know if I am doing the right thing by giving feedback in this thread or if it should be moved somewhere else?
Increasing the Infill Line Width to 0.54mm (0.4mm nozzle) in Cura makes a 10% infill match the 10% infill pattern of slic3r looking at it through the software. That seems to indicate they are overextruding. I have never used the infill line width before so that is new to me.
EDIT: I printed a 0.54 line width cube in Cura at 10% infill and it seems like the width of the line hasn't changed much... maybe a little but measurements seem to show 0.4 to 0.44mm and I could just be off when measuring it. It does seem a little stronger. Gyroid infill is curvey so it is tricky trying to measure the width of the lines. I assume Cura has a limit on that setting or something? Strange that slic3r was able to create such a thick line for the Gyroid infill.
Regardless... the Gyroid infill is sweet even as it is now. I will be using it with this alpha version build for future prints. Thanks for putting the effort into this!
After some testing with big prints in Cura will low infill, the 'Connect infill lines' settings I think will be very helpful as it keeps the infill together on the ends. That is why it worked well on slic3r when I did that very big print (300x300x36 2% infill) without top, bottom, or walls. That of course is not the normal way of printing though. Most people have top bottom and walls :). I plan to do some normal printing too in the next day or so.
Here is a picture of a big print of infill only with Cura build using Gyroid. 300x300x36.2 2% infill 0.54 Infill Line Width (0.4mm nozzle). Assuming 0.54 does anything with a 0.4mm nozzle. The print turned out nice except it started to have some lifting issues as the line ends are not connected as mentioned above. I used some blue tape on one small section to keep it going and it recovered. It looks nice and pretty strong considering it is only 2% infill. I doubt 2% infill will be the norm though as it doesn't have enough coverage for a good top layer of course. It looks nice though :).
img_1385
Thanks for your testing and comparison. This is very helpful @agibson2
Yes, I was just about to comment, thanks for the testing.
I have been busy again today and apart from a slew of bug fixes and performance improvements, have also implemented the connect lines feature for the gyroid infill as you can see here:
I found it quite challenging to implement but it appears to work OK on the few examples I have tried. Further testing and feedback would be most welcome.
In about 20mins or so, a new archive should appear on my Dropbox which contains the day's release.
@smartavionics legend man! Can't wait to see this. (Lines in layer view look pretty trippy but that's just the way it is) thanks! :)
That's what we want, trippy prints!
I think the infill line connections are not yet perfect as sometimes it connects lines that don't have to be connected but, overall, it's working pretty well as you can see...
This is working really well! I printed my first real objects today. You don't see the infill in the pic though as they have walls so you don't really see anything :). The parts are strong at 10% infill. I used the 0.54mm infill line width on them but the lines end up around 0.44mm or so.
The only thing I noticed is that slic3r worked it's way from one side to another and then started from the same side it ended on which is quicker as it didn't need to move to the other side. I assume that is an engine thing though and not an infill setting thing. I don't know if there are settings that make the behavior the same or not in Cura. Printing a gyroid infill only cube in Cura, it starts from the same side each time so it stops on one side and goes to the other to start again. This is not to say it is a problem or in any way makes me not like the infill or anything like that... just a difference in behavior I noticed.
I found out that slic3r has thicker infill by default. The default is to use an infill extrusion width 1.125 times the nozzle width which is 0.45mm. That still doesn't explain the slic3r version of the Gyroid cube is closer to 0.54mm line width when I try to measure the infill line width though. It seems something is making the lines much bigger for Gyroid infill on Slic3r. My experiments seem to indicate that slic3r is either doing that on purpose for Gyroid infill to make them stronger and reduce the line spacing pattern or or bug of some kind. The other infill on Slic3r I tested didn't have larger 0.54mm infill as I mentioned before so it seems to be on purpose for the Gyroid infill. Maybe I will figure that out eventually.
I updated to the newest build that has 'connect infill lines' working and I enabled it. It is working good and now my infill only prints have never failed me. I like it with it off and on and think I will use both settings at times.
With 'connect infill lines' enabled in Cura, I scaled the 25mm cube to 150% and printed it with 'connect infill lines' with 0.4mm and 0.54mm Infill Line Width. I still have the slic3r version that was printed with it's defaults for 0.4mm nozzle settings too. I took some pictures showing all 3.
Notice that the pattern in the pic is much smaller for Cura's 10% infill verses slic3r's. I don't know which is more accurate though :). I tried doing an experiment creating a box for the cubes to fit in and use water to find out which one was closest to 10% infill but I had trouble doing that and failed.
The 3 cubes in pics "image-2 10" and "image-1 27" are... from left to right...
Slic3r 10% infill, Cura 10% infill 0.4mm infill line width, Cura 10% infill 0.54mm infill line width
Here are some pics.
image-1 28
image-2 10
image-1 27
Hi Adam, thanks again for the super testing and feedback. Those pics are looking good.
With regard to the density, what I have done is adjust the pitch of the gyroid lines based on the infill line distance scaled by some factor. The infill line distance is related to density and line width. For example, if you are using simple "lines" pattern then 50% density would use a line spacing equal to the line width. 25% density would use a line spacing 3 times the line width. The gyroid pitch is calculated so that the total length of filament required for the infill is close to the length required for the lines pattern with the same infill density. The idea here is that changing the infill pattern from lines to gyroid should result in parts with similar weight.
I think that the layer start point is fixed so it won't start the next layer from where the current layer finishes. I can see the benefit of doing less travel but the downside would be that it would immediately reverse and extrude on top of the still molten layer below so it could give quality issues?
Thanks for taking the time for the explanation. It is interesting to hear the reasons for things. It sounds very logical.
For the start point, I looked at the gcode from slic3r and it does start right back over top of where it finished the last layer. Maybe that isn't always the case... I certainly don't know. I just thought it was interesting as it was faster, don't have to worry about priming, and didn't have as much stringing on my printer but stringing can be compensated for mostly. Maybe a Cura dev already investigated that at some point and determined it is bad. I am sure you Cura devs are doing what is best for Cura.
I printed another object "Save pangolins" but with outer layers you can't see anything inside so no since in showing a pic of it. It turned out to be an excellent print.
https://www.thingiverse.com/thing:2064359/
I think people are going to be very happy with what you have done when this eventually gets approved. It is working well for me as it is now. I think it is going to be a popular feature when it eventually gets released.
Hi, I've been working on improving the connecting lines. I will be uploading another build today but not sure exactly when. I am still investigating a relatively minor issue but if I can't fix it in the next hour or 2 will upload a release anyway.
OK, I've fixed the issue but the build won't be uploaded for a couple of hours as our internet is tied up for a while.
Amazing progress 馃槏 Never thought things would go so fast! @smartavionics When can we expect to try out your progress under Windows? Or is the Alpha channel only for Linux?
Sorry, @Snypes88 , I can only create Linux versions of my Cura as I don't use Windows here. All of the source is available on github so someone who can build Windows releases could build it but I'm afraid I don't know anyone who does build for Windows from source.
I don't know if it would work but if you have sufficient free disk and memory you could install a small Linux system using Virtualbox and try running my releases using that.
I updated to your build from today. I have been trying to get a really good looking infill without walls or top/bottom layers and it is really looking good.
I disabled combing to reduce stringing. I also disabled Connect Infill Lines (seems to be default disabled). I then printed 2 cubes without walls or top/bottom layer. One of them using a 0.4 mm Infill Line Width. The other using a 0.6 mm Infill Line Width. I am very happy with the results. These things are very nice looking. The thicker line width version looks especially nice as the thickness just looks more solid and more to look at(can see through it easier for the same infill %).
I want to do some destructive testing with the two and see which ones breaks first but I don't know that I have anything to do that with. I am curios if the thicker but further apart lines are stronger, the same, or weaker than the thinner lines but closer together line spacing.
Left side is 0.4 mm Infill Line Width
Right side is 0.6 mm Infill Line Width
image-3 3
image-2 11
image-1 29
Thank you for spending all the time that you have on this. The prints really show that you are doing a great job on this. Thanks!
Another print using Gyroid. I like the pattern. It is a consistent pattern from all sides compared to the triangles that I always used before. Did I mention I really like this infill pattern?
This is a pencil holder.
Print your infill separately and push it in. Lol. I am having too much fun with this I think :).
image-1 31
One thing I noticed when increasing Infill Line Width (from a previous print) from 0.4 mm to 0.6 mm for a 0.4 mm nozzlie is that it shows as 2 lines when really it is just a thicker single line. I tried triangle infill and it showed the same thing so I guess that is expected?
Hi Adam, thanks for all the feedback, I'm glad you're happy with the results.
One thing I noticed when increasing Infill Line Width (from a previous print) from 0.4 mm to 0.6 mm for a 0.4 mm nozzlie is that it shows as 2 lines when really it is just a thicker single line. I tried triangle infill and it showed the same thing so I guess that is expected?
Hmm, I don't see that, can you provide some screenshots of the layer view?
I think it is just a rendering/view thing with Cura on Ubuntu inside a HyperV (Windows 10). Regular Cura on Windows doesn't exhibit this weird looking rendering.
Ah, that screenshot is showing the layer view to be using compatibility mode. The OpenGL in the VM must have a low version. I don't think there really are two lines there.
Cura has some big stuff in the works so unfortunately for now, no. This issue is marked as "Deferred" because we do not plan to devote any time to it in the foreseeable future, but would like it implemented eventually. Pull requests are very welcome.
@ianpaschal Any chance of this getting out of deferred status with the work and the pull request that has been done on it by smartavionics?
He says
Pull requests are very welcome.
馃憤
Note that the "deferred" status is only meant to show that UM devs won't spent time developing this. Fortunately for us, @smartavionics is not an UM dev.
Yup! "Deferred" means we want it (or in the case of a bug, it _should_ be fixed) but that we don't have the time/dev power to make it happen for the foreseeable future.
When Mr. Avionics has made a PR for us to review, we'll slap an "In Progress" label on the PR. 馃槈
When Mr. Avionics has made a PR for us to review, we'll slap an "In Progress" label on the PR. wink
https://github.com/Ultimaker/Cura/pull/4365
https://github.com/Ultimaker/CuraEngine/pull/850
Over to you...!
Aha oops! I'm actually now officially working only the UM3 Networking Plugin, so I can't speak to whether or not anyone in Cura team has picked it up but I imagine @Appesteijn will put it in a sprint soon in the near future.
Isn't Open Source great? :+1:
Isn't Open Source great?
Sure is. It makes a lot stuff possible that otherwise would be very difficult to achieve.
The status changed to in progress several days ago... sweet! Looks like there is some disagreement upstream about how the code is organized though. Hopefully upstream doesn't let this new infill code gather dust. There is some good work put into this by smartavionics to get this going.
I haven't felt a need to go over 15% yet for the infill percentage with this infill. I mostly use 10%.
I am still using it even though my workflow is slower as I have to use another OS under a VM to get smartavionics' alpha build running. If anyone else gets a build of this going on Windows, please post it. We will likely get more people testing it. I have been trying for the past week to setup the compile environment on Windows but keep getting stuck (currently stuck on protobufs compile).
I can now build on Linux and OS X but cannot build Windows releases. I have posted a request for help on the forum but nobody has replied.
It has been merged! 馃嵕 馃嵃 馃嵑 馃巿
Whoa. What an amazing pace of development here. Congrats!
Thank you everyone involved 馃挴
It has been merged! 馃嵕 馃嵃 馃嵑 馃巿
What does this mean? Will it be in the next Cura version?
It's not in time for 3.5, but 3.6 will have it (right @nallath ?)
Yes it will be in 3.6
I suspect someone will end up getting an alpha build with it compiled in that people will use unofficially... I think people are really excited for it. Ideally it would be 3.5 final code with only Gyroid infill compile in but I would settle for a mainly stable alpha master build too. As I mentioned... I am working on getting a Windows environment going but having a lot of setbacks that really has me puzzled. At the rate I am going though 3.8 will likely be released by that time :).
Thank you to all involved and especially smartavionics and the original developer on Slic3r who gave starting point code to work from.
Just letting you know that I have now posted a Windows version of my development release which includes the gyroid infill. You can find it at https://www.dropbox.com/sh/s43vqzmi4d2bqe2/AAADdYdSu9iwcKa0Knqgurm4a?dl=0
Excellent! Get testing everyone with Windows that is interested! :) Thank you for this.
Thank you so much!
Congrats!
Hey @smartavionics, first: thank you for this build. It works great and I'm loving the infill. However, the fine resolution of the generated gcode chockes my serial bandwidth (and sd-card's), it creates micro motor stalls while the buffer refills, and it forces me to reduce the printing speed.
I've tried changing Cura's maximum resolution from 10um to 20um, but gyroid infill doesn't seem to listen to that variable, as the generated files are exactly the same size.
What would be the easiest way to change the resolution?
Thanks!
So happy to see this :+1: in the Cura 3.6.0-BETA AppImage on Linux:
Hi @jcobreros , I'm sorry to hear that the line density in the gyroid infill exceeds your printer's capabilities but I don't think there's much I can do about that because the gyroid pattern is already being generated quite coarsely. Each wave cycle uses a max of 16 line segments. When the pitch (distance between waves) is small it will use even fewer line segments but I do feel that reducing the number of segments further will severely impact the quality of the wave shape.
Cool! I'm glad to see it's already well optimized. I'll look into my printer's bottleneck.
Using this as my go-to infill now :)
@smartavionics , Do you know if line direction was expected to be working when you implemented this? I am printing an elevator for a wing that has to go diagonally across the bed and was hoping to set the line direction so that the few layers of infill on near the tips of the object would be straight with the diagonal wing so that any flex would be equal to both sides. Right now it looks like line direction doesn't change anything so the gyroid infill first lines are going straight with the bed and diagonal with the object I am trying to print.
Sorry, the gyroid infill ignores the infill line direction setting.
Most helpful comment
Gyroid infill is very useful not just because of its mechanical properties, but also because the interior of the part is fully connected; this is true for no other infill pattern AFAIK. Fully connected interior infill space allows the part to be filled easily with epoxy, and on the other hand lets liquid/air escape through a single hole.