Class A Analysis

I’m sure this question has been asked many times, but I’d like to know if an alternative to vsr exists for Rhino 7? It had really greats tools to analyse and create complex G2 Surfaces
I’ve tried Xnurbs but not a big fan of it



yes and no. Some (more or less hidden) commands have been added to Rhino 7.
E.g. in Rhino 7 a VSR ‘Surface Split’ can be achieved by using Rhino Split with the new ‘RefitTrim’ command
There is also a deviation graph now
(EdgeContinuity | Rhino 3-D modeling)

And some other changes… So it’s going in the right direction. I guess Rh8 will offer some more features.

With Refit Trim it is possible to generate almost all types of corner blends. With the ‘EdgeContinuity’ analysis you can manually improve a corner blend on demand. If you have some experience in class A, this will do the job for many cases (fast enough and better) without the need for XNurbs. Although XNurbs is easier to use and probably quicker in its workflow.

There is also a draft angle analysis.


Hi Tom!

Thanks for your answer, these are nice commands I didn’t know them!
Indeed it seems like it goes in the right direction, let’s cross fingers for RH8!


hi tom
I smelled the smell of class A from afar :joy:
I am very interested in class A surfacing. to the point of being obsessed. I see that you have experience in this field

just to comment
is a wonderful command.
I quickly liked it

I find that really essential.
it facilitates resurfacing without the need to recreate new uncut surfaces.
I admit that this command has become a real weapon in my toolbox.

1 Like

:slight_smile: Yes, I have work on a bunch of real cars and assisted in class A modelling when required. I was more specialized on CAD automation and programming. The thing is, you cannot do proper CAD automation (and development) if you are not understanding CAD modelling. ( At least that is my opinion, many former colleagues had a different opinion on that.)

So, I had the possibility to learn many advanced modelling techniques from experts. I worked with ICEM Surf and many techniques required exactly what Refit Trim does. This is one of the most basic functionalities, that I have no clue how people doing class A could work without that feature (at least efficiently)?!

One thing which is badly missing are more alternatives in matching surfaces. Looking at Icem or Alias reveals plenty of more options on matching a surface to another. Again Rhino7 improved a bit on this, but if I think about the amount of options on matching a surface in ICEM, I still see a lot of room for improvement. Again, mainly we talk about corner fillets, which is still a pain in native Rhino. Not to speak about automating these things.


I totally agree with you on everything about the matchesrf command.
it is true that it lacks other important options for the good alignment of surfaces …
which obligatorily requires to manually adjust the control points.
i got used to working with rhino as it is.
although I have found some tips to get around and fill this lack of certain options. it’s far from perfect … but it’s the only way … (manual adjustment)

a point that I find interesting.
in what you said. it is to understand the fundamental tricks of the CAD to be able to improve the programming and the automation of the software CAD.

I am far from being someone who understands programming …
but I see the importance of working vis a vis experienced modelers and software developers to add and develop the necessary tools for creating and editing geometries (clean and without excess control points)
this is the only fundamental drawback of rhino (generate a lot of Multiknot and more contol point than necessary)
the approximation of the trimmed edge in rhino are represented only by curves of degree 3 with full multiknots.
which automatically leads to an excess of points in case of creation of surfaces from these edges.
this is exactly the thing that makes fillet and blend
so heavy Rhino users who do not dig to understand the fundamentals of nurbs will be broken and blocked because of these issues. and they will automatically avoid using rhino for class A modeling
what I find a free mess for the famous rhino …
for me i use a techniques to simplify the trimmed edge by singl spans curves. I will show this technique soon in a video if i have time
if every experienced user in this forum shows this knowledge …
it will lead sooner or later to improve rhino .
I have seen that there are a lot of users here who are very active and give a lot of comments and suggestions for improving the surfacing tools in rhino.
that encourage me to enter this thread

long live rhino


I think this is a philosophical debate. There are not just advantages in modelling under “class A” constraints. And only a small amount of CAD users are modelling car skins. While having lightweight surfaces is beneficial in many aspects, it also increases the “precision” a user needs to work at. This is time-consuming. Having better tools or not.

