Is there a way to subdivide a flat, non-rectangular surface?

Hi, I’m trying to make a uniform grid of a geometry we’re using for a product. I have a surface to flow along, & I have used the squish command on it to get the flat version to use as a reference surface for the grid model. The problem is the squish command produces a non-rectangular shape, that is bounded by a perfect rectangle, so mapping the reference surface to the curved one produces the wrong result.

This picture shows what I’m trying to do, & the crude lines I’ve drawn it are showing what’s going wrong. The points on the top surface should be flowing with the curves of the surface rather than out of bounds in a square pattern.

linked picture:

dear @David_Littlefair - welcome to this forum.

you can drag and drop images and .3dm files to the edit window to share them directly.
(there is some file-Size Limit - not sure 10MB).

check this forum for “developable surface” there is a lot of info around, also in the rhino help for unrollSrf

are you working with Mesh-Data ? my guess.
you can _dupEdge (rectangular-Select the entire mesh)
and then in the squish command
after selecting the surface / initial mesh you can select curves - the ones you just got from dupboarder:

use _unrollSrf for developable surfaces
use _squish if expansion / compression is needed to flatten the surface
( there is also an older version “_smash” - you might want to check the help to see if this offers some helpful options for you)

to bring (back) 2d geometry on the Initial surface

(_flowAlongSrf, _applyCrv)

check those commands in the help.

if this info does not help, please post the file and describe what exactly is not working.

happy modelling - kind regards -tom

Hi Tom! Thanks for your reply & the welcome. The image you’ve posted looks like exactly what I’m trying to do, but I’m not using a mesh surface, I’m using a nubs surface as this needs to be exported to solid works for further development. I’ve attached my file (hopefully) so you can see what I’m working with. There is a failed attempt still in there to show what’s wrong, & the base surface, geometry, & target surface in the middle.

New (5.4 MB)

SquishFacets.3dm (5.5 MB)

your surface is a bit unusual.
it is a multispan Degree 1 by Degree 1 surface.
more or less a 3d-equivalent of a polysurface.
(how did you create it ?)

in Rhino 7
_split (Isocurve, Shrink = yes)
to get single Facets

in Rhino 8 faster:
_convertToSingleSpans (direction both)

now more or less the same as mentioned above:
_dupEdge (from the splitted / single span surface)
_squish (the original surface)

your 2d work

_squish back

hope this helps - kind regards -tom

ConvertToBeziers in Rhino 7 and Rhino 8 is equivalent to ConvertToSingleSpans with Direction=Both in Rhino 8.

EDIT: Everything I said below is redundant because I forgot to put wireframe on & see what you created was the thing I’m after. I don’t however know how to use it as a surface now. Is there a way to split the surface using those lines?

Hi Tom,

*The surface was created in Onshape, brought into Rhino & then a rebuild command was done on it to make it 19x19. I’m unable to follow what you’re trying to do in that file. What I’m not able to recreate is the image on the left of your first reply, not the one on the right. Basically I need the flat face subdivided in a similar way to the curved face. *

I might be being a total idiot but I just can’t seem to figure it out. The convert to single spans command seems to just break up all the individual faces no? I’ve no idea how this:

"now more or less the same as mentioned above:
_dupEdge (from the splitted / single span surface)
_squish (the original surface)

your 2d work

_squish back"

Would produce what I’m asking for, maybe it’s backwards? Here’s a sketch of what I’m saying I need.

Basically if the control points form a square, it treats the reference surface as a square instead of its actual shape.


PanelingTools may be useful. PanelingTools for Rhino and Grasshopper | Food4Rhino

1 Like

EDIT 2: So I took the flat surface & did a rebuild of it with the same amount of segments as the lines you’d created & then manually moved all 361 points to match up with them. This warped the surface to something different from what I wanted, but because the control points were in the right place the flow along surface has given me a result much closer to what I was wanting. So if there was a way to add those lines to a surface to dictate the control points location then I’d have a really nice workflow.

I’m still not 100% sure how you created the lines. It’s a shame there’s no history tree in the files that I can follow.

Panelingtools is meant for this type of accurate subdivision.

Hi Tom!

Just messaging to say you were a massive help in us producing the thing we needed. I figured out how you’d done what you did, & reapplied it to a different surface as we’d realised the squish you’d used wasn’t quite right.

I had to manually move the control points of a square of 19x19 points, which was tedious & not entirely accurate but near enough. We then brought our geometry in as separate bodies, which allowed us to do flow along surface as rigid, stopping the warping from happening too. Here’s the result when brough back into our CAD system:

1 Like