# Create a uniform grid of points or frames divided by distance on a surface that is not influenced by surface uvs

Hey all, Looking to pattern an entity onto a surface using a point grid or frame grid. But I’m only finding grid that follow the surface uvs. Various division methods have all given similar results. All points start at (x,0) with the “y axis” being one the the surface uvs.

In this image, it’s the lower edge that’s providing the “y axis”. I’m looking for my grid to totally ignore the surface constraints and just pattern regularly.

I will later be culling certain points/frames and want to be left with a uniform grid of points/frames to create additional geometry.

As viewed here, the magenta line is where I want my grid to fall.

Simplified program version uploaded along with jpg of reference drawing. simplified.gh (6.7 KB)

Final desired result is holes in a brep that are uniformly placed on a surface, but ignore border geometry.

You could project a grid onto your surface.

I thought of project, but eventually I need this to function across large surfaces that are almost cylindrical. Would a project still work? I feel like projection direction would cause issues at points where the surface tangents are nearly parallel.

My fault for not uploading! Attached now. I’ve been using the “PanelingTools” plugin. I’m trying to pattern a curve onto the surface… I think that’s clear?

Not sure if this is where you wanna go, should work with any surface…
edit: instead of contour you could use perp frame on a vertical edge of the bounding box.

simplified_re.gh (12.3 KB)

This is on the right track, but doesn’t work on surfaces that have sections with vertical and near-vertical surface normals.

one mapping technique I constantly use is:
I define 2-4 “edge” curves, tween in between them and project or pull these “tweens” onto the brep. After doing this, I solve for intersection or I divide them to get the grid.
You can create dozens of derivatives of this technique, it all depends on the pattern and the referenced shape. Sometimes I even model every tween curve myself to get the best mapping out of it.

Hey Tom, I tried a method like this, but I’m trying to ignore those “edge” curves. Imagine if you wrapped a checkerboard onto bike helmet. None of the straight lines in the checkerboard would line up to the “edge” curves on the bike helmet.

well, lets say it like this. I have done dozens of complex mappings and in none of them I could use the exact same mapping method. It highly depends on the problem. And finding an mapping approach takes many trial and error cycles. In some odd cases I have modelled the principal curves by myself. And Sometimes there is simply no satisfying solution. Could you share the geometry you are talking about? At least roughly?

Maybe another solution is using Kangaroo to do some sort of quad-face-equalisation. In my experience this however didn’t work satisfying enough to use it in a real world application, because you have to take what it returns, but a mathematical/physical solution is not always the most aesthetic solution…

1 Like

Tom, yea I’ve struggled for a few days now. It’s been a challenge!

I can’t share too many details, sorry. This is a work project I’m stuck on. End goal involves taking ~10-15 surfaces of various sizes, shapes, and orientations and running this program on it. The program is to perforate each surface with a non-uniform cross-section hole laid out in a offset grid pattern.

welcome in real life,

I’ve made perforations on car speakers matching up to 7 edges or an instrument board with 8000 holes. Perforations are one of the most difficult things you can do, because you visually read them differently ( depending on the perspective). Its hard as ****. Projects took me about 2-6 weeks just to give you a hint on how long such “simple” tasks can take. Luckily I’m not doing this anymore…

1 Like

Imagine if you wrapped a checkerboard onto bike helmet.

As mentioned above seems like what you want is either a contour or a kind of intersection.

Here’s a shot - By adjusting the parameters of the Meshing algorithm Grasshopper makes use of, we can create almost-evenly sized mesh faces. The key here is to keep the aspect close to 1, and the min and max edge lengths relatively close together. These are based (mostly) on the physical properties of the surface, and are generally unaffected by your surface parameters. Isocurves are shown in black (stretched intentionally).

Note: I use Pufferfish (thanks Michael!) to generate an offset mesh, but the fundamental idea works in basic grasshopper. As a general note (as others have noted) perforations are very difficult, and one often resorts to using meshes or texture mapping as a way of hacking around this limitation.

meshdiv.gh (15.5 KB)

1 Like