But essentially modelling in class A is like coding close to the hardware. If you are experienced in these domains, you can solve any related (higher-level) problem much more efficient. If you generate a complex pattern for a grille, and you know how to model in class A, you can create much better results in much shorter time, just because you know the conditions of a good model. Any person not experienced in class A, will never reach the same visual quality (or just under high effort). But it’s also likely that an inexperienced person does not even have a trained eye for these details. So they might feel something is not right, but they cannot tell why this is the case.

1 Like

yes I am all agreed.
the more experience and understanding a user has of nurbs the more independent they will be.
and it won’t need much of the automated controls in any CAD software.
he could achieve the desired result without worry but the main downside is the waste of time.
so for those who want to learn to master clean surfacing, with fewer tools and automated controls, it will undoubtedly be a fierce battle of months or even years, just to understand why surfaces behave strangely in some cases,
in any case rhino is versatile, i don’t expect it to be icem, it already has a lot of flexibility to work.
that’s what I like about rhino but that does not prevent improving some commands and tools that I find very basic and old compared to the whole software (these are tools for creating and editing surfaces and also for analyzing)
I would love to see some tutorials from (classes A) for rhino one day.
if nobody would do that,
I think I’ll do them someday, under everyone’s advice here.


You might want to have a look at this nice YT playlist :

@sgreenawalt: very, very good stuff BTW, thank you! :slight_smile:


So glad you’re enjoying it!!

Wow, I nominate this for the most constructive, non dogmatic discussion of Class A surfacing I think I’ve ever seen on this forum!

I am with you 100% there. I never expect Rhino to be ICEM/Alias/Catia, but there’s a lot of the really bedrock core tools that have grown very long in the tooth - MatchSrf being one of the very top of my list. The RefitTrim in V7 is indeed an improvement, I just wish it returned a numerical deviation from the original surface, maybe a good future improvement. This kind of ties into one of my biggest wishes with MatchSrf and lots of other Rhino commands - if I’m matching two surfaces say to tangency, I’d like to know what the final result is after matching inside the command - is it 1 degree? 0.1 degree? 5 degrees?


this is the most serious series in the sense of clean modeling (single span).
I have had the opportunity to watch these tutorials a bit in the past.
I will watch them fully soon.
there is also an old webenair from @BrianJ which I liked, and which shows the same workflow.

thank you @sgreenawalt for your wonderful series of tutorials.
I consider it a first stone which shows the possibility of working with rhino by following the rules of proper modeling. you should have called this series (class A ):yum:.
it gives me courage to do free tutorials on YouTube as well.
this does not ignore the importance of the tutorials offered by mcneel, like those of @theoutside they are good for learning modeling in rhino, and for understanding how to use each command and tool correctly in rhino.
I learned a lot of things from these tutorials. but it is not for the single span modeling method …
for me I only use a handful of commands in rhino, all simply because the rest of the commands don’t allow me to get clean geometries.
I think the way to get the improvements that a lot of people want to have in rhino, is to share knowledge by doing tutorials, if each person gives a little of this knowledge through videos, this will necessarily show the situations where the desired commands missing are essential and crucial.
provided that these tutorials have their own section in the forum.
and likewise to show mcneel the versatility of rhino. if they suspect the capacity of their software, just kidding there :stuck_out_tongue_winking_eye: .
I want macneel to provide a section in the forum called tutorials, for enthusiasts who want to enrich the sources of learning.

I am with you for this option, if rhino has this option. it would be a treat and a great time saving, moving between the matchesrf command and the analysis tool is a very repetitive and boring task during modeling, it looks like the course of a tennis ball throughout a match


Is there any tutorial on how should look proper use of RefitTrim in Rhino Class-A workflow? I’m very curious about the proper usage of that command. Why it`s superior over pure split/trim?

edit: Novedge Webinar #27: Advanced Rhino 3D on Vimeo - @fares.boulamaali - is this that webinar which you referred to above?
I would like also to thank @sgreenawalt for his series. I’ve watched it two times and I`m sure there will be a third time soon.

1 Like

If you extrude from- or match to a trimmed surface edge, the resulting new surface will have much more complex topology with plenty of control points, which makes it both, difficult to edit and increases the risk for an unwanted unevenness of the shape due to the multiple spans. “RefitTrim” converts the entire surface so that the trimmed edge turns into an untrimmed one with far less control points that are match-friendly and extrude-friendly.

