Parametric G2 Surface Blend Definition

Hi everybody,
I made this Grasshopper definition to make parametric surface blends: Blend.gh (91.7 KB)
Watch YouTube video
It’s part of a group of definitions with similar logic I use for automotive design purposes. Basically, I’m trying to make a corresponding definition for every most-frequently used Rhino command when designing cars (i.e. splitting curves and surfaces, trimming etc).
Although it doesn’t handle all possible situations, it behaves quite well with simple setups like the one presented in the video, that is single-span surfaces and curves. Trimmed surfaces works as well, provided blending edges are single span curves with the same degree.
Just select two surfaces and two curves or surface edges, select one of the section-curves styles provided and play around with the settings.
There is plenty of flaws in the definition, I’m no GH geek, maybe someone could help me improve it.
For example: I get a “component expiring” warning the first time I trigger an update modifying one of the input geometries. I know this is due to the fact I’m changing parameters during the solution, is there a workaround for this?
Also, sometimes my screen goes black while the solution updates, so I really should go through the entire definition trying to optimize it.
Use it at your own risk if you’re interested!

2 Likes

Hey samuelmatthias,

In a couple of weeks I’ll release an plugin for grasshopper which will improve surfacing, especially blending. There a couple of things i’ll miss in rhino and grasshopper. Therefore I wrote my own Surface-Blending-Components, and other tools, like extrapolating, advanced Face & Triming functions, and several fitting components. They are done, but not released yet.

First of all blending IsoCurves do not ensure Surface continuity, because Surface continuity is 2dimensional. So even if your Curves are perfectly joining, it does no mean your Surface has G2 or even higher
However if you keep each P1 and P2 factor equal, its seems to work. The real problem, is a lack of a good continuityanalysis. The one from ASM is quite good. For exact fitting, this works fine so far, but partial fitting or projecting on other Surfaces is quite difficult.

I havent tested your definition yet, but i’ll have look later. You may need to invoke an “Solution Expire”…
Your shader looks good, where did you get that from?

Hi TomTom, glad to hear that, I look forward to the release!
Actually it’s not a shader, I use Auxpecker, it’s a free Rhino plugin that uses environment maps.
I’m a bit confused regarding your isocurve statement, so far I’ve checked continuity only with zebra stripes and by checking curvature graphs of cutting sections across the blending edge, everything looks fine to me, but maybe I’m missing something.

Curvature.3dm (162.2 KB)

I know zebras aren’t the best way to evaluate transition’s smoothness since they use a spherical environment map, but the curvature graph should be more reliable

sorry, it wasnt meant as a critic, only a hint. i havent seen the data yet, because i have no rhino at the moment. but, yes it looks perfect. it looks like curvature matching, since curvature-graph has no offset.As i saw in your video, your P1 and P2 factors were equal, this works good. but if you like to change the cp-layout of your blending patch, by having different blending parameters for each isocurve, you may lose your continuity, eventhough your isocurves still are G2.Same problems occur if the patchedges are not nearly as parallel. hard to describe without rhino.

My approach was similar.

  1. i created a 6*X surface only G0 Matching
  2. Extracting the u- isocurves of the blend at the greville parameters
  3. Joined them with the coresponding isocurves of the geometry.

At work I’m using Icem Surf, so, all differences are writen in angles. This helps if you have difficult fitting situations, and if there is no exact solution possible. i’m often matching manually, because sometimes you get better results

thanks for info about the shader. this will help me a lot, if working with rhino…

i’ll will have a look at your data later. You are also working in automotive industry?

Don’t worry :slightly_smiling:, I did not read it as a critic, I’m just very curious about this topic and I’m trying to learn as much as I can about it.

I work in the automotive industry, well…, almost, we do scale model cars licensed by big brands. I have to deal with their CAD files everyday so I’ve learned a bit about patch layouts, cp distribution and of course curvature continuity.
Like many other users I’d like to see more advanced surfacing tools in Rhino to narrow the gap between him and other parametric cads.

Regarding the cp layout, I’ll post an example file to show my approach, it’s hard to do it just with words.

Hi samuelmattias,
I like the video and the concept of your work, but Blend.gh is not working for me like it does in the video.
I am not a GH user and maybe I am doing some thing complitly wrong?
Do I need some “special” plugins?
I think that Blend.gh is a very useful tool and I would like to use it.

Thanks
ED77

Hi ED77, could you be more specific and post your rhino file as well? As I said, the definition is quite buggy and may not handle all possible scenarios.
Make sure you enabled history recording and update in Rhino, the definition relies on that. Edge curves must be single span and have the same degree and control point count. Also, bake the cross sections only once and don’t rename them, as the definition uses object names to reference those curves and keep them updated.

Hi samuelmattias,

It’s been two years since you posted this topic. Have you made any updates to the blend.gh definition?
Have you made any other helpful commands, such as a GH network surf command that can use real surface edges?

Matt

this thread is obsolete: Blendfunction was added in V6

http://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Geometry_Brep_CreateBlendSurface.htm