Ultimaker / Cura

3D printer / slicing GUI built on top of the Uranium framework
GNU Lesser General Public License v3.0
6.21k stars 2.09k forks source link

Create option for Gyroid infill #4004

Closed probonopd closed 6 years ago

probonopd commented 6 years ago

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

smartavionics commented 6 years ago

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.

Snypes88 commented 6 years ago

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?

smartavionics commented 6 years ago

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.

agibson2 commented 6 years ago

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!

agibson2 commented 6 years ago

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.

image-2 12 image-1 30

agibson2 commented 6 years ago

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?

smartavionics commented 6 years ago

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?

agibson2 commented 6 years ago

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.

screenshot

smartavionics commented 6 years ago

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.

agibson2 commented 6 years ago

I agree. It is just using whatever defaults HyperV and Ubuntu use. I am not worried about it.

Here is another print using transparent PLA. Really liking the pattern. img_1413 img_1412

agibson2 commented 6 years ago

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?

probonopd commented 6 years ago

He says

Pull requests are very welcome.

👍

fieldOfView commented 6 years ago

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.

ianpaschal commented 6 years ago

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. 😉

smartavionics commented 6 years ago

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...!

ianpaschal commented 6 years ago

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.

probonopd commented 6 years ago

Isn't Open Source great? :+1:

smartavionics commented 6 years ago

Isn't Open Source great?

Sure is. It makes a lot stuff possible that otherwise would be very difficult to achieve.

agibson2 commented 6 years ago

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).

smartavionics commented 6 years ago

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.

fieldOfView commented 6 years ago

It has been merged! 🍾 🍰 🍺 🎈

filipgoc commented 6 years ago

Whoa. What an amazing pace of development here. Congrats!

probonopd commented 6 years ago

Thank you everyone involved 💯

Theagainmen commented 6 years ago

It has been merged! 🍾 🍰 🍺 🎈 What does this mean? Will it be in the next Cura version?

ChrisTerBeke commented 6 years ago

It's not in time for 3.5, but 3.6 will have it (right @nallath ?)

Appesteijn commented 6 years ago

Yes it will be in 3.6

agibson2 commented 6 years ago

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.

smartavionics commented 6 years ago

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

agibson2 commented 6 years ago

Excellent! Get testing everyone with Windows that is interested! :) Thank you for this.

blastarrow20 commented 6 years ago

Thank you so much!

supermerill commented 6 years ago

Congrats!

jcobreros commented 6 years ago

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!

probonopd commented 6 years ago

So happy to see this :+1: in the Cura 3.6.0-BETA AppImage on Linux:

peek 2018-11-11 21-50

smartavionics commented 6 years ago

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.

jcobreros commented 6 years ago

Cool! I'm glad to see it's already well optimized. I'll look into my printer's bottleneck.

ChrisTerBeke commented 6 years ago

Using this as my go-to infill now :)

agibson2 commented 5 years ago

@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.

smartavionics commented 5 years ago

Sorry, the gyroid infill ignores the infill line direction setting.