1 Like

@Rhino_Bulgaria Thanks a lot for the explanation but what is the difference between that and ShrinkTrimmedSrf (Rhinoceros Help)? I can’t understand that difference? I`ve thought that is the same process behind?

I mean: Why RefitTrim is better for Class-A surfacing in Rhino than ShrinkTrimmedSrf?

edit: OK. I can see the difference. ShrinkTrimmedSrf doesn’t care about finishing the control point network with the edge. RefitTrim cares about that.


this is best set of tutorials I have seen in quite some time…

1 Like

That’s right, extruding from the ex-trimmed edge after converting the surface with “RefitTrim” will let you build a new surface that shares exactly the same small amount of control points like the input surface. On trimmed edges this will cause adding extra control points on the output new surface, because they need more information to be defined accurately. You can also check this by extracting a trimmed surface edge as a curve and then turn its control points.

1 Like

So glad you’re enjoying them! I will say - I was talking with @theoutside the other day and reiterating my reasons for NOT calling the series Class A Surfacing. For a variety of reasons, that term sparks quite a bit of debate/controversy on the forum here and elsewhere - about what it is, what it’s not, who needs it, who doesn’t and on and on - and I thought that including that term would be distracting from the overall purpose of the series. The real purpose is to try to help EVERYONE, not just those who aspire to do Class A work. I truly think that every modeler (myself included) can always benefit from having a better understanding of patch layout, surface definition (point count, point distribution, degree) and how to use the matching command. When I wrote up the outline of the series I called it Fundamentals of NURBS Modeling, a title which I think fits but is a bit too wordy. So, I will say it is happily titled Primary Surfacing. :slight_smile:



Trimmed edges are defined by a trim curve which usually uses more control points than the associated surface.

ShrinkTrimmedSrf shrinks a trimmed surface to the closest (or almost closest) isocurve(s) to the trimmed edge(s). If the trimmed edge was an isocurve then the result is an untrimmed surface.

If the trimmed edge was not an isocurve then the result of ShinkTrimmedSrf is a trimmed surface. In that situation the edge of shrunken trimmed surface.will have the same complexity as it had before ShrinkTrimmedSrf was used.

Users of RefitTrim need to be aware that if the trimmed edge is not an isocurve then the result will generally not exactly match the input trimmed surface along the original trimmed edge nor in the interior of the surface. The deviation can be lessened using the Increase knots option in ShrinkTrimmedSrf but that will increase the number of spans.


Exactly the reason to create that other topic, because being able to know the deviation before completing a command that modifies or builds a surface is essential.

As for the complexity of trimmed edges, the VSR plug-in for Rhino 5 had a tool to simplify and re-trim them based on user-set tolerance. I forgot the command’s name (“Edge approximation” maybe?), but those with VSR should be familiar with it. It’s a fantastic way to reduce the control points of the nearby surfaces that need to be matched to a trimmed edge, including “Blend surface”.


hi @mdesign .
yes it is exactly this webenair that I watched…

for the refittrim command it is different from the (shrinktrimmed surfaces) command.
(shrinktrimmed) is useful in the case of a limited surface on these own isocurves.
in this case, the surface can turn into an unrestricted surface, so that the matchesrf command can be executed on these edges without problem.
but if the surface was cut by a curve for example, (assuming the cut curve does not exactly pass over a U or V isocurve of the surface)
in this situation, shrinktrimmed is not able to shrink the control points to the edge, which results in a handicap if you want to run the match command on the edge of this surface …

this is where the refittrim command comes in… this command is great for its power. it can replace the cut edge with an uncut edge (its operation is to make an approximation of the edge cut by a singl span or multis spans curve) (it depends on the topology of the surface which will undergo the operation), then the command will create a new identical uncut surface.
which would be very useful to be able to use the matchesrf command on the edge.
(Namely, the more uncut surfaces you have in a model, the easier it is to modify and edit) …

it should be noted that if the cut edge and complex refittrim needs to add knots on the approximation curve to be able to represent the deviations as closely as possible which will lead to a change in the topology of the base surface.
you have to be able to know when and how the order iserving you.

sorry for my bad English … bobi and david have already explained how this command works I prefer to make small video demonstrations in the future than to write in English

1 Like