Offsetting surface parallelly

For quad meshes, even when the faces are parallel, it is usually not possible to make a parallel offset of the faces and have the nodes of the faces of the offset mesh still meet.
The offset planes of 3 faces always intersect in a point, but typically when you have 4 faces around a vertex, these points for each combination of 3 of the faces will not coincide. So you end up with non planar faces and twisting beams or extra little corners on the faces.
You can optimize a mesh so that it can be offset like this though- it needs to be a conical mesh (see the links in this thread for more info).

Here’s an example showing how this can be done for your shape.
It turns out what you have is actually already very close to conical, so the vertices only need to move a tiny amount - you can even get away with skipping this optimisation step here, but perhaps it is interesting for others to see an approach which can also work for more general shapes which don’t already have this property.
Then it uses Kangaroo’s FaceFace offset component to create the parallel offset with all faces at the same distance apart and torsion free beams, and makes boxes out of them
offsetSurfaceParall_conical.gh (50.9 KB)

7 Likes