here I am looking at the possibility to 3D panel a free-form mesh using equal edges triangles. As mentioned earlier in previous posts (Equal Triangular Length On Mesh Surface) is not always possible to achieve this result and therefore I have explored different ways to achieve a solution that could get as close as possible to this but with equal edges triangles:
I have divided the script into 3 parts:
- base surface creation
- triang grid and kangaroo relaxation
- triangular panels as pyramids (Final Goal)
In doing this I have encountered the following issues:
- Anchor the vertices to the edges of the “parent surface” (meshmachine does it right)
- Relax the grid by turning the corner, I’ve seen that by increasing the columns of the grid, it gets a little close but still doesn’t stick as well as the portion that is there now.
If you have better ideas how to solve this exercise or to improve this script I really appreciate you help!
Equal Edge - Triangular Mesh Relaxation.gh (179.2 KB)
Good luck finding someone who’s using all these plugins.
I replaced the Fillet Corners component with the native Grasshopper component and disabled your second base surface. I think you’d get a better result if the sections you’re using for the second base surface are aligned perpendicular to the curve.
The Kangaroo solver does not need a timer…
apologies for the number of plugins used, I’ll use native gh components.
For the purpose of solving the example, we could use the first generated surface with one arc less. It would result indeed in a more neat surface.
I would use sporph to morph a triangular mesh from the XY plane to your base surface.
Increasing the subdivision / making the triangles smaller should result in more equal triangles.
Weaverbird Stellate can be used to create a pyramid on every face.
Equal Edge - Triangular Mesh Relaxation.gh (189.5 KB)
The mesh converted into a SubD…
Thanks Martin! The result is very close to what I had imagined and your approach helped to get closer to the final goal.
I wonder if you think using a Galapagos could find the best ratio # grid cells in X and Y and size of the triangle in order to minimise the difference between the longer and the smaller edge? Might need Kangaroo Zombie?
Equal Edge - Triangular Mesh Relaxation - Galapagos Optimization.gh (191.9 KB)
Not sure about Galapagos, seems a bit of an overkill to me…
I agree, Galapagos might get this off road with no ruslts.
Just unrolling all the panels of the pyramids I can unfortunately see that they are still different to each other in a fairly significant range of dimensions. Am I try to solve an impossible quiz or perhaps tilting the panels in a different angle might help to get just a bunch of equal geometries along the surface?
I have the feeling that uniforming the triangular grid on the surface is not sufficient to have the triangles (edges) of the pyramid consequentally equal.
Is there a way to achieve a panelization composed of a limited number of panels. Let’s say that to panelize this surface with panels arranged in a pyramid, 200 panels are needed but there are 3 different families of identical panels.
Equal Edge - Triangular Mesh Relaxation_03.gh (218.6 KB)
It’s not going to be possible to make the triangles equal, or even very close to equal, while laying smoothly on the doubly curved surface. Changing the triangulation won’t help much with this.
The way triangular meshes are able to approximate smooth surfaces is by the variations in angles and edge lengths. If these are fixed to all be equal, the only way the mesh can deform is by variations in fold angle - i.e. crumpling.
Looking at these wood textiles can give some intuition for what the freedoms are for equal edge length meshes.
(work by Elisa Strozyk)
Thank you Daniel. The example well explain the issue but what I am looking for here is to cluster the panels in a minimum amount of families (they could and will have different edge size) but the amount of equal panels is reduced to for example 3 types.
Apologies for the lack of clarity in the information.