Modeling sine wave warren truss infil
Modeling sine wave warren truss infil
I got into an interesting discussion with a designer who created his own 3D printing slicing software in order to create a very specific kind of infil for 3D printed parts - a sine wave warren truss infil (a few pics for reference):
Basically it's a warren truss that follows the contour of the inner and outer surfaces of the part, trying to keep a 45 degree angle or as close as possible at any given point. It makes a lot of sense and is arguably stronger per the same weight than most traditional infils offered by open-source slicers. I argued with that designer whether it is possible to model this in CAD instead, since this would allow for far more control, and also allow to integrate additional features in specific areas of the part. I spent the better pat of the day trying to achieve just that, with some reasonable success. I modeled a sample surface with non-offset inner and outer surfaces, compound bends, twist, etc, to make it as complicated as possible:
and tried to figure out a way to model this infil in Solidworks. My approach was first to model a sine wave sketch:
Then design in the warren truss layout on both ends:
Then, create some reference planes as close to perpendicular to every point where the truss layout touches the inner and outer surfaces, and use Derived Sketch to copy the sine wave sketch there, and use Split Surface to transform the sine wave on both these surfaces at the right points:
And finally, create Surface Lofts between them to create the actual infil:
And after some thicknenings, it is done:
While this solution kind of works, but:
1. It is really not parametric. Changing the infil density (the number of sine waves) would require a major rework. Each wave requires a lot of features to create, this is very laborious.
2. The initial part I created is still relatively simple, so transposing a flat sine wave curve onto these compound surfaces kind of works, but any part with more complex geometry would require to "break" the pattern into smaller sections to make these approximations more accurate (following the actual change in shape of the part). So what I did here is hardly a scalable solution.
I am attaching the part I created to this post. Can anyone suggest a better approach to create this geometry? Something less laborious and more parametric? It doesn't have to be exact, but I would like to be able to control the angle of the infil, the number of these curves with simple numeric variables. So far, I can't seem to find a way to do it.
Basically it's a warren truss that follows the contour of the inner and outer surfaces of the part, trying to keep a 45 degree angle or as close as possible at any given point. It makes a lot of sense and is arguably stronger per the same weight than most traditional infils offered by open-source slicers. I argued with that designer whether it is possible to model this in CAD instead, since this would allow for far more control, and also allow to integrate additional features in specific areas of the part. I spent the better pat of the day trying to achieve just that, with some reasonable success. I modeled a sample surface with non-offset inner and outer surfaces, compound bends, twist, etc, to make it as complicated as possible:
and tried to figure out a way to model this infil in Solidworks. My approach was first to model a sine wave sketch:
Then design in the warren truss layout on both ends:
Then, create some reference planes as close to perpendicular to every point where the truss layout touches the inner and outer surfaces, and use Derived Sketch to copy the sine wave sketch there, and use Split Surface to transform the sine wave on both these surfaces at the right points:
And finally, create Surface Lofts between them to create the actual infil:
And after some thicknenings, it is done:
While this solution kind of works, but:
1. It is really not parametric. Changing the infil density (the number of sine waves) would require a major rework. Each wave requires a lot of features to create, this is very laborious.
2. The initial part I created is still relatively simple, so transposing a flat sine wave curve onto these compound surfaces kind of works, but any part with more complex geometry would require to "break" the pattern into smaller sections to make these approximations more accurate (following the actual change in shape of the part). So what I did here is hardly a scalable solution.
I am attaching the part I created to this post. Can anyone suggest a better approach to create this geometry? Something less laborious and more parametric? It doesn't have to be exact, but I would like to be able to control the angle of the infil, the number of these curves with simple numeric variables. So far, I can't seem to find a way to do it.
- Attachments
-
- sine wave infil test 3.SLDPRT
- (2.78 MiB) Downloaded 141 times
Re: Modeling sine wave warren truss infil
Another idea I am exploring is designing this infill on a flat plane, which is very easy to make parametric / save as Library Feature, and then try to deform it to fill the actual space in the part:
However, as you can see, I can't quite seem to make it work. Perhaps someone with more experience knows how to make it happen via this approach? Attaching file.
However, as you can see, I can't quite seem to make it work. Perhaps someone with more experience knows how to make it happen via this approach? Attaching file.
- Attachments
-
- sine wave infil test 4.SLDPRT
- (537.9 KiB) Downloaded 79 times
- Frederick_Law
- Posts: 1952
- Joined: Mon Mar 08, 2021 1:09 pm
- Location: Toronto
- x 1648
- x 1477
Re: Modeling sine wave warren truss infil
Hard to see if the sine warp around the vise or just pass straight through.
Or if it's glycol infill.
Or if it's glycol infill.
Re: Modeling sine wave warren truss infil
It doesn't wrap - it goes down but not in a straight line, but rather in a sine wave path, like in the first photo in my initial post.Frederick_Law wrote: ↑Wed Aug 16, 2023 9:53 am Hard to see if the sine warp around the vise or just pass straight through.
Or if it's glycol infill.
Re: Modeling sine wave warren truss infil
Anyone? I'm really stuck on this one, would really appreciate any ideas...
-
- Posts: 82
- Joined: Thu Jan 20, 2022 3:35 pm
- x 31
- x 91
Re: Modeling sine wave warren truss infil
To tackle the full problem, I think it first makes sense to ignore the sine-wave aspects. Those are topologically equivalent to "flat" (actually gently curving according to the overall part shape) surfaces. They are just bunched up in a special way.
So see if you can even imagine how to get a much simpler infill shape, say planes or round tubes, that could be applied to all of a more complex geometry in a scalable way. If you can figure that out, then you might be able to figure out how to use the sine-wave in place of the more simple infill.
I like your idea of mapping the complex surface back to planar patches, doing the infill there, and then deforming them, but most deform algorithms sort of take the section properties into account to make the "deform" act intuitively for the user in a stretching rubber into a minimum energy shape sort of way. By their very nature, these infills add stiffness in a very non-uniform way that is not likely to deform how you want it to. So again maybe you'd start with a simple infill between planes, deform that to match a local shape of a place on your complex geometry, and extract the deformed shape of the simple infill, and apply the sine shape in place of that.
All in all, this is not an easy thing to do.
So see if you can even imagine how to get a much simpler infill shape, say planes or round tubes, that could be applied to all of a more complex geometry in a scalable way. If you can figure that out, then you might be able to figure out how to use the sine-wave in place of the more simple infill.
I like your idea of mapping the complex surface back to planar patches, doing the infill there, and then deforming them, but most deform algorithms sort of take the section properties into account to make the "deform" act intuitively for the user in a stretching rubber into a minimum energy shape sort of way. By their very nature, these infills add stiffness in a very non-uniform way that is not likely to deform how you want it to. So again maybe you'd start with a simple infill between planes, deform that to match a local shape of a place on your complex geometry, and extract the deformed shape of the simple infill, and apply the sine shape in place of that.
All in all, this is not an easy thing to do.
Re: Modeling sine wave warren truss infil
Thank you very much for your answer and ideas. I am not yet sure if I understand it correctly, but I attempted a simpler case - a straight, quarter circle thin extrusion, then creating a truss surface in the middle (just a surface with split lines), creating some intersection curves on the extrusion, and then deforming the truss surface:ryan-feeley wrote: ↑Sun Aug 20, 2023 4:06 am To tackle the full problem, I think it first makes sense to ignore the sine-wave aspects. Those are topologically equivalent to "flat" (actually gently curving according to the overall part shape) surfaces. They are just bunched up in a special way.
So see if you can even imagine how to get a much simpler infill shape, say planes or round tubes, that could be applied to all of a more complex geometry in a scalable way. If you can figure that out, then you might be able to figure out how to use the sine-wave in place of the more simple infill.
I like your idea of mapping the complex surface back to planar patches, doing the infill there, and then deforming them, but most deform algorithms sort of take the section properties into account to make the "deform" act intuitively for the user in a stretching rubber into a minimum energy shape sort of way. By their very nature, these infills add stiffness in a very non-uniform way that is not likely to deform how you want it to. So again maybe you'd start with a simple infill between planes, deform that to match a local shape of a place on your complex geometry, and extract the deformed shape of the simple infill, and apply the sine shape in place of that.
All in all, this is not an easy thing to do.
Unfortunately, as you can see, the truss lines aren't straight anymore. I fiddled around with the settings, and apparently this is as good as it gets with Deform feature. I am not aware of any other feature that could do something similar.
Is this what you had in mind?
-
- Posts: 82
- Joined: Thu Jan 20, 2022 3:35 pm
- x 31
- x 91
Re: Modeling sine wave warren truss infil
Yeah, that's exactly the sort of process I had in mind. I don't know how to implement the next step, but say after you deform the truss, I'd be interested it extracting the edges where it intersects with the inside/outside faces of the main structure. And then I'd use those edges to somehow parametrize the creation of the sine features as a 2nd step. It would probably have to be overbuilt, and then trimmed with the inside/outside faces.
Actually automating this in any sort of way would surely require the API, and at that point, I don't know if Solidworks is the best 3D program. You'd pretty much want whatever 3D program gives the user the most direct control of the kernel for extracting edges and generating derived bodies.
Another place to look for ideas is how softwares do texture mapping. They take a generic square image with some details, and attempt to map it to complex curved surfaces. The solidworks help shows the different projections that solidworks can use. That is in somewhat what you are trying to do in applying a generic infill idea to more complex geometry.
Another idea, coming at this from a completely different direction, is to consider the end goal of the in-fill: would it be possible for formulate the problem as some sort of design optimization with the constraint of trying to keep a 45 degree angle or as close as possible at any given point, and maximizing the strength per weight. "Strength" is probably too general/multidimensional here, so perhaps the goal would be a stiffness metric of some sort. The discrete nature of the infill pattern would make this optimization very difficult to solve, but the basic idea is could you throw a ton of computational power at the problem, and have a sinusoidal infill, or something similar, just pop out in the end. I'm sure you've seen such "generative designs". That's the sort of approach this company was (maybe still is) taking. nTopology Breaks Generative Design into Its Elements.
Re: Modeling sine wave warren truss infil
Yeah, I tried this for a few more days, and I can't seem to make it work. The trusses won't stay straight after flexing them like I showed in my last screenshot. On the upside, the points where they intersect with the complex surface could be used to re-draw the trusses manually. But still, I don't quite get it, how would I propagate these points lengthwise along the complex surface? Can you please explain a bit more on how you imagined it? One way would be to use Face Curves, but these can only span across a single face, so it won't work if the surface is divided into several.ryan-feeley wrote: ↑Sun Aug 20, 2023 3:04 pm Yeah, that's exactly the sort of process I had in mind. I don't know how to implement the next step, but say after you deform the truss, I'd be interested it extracting the edges where it intersects with the inside/outside faces of the main structure. And then I'd use those edges to somehow parametrize the creation of the sine features as a 2nd step. It would probably have to be overbuilt, and then trimmed with the inside/outside faces.
Actually automating this in any sort of way would surely require the API, and at that point, I don't know if Solidworks is the best 3D program. You'd pretty much want whatever 3D program gives the user the most direct control of the kernel for extracting edges and generating derived bodies.
Another place to look for ideas is how softwares do texture mapping. They take a generic square image with some details, and attempt to map it to complex curved surfaces. The solidworks help shows the different projections that solidworks can use. That is in somewhat what you are trying to do in applying a generic infill idea to more complex geometry.
Another idea, coming at this from a completely different direction, is to consider the end goal of the in-fill: would it be possible for formulate the problem as some sort of design optimization with the constraint of trying to keep a 45 degree angle or as close as possible at any given point, and maximizing the strength per weight. "Strength" is probably too general/multidimensional here, so perhaps the goal would be a stiffness metric of some sort. The discrete nature of the infill pattern would make this optimization very difficult to solve, but the basic idea is could you throw a ton of computational power at the problem, and have a sinusoidal infill, or something similar, just pop out in the end. I'm sure you've seen such "generative designs". That's the sort of approach this company was (maybe still is) taking. nTopology Breaks Generative Design into Its Elements.
You are correct that this could be solved with API, but it's way beyond my programming skills.
And yeah, I am aware that SOLIDWORKS is not the ideal software for such generative stuff. Usually 3D printing slicers do this far better. The reason I am doing this in SW is because I need to apply such infills to very large parts that will then be split into several pieces to fit in the printer, and then glued together after printing - the infill lines must align between these different pieces. If I were to import these parts as solids into slicer and apply infill there, there is no way to make them align.
Any other ideas, anyone? I am not asking to model this for me, just some ideas that I could try. I know this is complex, but there must be a way to make this a parametric feature that could be applied to any part.