Help with surface

Hi, I was hoping someone could help me. New to grasshopper and can see that is a fantastic tool.

It looks to me that all of the great youtube tutorials show you how to apply a pattern over one clean single surface. I would like to create a uniform mesh (diamond shape) over multiple surfaces as though it was one surface. When I try it, the mesh is applied to each surface rather than as a whole. So you get equal mesh on each surface but smaller.

You cant select the surface as a single surface, so you need to explode it and then select multiple, but thats where the problem is. Any help would be appreciated.

You can join the collection of surfaces, and then use the Quad Remesh to give a consistency to the panels that is not reliant on the UV parameterisation. Then Kangaroo2 has a diagonalize component you can use to generate the lattice, although there are other ways depending on what you are doing of course. Here is an example for 3 connected surfaces: (9.4 KB)

I’m not exactly sure if that is what you are looking for, but ‘mesh is best’.

1 Like

Hi John,

Thanks for the reply. I am trying to keep the original shape as much as possible and i am having trouble with the quad mesh doing so. If you look at my terrible sketch you will see what i am trying to do.
The image on the left is three surfaces with a mesh generated over them. This is the result i keep getting. Each surface face is treated individually. I am trying to do the image on the right, all three surfaces are to be treated as one.
Also note that i didnt mean to draw a pair of underpants.


Ah, it’s a question about underpants - well why didn’t you say in the first place @paulbeattie1 ? That’s my specialty.

I think your best bet is to try and create a single surface somehow and go from there with the patterning. It looks to me that the side pieces are both trimmed surfaces, with the centre an untrimmed surface (just an educated guess). You can untrim the edge pieces, pick out the individual edge curves, Network srf a new surface, and then trim this. Note that most components that construct a Mesh pattern on a surface (such as the diamond pattern in the example below) will ignore the trimming as they just use UVs, so you will have to do that yourself either in grasshopper or rhino afterwards.

John. (38.1 KB)

1 Like

Thanks for that John,
Thanks for that John,

This is what I am trying to do, although this is not the actual model I will be doing it to.

I did this in Solidedge with extrusions and sweeps, but I only have control over the distance between the extrusions that created the sweep lines. I was hoping I could get control of everything (diamond shape and pipe) in Grasshopper.


It sounds to me @paulbeattie1 that your best bet might be to use a simpler surface to control the pattern, then project this onto the more complicated ones. There are a couple of ways to do this, you could project the point or ‘pull’ to the surface depending on the shape, then rebuild the mesh with these new vertices. (31.3 KB)

The modelling bits around a pipe, that’s a question for elsewhere.


Hi John,

First of all, thanks for all your time and help.
When i say pipe, i mean that the diamond would be in the form of pipe when the surface is removed. I cant make the surfaces simpler as this would be a complete car body and has to keep the shape as much as possible.
I was hoping to use grasshopper for better controll and also that i can pass the grasshopper file over to the customer so that they could adjust thepipe diameter and diamond mesh size as they wanted.

I think i may have to just project curves onto the surfaces (as i did in SE) and just accept that. But with the added control you get from grasshopper.

Thanks John

Ah I see, I didn’t get that. There are many tools out there that will mesh pipe the diamond lattice (Daniel Piker’s Skeleton Fattener being one), however they all require extra installs to ‘vanilla’ grasshopper and therefore won’t be too good if you’re going to send things out to clients (I guess).

Anyway, here is a little definition to at least make mesh pipes along the mesh edges that runs pretty fast. It uses one component from the M+ family, but as these are user objects from scripts you don’t need to the plug-in for the definition to run. Obviously the node connections are not going to be perfect (something like a convex hull of the points at the nodes would work), but it might be what you need to get the job done or at least a starting point… not sure. (29.3 KB)