Automotive grille parametric modelling-Alias/Grasshopper

Or an number slider into the U and V inputs on the hex component: https://grasshopperdocs.com/components/lunchbox/hexagonCells.html

Look at a 1:36 on this video: https://youtu.be/ecTtTUKj4bk

2nd video- Yes, I saw this method of using hex cells and manipulating UV in another video. The issue I am facing is this one requires a surface and the output is a cell. How to use this as a geometry in the algorithm.

You will have to show an example here. You can shoot the surface into subsurfaces, then walk across the patches.

Here is a specific discussion on this: Finding centres of hexagonal split surfaces

I found Lunchbox not very useful on a longer term. Its great for beginner. Actually I started to code the patterns up by myself. Usually from 2d or 3d curves.

The reason: Lunchbox works with a single surface using its parametrization as spacing constraint. This is a big limitation. You want equal spacing or gradient spacing. But as soon as you modify controlpoints a bit more freeform you loose that ability. Furthermore you deal with multiple surfaces quite often.

As soon as transforming a cell doesn’t work anymore, I almost always ended up creating a curve or point net and build the pattern from there. I found it much easier to directly code it up. I know this might be far beyond your skill right now. I just like to point out, that very often you reach a limitation and then its quite handy to be able to script. I needed that gor 95% of the geometry I made. So start with this as early as possible (it also helps you to better deal with data)

34pattern2.gh (48.3 KB)

I have modelled the grille so far now. I see that the vertical and horizontal members are not centre aligned with the hex pattern. How to align them? Even though, both are made from the same intersection points. Furthermore, I am still unable to understand how to use the algorithm to develop hex pattern with varying UV. If someone can help me with an example.

Along with the GH file we also need the 3DM file to run the example you are running.

34pattern1.3dm (4.9 MB) 34pattern2.gh (47.2 KB)

I forgot. Apologies

This is getting very close.

The Hexes are at centerpoint. The centerpoints are where your curve meet.

The problem is that the profiles that are being swept are not centered on the rail. You can see they line up with the bottom half of each plane:

Yes exactly. The hex’s are entered, but the rails aren’t. The rails are made from the intersection points on which the hex’s are placed, but still they are not centred. The lines from which the rails are made are made from the intersection points. How to centre the rails, I don’t know.

The rails are centered. It is the profiles on the rails that are not.

You are using the rounded rectangle to create the profiles. Those are not by default centered.

This is the technique to center a profile:


center-rounded-rect.gh (14.8 KB)

Find the centroid of the profile. Then create a vector from centroid to plane. Then move the profile to the center.

1 Like

Yes, thanks a lot!

How to orient the hexagons tangentially at the intersection points?

The images show step by step process of orientation. At the end, they are not oriented tangentially as you can see in the baked model images.

In case of a surface, I know that we can use the evaluate surface component to orient it tangentially, but here since the points are projected on the surface, the evaluate surface component is also not helping.

To define a plane you need 3 points. That could be the center point, a point along the x and some point that defines the plane rotation. You can use the normal at the insertion point and son point along the UV. Once you get the transformed planes the transform the hexes onto that.

Tom, I would be VERY interested to hear yout thoughts on creating an irregular polygon grill that could be fabricated and formed in the real world

I have created face-lift parts and grills of the VW Golf 7 Gti (EU), Jetta Gti and the current Polo Gti before I left that kind of work. I also did similar things to many other cars, but these were kind of my personal flagship projects, because I was doing them from beginning up until the tools for mass production were made.

Now, of course you can use polygonal data to produce pieces and parts. In the end a very dense mesh is also what is used when tools are milled.
I also know about tests of using polygonal partially. The problem however is that it clearly depends on the functionality of the given part and on how flexible anybody else is.

The problem I was facing was in particular ensuring technical functionality and safety. Also, in order to mass produce, you’ll need to pay attention to the demolding technique behind.
This means you need to ensure that you and someone responsible can validate things like head-impact, flow of air, etc.

All tools for validation are currently requiring surface data. Is this necessary? I don’t know, but if you work with many different people there is an agreement on how data has to be. A standard, which allows others to not run into bigger problems. If you ignore this agreement, you may have an easier time in creating the geometry, but other people will have a harder job.

I mean its not super complicated to create a pattern in surface representation. It may require you to manually do certain steps of work, but its nothing impossible. Especially now, where there is Sub-D. Of course converted Sub-D surfaces are not matching the required standards on a prototype state, but at least that could be a valid compromise in the future. Since I left that kind of work, I don’t really care anymore. I mean some restrictions are really questionable. Thats the other side of the medal.

Is this answering the question?

But, really everybody should think twice if he/she wants to create automotive grills at all. Just to give you an example of stupidity:

