Issue with automating edge cuts for manufacturing

im facing a problem with loft, sweep2rail, ect. components in GH.
As a base geometry i have an assimetrical pyramid, im trying to give it a wall-thickness and cut it into sides. Each side should have the same wall thickness and the edge of each side should cut in a proper bisector angle. However, because this shape is assimetrical it has unusual edge cuts at one of its peak. (this unusal edge and peak of one side of the original pyramid is shown on the pic)
So i have the inner and outer face of the side and i want to make the edge faces so it can be a solid, but when i try to make it with for example a simple straight loft between the faces, it messes up the edge at that peak (the geometry on the left side os the pic). All edge faces have to be planar and at that point it should be a triangle (it should look like the geometry on the right side of the pic, which i made by hand for reference in rhino). i guess it happens because the outer face has only 3 verticles while the inner has 4 verticles

my final goal is to make a definition which can use any geometrical body (like the pyramid) and it automates the process of making them proper edge cuts so if it made out of ceramic tiles, it can be precisely manufactured with cnc. Do you have any solutions for this problem?or How should i approach this issue? Thanks a lot!


I think you’re correct about needing to connect the same number of vertices from one polygon to another is the issue.

The image below connects one set of vertices to the corresponding polygon, while keeping the lowest common denominator. It repeats this with the vertices list reversed. This seems to create the edges you are looking for. However: a) this creates duplicate curves, b) making a surface from this would require some tedious line selection that may not adapt to other shapes.

Hope someone has a better solution!


1 Like

could you please post a couple of examples of asimmetrical pyramids you are working on?

I remember there was a component specifically to find 3D volumes encapsuled by different planes, but I can’t remember its name at the moment… it’s the brother of Plane Region, but for 3D volumes


(it won’t for sure work with convex shapes… )

There’s some good tools for doing this with meshes…

This uses components from Kangaroo and NGon plugins.

Adding panel ID and even corner ID to aid assembly can be done too.

For drawing the solid panels I used the Kangaroo FaceFaceOffset component but it is only meant for conical meshes.

Figuring out if the mitred angles are all made up of planar faces that don’t overlap or leave gaps drives me mad!

I tried it with a random ConvexHull (but I don’t know for sure if I’d conicalised it) and it showed the edges of the panels were not planar. (40.0 KB)


For vertices where over 3 faces come together it generally is not possible to make a parallel offset of constant thickness and planar bevels where they come together without getting some extra faces and edges at the vertex.

Here is a typical result -

offsetnode.3dm (147.0 KB)
This isn’t something specific to Rhino - it’s just what happens when you make a constant distance parallel offset of a mesh.

You can only get a planar constant distance offset with the same number of vertices on the inside and outside for conical meshes (where all faces around each vertex are tangent to a common cone), but this is quite a restrictive condition.
For nice curvature aligned quad meshes we can optimize to make all the vertices conical by small adjustments, but for general arbitrary meshes this usually isn’t possible.

1 Like

Thanks for your reply! I know i can only get the same number of vertices on conical shapes, but its not a condition to have the same amount! the only condition for the shape is to have edges from planar surfaces. What is on your picture is exactly what i want to get as a result (the right shape on the pic). That little trianugle between the 4 face causes the problems.

hi, this is the base shape of my model on the original pic. That one side is shown as wireframe. the same thing is on Daniel Piker’s reply.
i think you are thinking of ‘boundary volume’ which is how i get the core geometry of this it lok like this:

Do your objects have a mix of concave and convex edges?
If they are all convex there’s a fairly simple approach possible.
For nodes with a mix, it is still possible but it gets quite a bit more complex.

In this particular case its all convex, but it would be good if i can use mixed shapes

If I use the Conicalize goal on K2 and feed it a convex hull mesh from SlHull3d it does do something but it is it pointless using Conicalize on such a mesh?

The convex hull is just randomly created from Populate3d

Hi @martynjhogg
Conicalize acts only on the 4-valent interior vertices of the mesh it is given.
3-valent vertices are always conical so nothing needs to be done to them.
For something like a subdivided triangle mesh, with mostly valence 6 vertices, there’s not much point trying to conicalize them, since I think the only allowable shapes for the mesh would then be spheres.

I hadn’t given much thought to simple meshes like this with only a few valence>4 vertices.
My guess though is that if we did add a goal for conicalizing them, it would also force them to become a sphere.

1 Like

I might have simplyfied the nature of my issue to a question: Can i Loft 2 curves with different amount of verticles and get only planar surfaces?

as you see if i use a simple loft cant do it (right obj)

thanks, David

Here’s how I’d approach this:

Calling the polygon with more edges A, and other one B

  • For each edge in A, search for a parallel edge in polygon B (if there is more than one, take the closest) and connect this pair of parallel edges with a quad.
  • If no parallel edge exists, connect this edge in A to the closest point in B with a triangle

Yes IF the curves are coplanar. No IF the curves are not coplanar. If the curves are coplanar the result of Loft will always be planar. If the curves are not coplanar then the result of Loft will not be coplanar. This is how the basic geometry works.

Fundamental geometry: If two curves are coplanar then there is a plane which contains both curves. If two curves are not coplanar then there is no plane which constains both curves.

Added: If two straight lines intersect then the lines are coplanar. If three straight lines which define a triangle then the lines are coplanar.

@davidcockey - I believe what @0rouge.master is after is for each of the sides to be planar, so the polygons as a whole do not need to be coplanar, only the pairs of segments being joined.

Here’s an example of the approach I described above - finding the corresponding parallel segments and joining them with planar quads, and for segments which don’t have a pair, connecting to the closest point with a triangle. (12.7 KB)


@DanielPiker I didn’t realize my response said anything about polygons other than triangles. It was in response to his question about lofting between two curves, and said that two lines need to be coplanar to define a plane.