Surface matching help


I come from Icemsurf and Alias, and I use a lot organic surfaces for cars, Class-A surfacing. I’m quite in trouble with Rhino because don’t find my way of work for few things in surface modeling, and for the moment i turn back to Icem to work, but my objective is to work all on Rhino, if it’s possible of course. If someone can understand my demand, thanks in advance.

1- I don’t find the to match in curvature an edge of a surface inside an other surface. Which command you use? I find only edge to edge, but not matching in projection, or in X, Y, Z, or a view?

2- How you do surface curvature matching non co-linear ?

3- How to have control on a fillet radius, edges continuity, form factor and degrees when you do it? Must i work only with a blend ? Can I do proper radius in curvature like in Class-A modeling ?

4- Can I stay in curvature with an other surface playing with control points?

5- Did you know a specific plugin for class-A modeling facility? I’m ready to pay if I can find the speed of work I have on icem.

Thank’s in advance, and thank’s for your time, your job and this forum very helpful to learn.


Hi Fred - in general, any example files you can provide will be helpful in anwering your questions.

MatchSrf is the command, use CurveNearSurface=On. If you do not select a target curve, the edge is pulled to the target surface. Not sure if that gets at what you need.

I am not sure what you are asking here.

You do not have this type pf control in V6. V7 has some added tools, still being developed, for handling some aspects of this.

Using MatchSrf or BlendSrf with History enabled will allow you to do this, if I understand.

I do not,


also try endbulge command to adjust one surface while maintaining continuity

Unfortunately it’s not supported by V6 and higher… In fact it’s no longer available thanks to AD. Absolutely unique tool subset of IcemSurf and ISD allowing to run several commands in parallel along with all of those diagnostic gauges. Also it keeping aware of any changes to existing geometry. Mind blowing stuff without any rivals so far.


Thanks Pascal, for your time and your answer.

I start to understand the way. Normal projection is without selecting a curve, and for other solutions I need to project the curve I need before, and I can’t match inside the command by a view or an axe. History can be useful. But I see it’s not really doing for that. Needed to adjust curvature and control points inside the command to be efficient. An I don’t find the way to have control points of the surface inside the command, Curvature continuity have no control.

Did you know if it’s possible in script or other to have few commands working together, like matching and control points ?

Thanks, it was helpful because I saw the command before and don’t find alone…

Usefull too !! Thanks!! needed to be inside Matchsrf !! :wink:


Hi Fred - yes! a more interactive MatchSrf command is an old wish -

RH-30555 MatchSrf - allow some modifications within the command


1 Like

Thanks Mikey,

I saw theRhino 7 Wip start to use subdivision surface, it’s a good start. I look the videos, it was an interesting plugin for reverse engineering.
May be one day!!

Thanks for your interest…

for reverse engineering, try the quadremesh which retopologize your model with polygon quads, then use the tosubd command to convert it to subd then use the tonurbs command to convert to nurbs! works pretty nicely for even moderately complex models-

Whaou!! Effectively!! Still active on the forum and user since a long time!!
Respect man. :clap: :raised_hands: :pray:

For my part I have 25 years of Icemsurf and catia for automotive industry, so not easy to change, but now I try to bring 3D to craftsmen, artisan and bodybuilders, and this softs are really to expensive for my use so, I try to do the same work I did without. Not always easy, I think you understand…

Now I know there’s really good guys on the forum, it’s cool!

1 Like

I was working with Icem a lot as well. Just to add something which was probably being already said. When it comes to matching, analysis and special workflows, Rhino is not there yet. There is a fundamental difference on the algorithm base. While Icem tries to approximate a light surface to others, Rhino is going for pure mathematical correctness, meaning its adding controlpoints, spans etc. to hold a constrain. This makes it quite difficult to keep surface quality after executing several operations. As said, a lot of forum member input was integrated for V7 (at least from what I have read), but I believe, if there is a real motivation on catching up with Icem or Alias (which is questionable) , then there has to be a tight cooperation with companies doing class A professionally, just as the Icem guys did over decades. It is really difficult to explain anything on a forum. For you this means you just need to get used to different outcomes and workflows. Applying same workflows simply does not work anymore. But unless you are doing class A/strak then nothing speaks against some cps more. :slightly_smiling_face:

1 Like

Sure. I’m not sure Rhino want to be better in surface modelling, but I know when i was in Ferrari, we received on guy on Rhino… not for class A modelling but for car interior research… and now PSA and Apple have some guys too so, it’s sure if Rhino enter in this type of insdustry, they need to be more efficient in surface modeling. I try the last version of Alias too, and it’s a really good soft, too expensive, but really good. Information for you, an old icemsurf guy: icem is not anymore at PSA at the design center since few month, too much crash they said. It’ a shame, for me it’s the most proper software I tried for surface modelling…

