Divide surface and create gap between panels by trimming

Hi All,

Wondering if anybody can help this Rhino/Grasshopper Noob.

I want to divide a cutved surface (for example 1000mm by 1000mm) in to 4 pieces of 500mm by 500mm ( red cross). This is not really an issue, but the next thing is.

Now i need to create a gap between the 4 panels of 8mm. Not by shifting the panels apart but by trimming 4 mm of each panel where they touch another panel (yellow line on the sketch)…if that makes sense…

Is there an option for this in Rhino or (preferably) Grasshopper.


I don’t use Grasshopper. Several methods in Rhino:

ExtendSrf but to in the direction which makes the surface smaller rather than extending it.

OffsetCrvOnSrf selecting the dividing curve to create a curves the desired distance from the edge.
Trim using the new curve.

Pipe with Cap=None around the dividing curve with the radius equal to the desired distance from the dividing curve or the diameter the desired distance between surfaces.
ExtendSrf the pipe so it protrudes beyond the edges of the surface.
Trim using the pipe.

Sometimes instead of using Trim it is easier to Split with the Shrink option and then Delete the parts not needed.

Depending on what you will be doing with the surface you may want untrimmed surfaces. If the trimmed edge is exactly an isocurve you can ShrinkTrimmedSrf the trimmed surface to the edge and it will become an untrimmed surface. If the trimmed edge is not an isocurve there are several alternatives:

  1. Use an isocurve obtained using ExtractIsocurve to trim the surface, and then Shrink. The new edge may not in exactly the same location.
  2. Use Split with the Isocurve option and Shrink option to split the surface, and then delete the unwanted part. The new edge may not in exactly the same location.
  3. Use RefitTrim to rebuild the surface with an untrimmed edge. The new edge may deviate from the original trimmed edge, and the the shape of the surface may be altered.


Here’s one way to accomplish this:

offset_surfaces.gh (11.5 KB)

Thanks All for the quick reply, for now the grasshopper solution is what i’m looking into.

the only issue now is that it works with a rectangle but not with a curved surface

and i would need to have 4 separate panels so i can use them for flattening/nesting

Hi @User3046,

Here’s a grasshopper solution that splits a curved surface into four. Note that the offset has been increased from 4 to 40 to show the effect.

fourPanelsFromOne.gh (52.4 KB)


footnote: Looking back I see that this is one of @davidcockey’s solutions, implemented in Grasshopper.

1 Like

Now we are getting very close! thanks!

only thing now, which I forgot to mention, is that the gaps should run horizontal and vertical, rather than following the curve of the panel
Screenshot 01-10-2022 07.43.47

Try this!

divide_surface_offset.gh (49.1 KB)

thanks again for the very quick reply!

now i have straight line in 1 axe, but the other one is still a bit bend.

Well, now you’ve added that partially defined constraint there are quite a few things that need to be clarified…

  1. You are operating in 3D space: horizontally has an accepted meaning, but vertically describes an infinite number of planes rotated around a vector in the Z-direction. What do you mean by it?
  2. What constraints are there on the orientation of the panel to be split? some combinations of curved panel and planar cut will not result in four divisions (think slicing the top off a boiled egg).
  3. What constrains where the divisions are to fall on the surface?

To develop an effective solution it is important to have clearly defined requirements - not necessarily complete at the start, because more will come out of the woodwork as you progress.

Hopefully you can answer these to your own satisfaction and come up with improvements to one or more of the solutions you have been given. Post it/them back here so we can see how you have progressed.


mmm…ok, let’ see if I can clear this out.

What I would like to achive is that i have a straight wall wich i woukld like to clad with wall cladding with random curves.
I want to divide that into pieces so that if you look from the front, all panels look as if they are square.
so basically if you place a straight surface that you would divide into panels behind the curved panel, and you would use these lines to divide your curved panel into pieces…if that makes any sense

similar to the picture attached (lines might still look curved because picture is taking from ground level but if you would place a laser on the joints than they are dead straight.)

Oh, OK, that’s a simpler problem than your original description.

  1. Make the curved surface and (presumably) give it thickness to make a solid facing.
  2. Create a box 8mm wide, taller and deeper than the facing and make a linear array of it to create all the vertical joints.
  3. Boolean difference the boxes from the facing.
  4. Repeat with horizontal boxes.
  5. Voila!


P.S. if the facing pieces were to have lips to increase the apparent depth and hide the fixings then that adds a little complexity. Good thing you didn’t specify them!

1 Like

that worked, thank!