A company like Volkswagen may give you threshold values for G1 discontinuity. All exterior surfaces need to match G1 (tangent) below 0°05 degrees. Even the smallest local discontinuity makes the model invalid after the prototype stage. Now, I was able to automatically apply Bezier surface fillets on my pattern in Grasshopper, even with corner blends. The problem: Due to its automatic nature my tools could not ensure to go below that and sometimes ended up with values above 0°10 degrees on certain corner fillets. On a radius of 1.55 mm!
Nobody will spot a local discontinuity that large on such a small radius. I had hundreds of those fillets, which ended up in work suited to punish mass murder. In the end a lot of hours were required to clean up or trick the validation routine.

The issue with Grasshopper as it currently is, is the fact that its incredible fun to create something with it, but its hell to make it perfect. At least in Automotive I spend hours in tweaking things to perfection, while now I’m developing all day long.

Close )
Assuming this design gets made, it would be a single prototype to start with, so the problem that bubbles to the surface is how a machine shop would make the grill. Its a compound curve so I assume this means either bedning a flat flexible metal material over a former, or milling the entire thing as a finished object out of a solid block of ally.

I noticed the problems you are talking about with Bezier curves. I use them to join curves with an adjustable curve but the result is discontinuos in Bezier fashion so I rebuild it as an approximate Nurbs curve before the next stage.

Do you have some examples of a Grill that you could share as .gh file?

First of all any grill I have worked at was made of plastic, no matter if a chrome layer was applied or not. All of them where demolded in one or two directions. Usually in two directions. Front and Back direction. That makes it quite easy, because you only need to pay attention on draft angles.

Almost any CAD model of real cars, I had seen so far, were exclusivly made of Bezier surfaces at the visual layer. There are some exceptions but in general it is always Bezier. If a toolmaker makes a Nurbs out of is possible, but these people are not supposed to modify the shape itself. During the last stages of design refinement, surfaces get usually adapted below a delta of 1 mm. This numerical domain is so small compared to the size of a car, that it shows in which precision the skin of a car is modelled.

Now, I don’t want to start a discussion why Beziers are used over Nurbs.
There are valid points and questionable points. And there is definitly over-engineering going on.

However if we speak about plastic parts, pushing the inner continuity between surfaces below 0°05 has two reason I could think of. Visuals on large areas, and keeping it offsetable. But its more visual. On a small shape, like a radius this is more satisfying the system than useful if you ask me, but anyway.

So no bubbles or bumps etc are an issue. But of course, looking at a real skin is something different than just looking at the theoretical model on screen or in VR. So thats why there are prototypes. Sometimes the surface needs more curvature, more acceleration or there is simply an annoying shadow.

Curves and surfaces are a completly different piece of cake. While you can always match a curve to another on a high continuity, the same is not true for a surface surrounded by others. Depending on how the surface layout is, there occasionaly is always a local discontinuity along an edge. Especially on strongly curved areas at corner blends etc. But the same will be true for matching multiple Nurbs.

No, I don’t privately own these models, and even if, I am not allowed to share any of my professional data. Since this was a full time job, its really hard to sum everything up in an example file. Its just not possible, there was so much to it. In the end I always advise to model things manually and see how much can be automated. To create Bezier fillets I really had to develop lots of things, and I also exploited the geometry itself. So this means there is simply not generic solution to it.

What would help, if Alias or Rhino allows user to access its modelling kernel to a full extent. But even with that, reproducing something like this without using particular tools from Icem or Alias is difficult. Often its not only about finding a solution, but also to make it equal to a standardized solution.

And, to sum that up, the point is to use Grasshopper as a helper tool. The more you can do with it ,the better.But you shouldn’t make yourself depending from using it. It may already be a huge gain if you automate 50%. Thats my experience with it.

I think we are two different conversations here, but thats ok.
I guess I am trying to get some information that I can use to actually produce a Grill. For example, what kind of plastic is specified, what is the thickness of the webbing material at the thinnest point, how deep are the webs to give it enough strength IN GENERAL. I understand these are all dependent upon the design, in this case irregular polygons, but thumbnail numbers would be helpful to get my design closer to the real world )

Well some stats I remember:

0.5 or 1.5 mm on the radius. A bit bigger because at cornerblend it might go below 1.5mm otherwise. Depending on a country specifications there is a minimal radius specified in case of an accident.
For europe have a look at the ece26eu . This determines the minimal thickness.
The thickness and the count of the polygons were also restricted to air going in and the radius allowed. As thin as possible. Draftangles where 3 and 5 degrees. 3 upper and 5 at lower. All surface were crowned, so starting at higher degrees is a must. I believe crowing was a ratio of 1/10 to the surface dimension. But I don’t remember.
The deepth depends of the shape, usually we demolded in two direction, because you can inverse the draft angle at the middle, with a little gap.
The material I don’t remember, we usually had two, but I think this was due to the looks. one light, one dark grey.
I would just buy a single grill which fits most, and just measure anything.