Thanks for all your help,
Best, Fred

Please McNeel, if there is any interest in improving high quality surfacing - just look at what VSR/AD shapemodeling offered a couple of years ago.
Not only in terms of features/commands, but also look at the user experience…

1 Like

Hi Fred,

here are some more tips and tricks for your questions:

You can also enable history here and then use the command ExtendSrf with the options Type=Smooth and Merge=Yes to extend or shorten the surface. The matched area remains.

You can do the following for matching in axis projection:
Use DupEdge on the edge for matching, then enable History and use the command Project (with DeleteInput=No) and set the option Direction=CPlaneZ (or View/or Custom) for the target surface. Enable History again and match the surface edge using CurveNearSurface=On and select the projected curve and the target surface. Now it is possible to move the duplicated surface edge to determine the start of the matched surface.

Use the check boxes Preserve isocurve direction or Match target isocurve direction in the Match Surface pop up window. (In some cases this does not work correctly when matching to trimmed surface edges.)

The commands Rebuild, RebuildUV and ChangeDegree are useful for playing with control points.
Using MatchSrf with history - yes, using BlendSrf - no, because history is destroyed.

As a general advice for Rhino, it is important to follow the golden rules for good curves and surfaces as in Icem and Alias.

About my background: I worked with Icem from 2000 to 2006 and, since 2014, have been using Alias in addition to Rhino in design projects for car interiors (steering wheels), bus seats and power tools. I have also been an Authorized Rhino Trainer in Germany since 2015.

I hope I could help something


Hi Volker,

Thank’s a lot for your message, I appreciate.

So, you still using Alias for the design step, no? I try with Rhino but I loose a lot of time to have quality. I see a lot of very good stuff in Rhino, and grasshopper is amazing, but for Class A design, I think I will stay with Alias or Icem. The problem is the price, too expensive for my use now, I need it 10 days by month, not more like I used to in Automotive design center.

Thank’s a lot man,

One of the most important options that Rhino 7’s “Match surface” should include is the ability to force an explicit control over the surface’s structure (user-set degree and number of spans). This is extremely useful in Alias and is basically the biggest reason why it offers so good Class-A surface quality.

Another important feature of “Match surface” in Rhino 7 must be the ability to match with different continuity to each side while performing a multi-side match. for example, one of the surface’s edges could match with “Curvature”, other two with “Tangent” and the last one with “Position” or “Free” (i.e. dependent of the two edges at either side, just like it’s done in VSR for Rhino 5).

Also! Ability for a partial match of a surface edge, which means that the user should be allowed to matcn a given percentage of a surface edge (i.e. not the whole length). For example, the surface edge to be matched while using the “Partial” option may be affected only between the 35% and 80% of the while length of the edge. Or from 0% to 55% of the length. That is very useful for transitional surfaces that start a crease line gradually.

Yet another useful option is the ability to match individual rows of surface control points (the name “Point” or “Row” could be used for that type of a match). For example, if a surface edge consists 6 control points, the used must be allowed to match control point rows 2 and 3, while keeping 1 control point rows 1, 4, 5 and 6 intact.

Also, an option called “Keep position”, “Keep tangent” and “Keep curvature” should be added, which will preserve the end points at either side of the matched surface edge in respect of their original position, tangency or curvature to their corresponding side edge. If a surface edge consists 6 control points, obviously the “Keep curvature” option will not change control point rows 1, 2, 5 and 6, and will only affect control point rows 3 and 4. The “Keep position” option applied to the same surface edge will preserve control point rows 1 and 6, while control point rows 2, 3, 4 and 5 will be affected by the type of continuity chosen for the match surface operation.

1 Like

Hi B design,

Thanks for your mail. It’s sounds good !! Maybe with a good complete “panel of point control” like in Alias or Icem it’s will be perfect. A panel where you can choose:

  • What you want to move: points or row, or reference surface or curve to link.
  • What you want to see in the selection.
  • How you want to move: plan direction, tangency, normal, sliding, blocking axes.
  • How the surface move: blocking tangency, curvature, smooth moving, falloff
  • Surface degree
  • Step size and sensitivity
  • Interactif curvature diagnostic between surfaces
  • Shading diagnostic
  • Snapping with restrictions.

I know Rhino do a lot of this things but not together and you loose a lot of time changing menu, validate one or too times, re selecting… I think a lot of command must be active at the same time with a selection, without loosing the command you use first.

I don’t know if it’s possible in Rhino, but I know you have a really active team to upgrade and find new functionalities, so thanks for all your work!!

Best for this special day, the labor day at home!:wink: