I’m new to grasshopper and would like to learn how to make pattern on my car front grill.

I have a basic surface on witch I would like to do this pattern. I watched tutorials but there is always one surface used. My base surface consists of two surfaces.

Can anyone help me how to project the pattern on more than one surface?

Attached a picture of the base surfaces.

Thank you very much in advance.


In these cases it is usually easier to try to convert the brep into a surface than to try to place the pattern on several surfaces. So, use the contour of both surfaces to cut another surface that contains both or take section curves on both surfaces and join them with loft (better, because you’ll get an untrimmed surface).

I watched tutorials but there is always one surface used.

Having done this in automotive for years now, I can tell you that this is one of the difficulties of doing it in automotive. :slight_smile: Tutorials, mostly created in an architectural context won’t help you here, and answering this question would involve much more as just writing a post in a forum.

First of all there is no universal approach. Each solution depends on the pattern itself. Can you morph, or do you need to build from scratch. Having done this even for final class A surfaces (“Strak”), in most cases I end up in building it from curves anyway. However you need surface tools. Tools to get at least close to features provided by softwares like surf or alias. For simple pattern creation in concept stage you can stick to native functionality. But even here you will notice the lack of tools.
It may help you to distinguish between projection and pattern-creation surfaces. A surface which is only there to create a pattern does not need to have class A properties, but rather has to have equal parameter spacing.
So usually I solve such problems by mapping a 2d curve grid into a surface close to the shape, projecting from there to the shape, reapproximating projections and build surfaces from there. However, as said, that doesn’t work in all situations.
I also switched over coding parts of it, simply to avoid a certain complexity involved when using a node based system like Grasshopper.