Airfoils: You Are Doing it Wrong

To be fair, I was at least doing it wrong-ish for many years, or at least, not as right as I could be. Allow me to explain – and yes, I’m dusting off this blog after many years of inactivity. I figured I would get things going again by going back to the very beginning, and pass along some of my updated thinking as it pertains to drawing airfoils in NURBS. In case you haven’t read it, here is my original post on drawing airfoils in NURBS. While I feel that was an improvement over how people approached drawing airfoils in the past, in time I’ve found better and more efficient ways of drawing them. By “better” I mean smoother, and more conducive to modeling the things that ATTACH themselves to wings – namely wing tips and wing/body fairings. The method described in that post is the best approach for doing airfoils – IF you are using T-Splines, which I was at the time. I don’t use T-Splines anymore for my work, and so what I found is that there are better ways of drawing airfoils, when you do NOT have the constraint placed upon you that the whole thing shall be one degree 3 curve.  The purpose of this post is not to be  Rhino3D step by step – in fact this is probably not a great post for beginners – rather this is aimed at folks who already have a decent grasp of NURBS modeling.  To a great extent the information in this post is platform agnostic- any NURBS modeling package where you can easily control point count and degree of your curves will work. So, without further ado……


These are the raw points for a NACA 23012 airfoil. I chose it simply because it’s still in use today on lots of aircraft – namely lots of Cessna business jets. Now, people think that airfoils are complicated, but really they are quite simple. They are the addition of two mathematical curves – a camber deflection, and a thickness distribution. Allow me to explain graphically.


Airfoil ordinate files have top and bottom sets of points. Connect those points with a straight line, and then run a smooth curve though the mid points of those lines, and you have the camber line for the airfoil. So, that’s your camber deflection. Somewhere there exists a formula for the thickness distribution for the airfoil – that is what determines how far from the camber line each set of points is.  So, you have a thickness distribution, deflected along a camber line. Simple. Right? NOW! Here’s where I’m going to make perhaps the most important point of this post. YOU ARE NOT LOOKING AT “THE AIRFOIL.” YOU ARE LOOKING AT A DUMBED DOWN COPY OF THE AIRFOIL. See, go back to the basics of what an airfoil is – the summation of two mathematical curves, right? How smooth are those curves? INFINITELY SMOOTH. How many points do they have? INFINITE POINTS. Does the data above appear to be either 1) Infinitely smooth or 2) Infinitely defined? Heck no! At best, it’s a copy of the original article. Even worse – the entire system that we use to store airfoils predates the existence of NURBS modeling packages, or even really NURBS math. We are trying to store smooth mathematical functions as degree 1 polylines. We are – in the most literal sense – sending our data back to the 1920’s for archival. Seriously – this method of storing airfoils as ordinate points in text files is pretty much as old as aviation itself, and has not been updated. Why are we surprised when this does not work very well for surface modeling. Why do we keep doing it this way? How is this still a thing? Seriously. This is nuts. Need proof? Here’s how most people make airfoils – they simply run an InterpCrv through all those points and call it done. I outlined why this is a bad idea in my last post on the subject, but here’s what you get when you do that with the NACA 23012:


That’s actually not as horrendous as most conversions – it’s not awful, but that’s about the best thing I can say about it. Especially when you turn up the scaling on the back section of the airfoil, you can see it has some weird artifacts:


Again, the best thing I can say is, “it’s not horrible.” And, when you go to actually make things that attach to a wing lofted with this curve, you’re going to propagate those curvature wobbles into the resultant surfaces. Better to make a new airfoil from scratch. Trust me, any time you invest in creating nice smooth airfoils will pay off huge on the back end.

I want you to think of what the Platonic ideal airfoil would look like, especially in terms of it being smooth, and how the curvature graphs would look. This whole post revolves around two very simple tools – point editing/manipulating degree and point count, and the use of curvature graphs to analyze our work. So, imagine in your head what this ideal airfoil would look like, especially the curvature combs. They would peak at the leading edge, and then very smoothly fade out as you travel aft, right? The NACA 23012 is a little odd in that with that drooped nose, it ALMOST creates a flat spot on the bottom, about 15% in from the nose. You can see the curvature dips, rises, and then fades. So, in this case, we would want that feature to be there too of course, but we want our airfoil to be smoother, and ideally with as few points as possible. That ideal airfoil, in your head, should look like this, right?


Right? Nice and smooth, it peaks at the leading edge and then gradually fades. When I turn up the scaling on the back end, we get this:


See, we sill get the required curvature dip along the bottom surface, but everything is SMOOTH. Notice how nice and constant the curvature at the back of the airfoil is. This is what an airfoil is SUPPOSED to look like, right? We are now looking at something that is far closer to what the “real” airfoil is, are we not? This is not a copy of a copy. How close is it to the original data? I scaled this up to 60″ in chord length (in the ballpark for a GA plane) and was able to fit my curves to the original data to within 0.005″. What do my curves look like? There’s four of them – two top and two bottom. Here’s the top and bottom “main” curves, with the points turned on:




Each is a degree 5 curve with 9 points – so, NOT single span, but not so many that you cannot point edit the curve, or any surface created from the curve. Here are the nose curves, which have the break between them at the leading edge point:


How did I create these curves? I started with rebuilding the back sections, and point edited them to fit. There’s no magic here – notice there are more points where there is more curvature, and fewer points where there is less. So, place your points accordingly. Then, point edit to get them to fit your data. Add points if you need more control. Check your new curve against your original points, and always always always check with curvature combs. Seriously, just put a curvature comb up on your curve as you work on it, and leave it up till you’re done. Then, when you’re happy with the main top and bottom curves, create your nose pieces just by using whatever is clever – in this case I used BlendCrv, point editing, and curve matching tools. Again, keep asking yourself, “Is this what the curvature graph for an airfoil looks like?” Keep asking yourself that question until the answer is “yes.”

I’m always blown away in my work how many terribly drawn airfoils I see, because really when you get down to it, making proper airfoils doesn’t take fancy or expensive software. Really, it’s just rebuilding curves, point editing them, and constantly checking your curvature graphs. But, you can’t really sell that as a software package, so we get all sorts of “smoothing” plugins and automatic airfoil conversion plugins. Trust me, there is no purpose to those tools, they will only serve to make your life harder. Rebuild. Point Edit. Check your curvature. Done.


Published with permission from School Street Design Company Blog. Source.

Free yourself from the insanity of Zebra analysis with Autodesk Shape

So you’re working on your surface model, and you are trying to get everything to match up nicely, usually to either G1 (tangent) continuity, or G2 (curvature) continuity.  You think things look pretty good, you join them all together, you run ShowEdges to see if your model has any naked edges……and then you use Zebra to check that your edges are continuous in the way you desire.  Which, frankly, I think is completely nuts.  Allow me to explain.  Here’s a wingtip I made recently:Wingtip1

It looks very smooth and nice, but……do I know it’s smooth and nice?  If I use Rhino’s Zebra analysis tool, I get something like this:


Well yeah, that looks good….I think?  Right?  Wait!  What about this little burble here:


What’s that?  I mean, if you read through the Rhino Level II training material, that would indicate that your model might even have a naked edge there, despite the fact that we know there is not a naked edge (because you always run ShowEdges after you join your models together right?).  It’s at this point that one usually goes onto the Rhino forum, start a thread about continuity and someone points out that hey those Zebra results are totally dependent on your mesh settings.  Oh right!  To illustrate that, let’s see what Zebra looks like with the mesh settings all the way to the most coarse:


Clearly, my model is a piece of garbage!  Except, it’s not.  In fact it’s the best wingtip I’ve ever made.  So, to review, checking the continuity of your surfaces in Rhino involves jacking up the mesh settings to such a degree that you’re totally (pretty?) sure that if you see something it’s the surface and not the mesh, and then zooming way in on all your seams, and visually inspecting them for breaks in your Zebra analysis.  This sounds crazy, no?  I mean, if only we lived in a day and age where we could program some sort of fancy adding machine to do mindless trivial tasks for us and give us nice numerical results to work against, instead of squinting and zooming and changing our mesh settings, and then squinting again…..more zooming……etc.  Good news!  We do live in such a day and age.  I’ve been using Autodesk Shape for a few years now, and I have to say it’s fantastic.  There are a whole host of tools used for both analysis and surface generation/editing, but the one I use for analysis over and over and over is called Global Matching Analysis, and let me tell you it’s wonderful.  Instead of making you do the whole Zebra dance I outlined above, it actually measures and computes the continuity between joined edges, and gives you very sensible table of results.  Allow me to illustrate.  If you start the tool, select your geometry and then click Apply in the box, you’ll get something like this:


There’s a lot going on here, but I assure you, it’s very usable.  See near the top where it says “No. of Points?”  That’s how many samples it’s taking along each edge.  50 is plenty for most applications.  Now let’s star by seeing if the model is tangent continuous where I expect it to be so.  First, you have to ask yourself “what do I consider to be good enough for tangent continuous?”  We’re talking degrees here – how many degrees from 0.0 can adjacent surfaces be and still be considered tangent?  I like 0.5 personally.  So I set the low end threshold at that using the Range Min. setting.  The top end setting (9.0 in this case) can be thought of as the “over this setting, and it’s intentionally not tangent continuous” setting.  Like if you had an intentional sharp crease, you would want a way of excluding that edge from the report, since you have not expectation of that being G1.  Now, click the “Defectives only” box under Results.  Here’s what you get:


Only two edges here are not tangent, but let’s take a look:

Wingtip7Right!  These edges are part of a surface that transitions between the blunt trailing edge and the smooth shape of the tip.  There is no expectation of these being tangent, and since they are transitioning from G0 (positional) to G1 (tangent) of course they are going to set off an alarm.  In short, everything that I expect to be tangent IS.  All is well!  Now, checking for G2 (curvature) continuity, we can set the upper and lower limit just like with Tangency Range Min/Max.  I typically leave it at the default of 0.5/1.   In this case, anything less than 0.5…..curvies?  I actually don’t know what the units are here, in fact it might be unit-less, but really what it comes down to is the rate of change between adjacent surfaces.  So if the delta of the rate of change is less than 0.5, I’m calling it good.  For this model I get this:


The majority of the edges are indeed G2.  How about that one at the back?  Well, to generate that surface I used the Shape Surface Blend tool, and I was not able to get the overall shape I wanted with it set to Curvature on the edges.  We could go pretty deep down a rabbit hole here, but suffice to say I did not expect those particular edges to be G2, and I’m still very happy with my wingtip.  I’ll be doing a whole set of posts over the next few weeks about Shape and using this wingtip as an example of cool stuff you can do with it.  Hope you found this useful, and hopefully you can free yourself from the insanity of Zebra analysis!

And, just in case you’re wondering – I’ve never been given a free copy of Shape, I’m simply a user of it, a very happy user.

Published with permission from School Street Design Company Blog. Source.

Why we build our surface models from scratch

Well, it’s time to dust off this blog and get it going again!  It’s been way too long.  Let’s just say life happens sometimes, but I’m glad to be back at this again.  So, to kick off the first post, I’m going to talk about something that we spend a lot of time talking to customers about when we build surfaces from laser scanned data.  We’re often asked, “Why do you use Rhino3D to do reverse engineering work, instead of one of the purpose made reverse engineering software platforms?” The short answer comes down to one word – quality. While these purpose made software platforms do quite a good job on mechanical types of assemblies, where they fall short is in the area of freeform surface modeling. Since the vast majority of the work we do falls under the category of freeform surface modeling (that is complex shapes that cannot easily be described with straight lines or arcs), to get a high quality model that we are proud to deliver to our customers, we build them “from scratch” using Rhino3D. Take for example this laser scanned aircraft nose:


This is acceptable laser scanned data, certainly good enough for the purposes of building a surface model off of. Another vendor took this data, and using purpose made reverse engineering software created this:


What our customer needed was a watertight (gap free) exterior surface model of the macro shape, minus all the bits like antennas and other small details, so that CFD analysis could be run on it. What you see above is a collection of surfaces that are patched together to form this nose, except that they are not actually watertight. The alignment of the “isocurves” – those lines you see along the surface, does not make any sense in the context of the actual object. Areas like the transition from the nose to the windshield exhibit some really strange surface defects that give it a lumpy look, defects which are not in the laser scanned data. In short, this surface model was useless to the customer, because it could not be imported into his CFD software, did not accurately capture the essence of the shape, and was such a collection of small patch surfaces that making it watertight would have been extremely time consuming. Here is the surface model we created “from scratch” from the very same laser scanned data:


The vast majority of the nose is one single surface, and the entire thing is watertight, so that it can be imported into the customer’s CFD package without any further work.  Using the laser scanned data and photos of the actual aircraft, we were able to give the windshield and windows the proper shape.  There are no strange lumpy defects, and the isocurves are aligned in a way that actually make sense.  In the overall scheme of things, an aircraft nose is really not a complicated shape.  It’s quite telling that a reverse engineering software package does such a poor job of making what is frankly not the most taxing of tasks. From what we’ve seen, this is the rule and not the exception when it comes to shapes like these with reverse engineering software.  Did it take longer to do this from scratch?  Probably, we can’t know for sure, since we didn’t make the first surface model.  But, we’re not exactly comparing apples to apples here, since the original surface model was not actually usable by the customer, so it’s like saying “we could do this faster if we deliver something that’s totally useless and causes you nothing but frustration.”  We take pride in our work and we like to make our customer’s lives easier, and so we take the time to do it right, and build our models from scratch.

Published with permission from School Street Design Company Blog. Source.

It’s Raining Software!

Well after a long blog hiatus, I’m back and happy to report there are some exciting things happening in the land of CAD.  In the past few weeks there has been some very exciting news on the software front.

First, out of left field, Autodesk suddenly announced it was going to resume development of T-Splines for Rhino!  The first news of this came from the and informed the community of the decision.  That pretty much made my jaw drop to the floor.  This means that there will be future releases of T-Splines for Rhino, with new tools and functionality.  Really, I truly did not see that coming.  Also, in the past few days they put out a release candidate for Rhino V5.  You can download that here.  There are some really nice fixes and upgrades in that release – most notably for symmetry and exact insertion of geometry.

Second, it should be noted that Rhino3D V5 is finally here.  I had been using the beta version for more than a year and was questioning anyone who had not taken advantage of the beta as it was more stable, 64-bit compatible, filled with impressive new features, and free to anyone with a V4 license.  Now that V5 is officially here, you truly have no excuse for not upgrading.  If you go to the Rhino3D website before February 26th 2013, you can upgrade fromV4 to V5 for $345.  Also noteworthy is that my friend Kyle Houchens of The Outside will be doing a set of webinars on V5.  I’m going to attend the first four of them myself, and would recommend them to anyone interested in quickly getting up to speed on V5.   You can register for the webinars here.

Third, there’s a new version of VSR Shape that was just released.  I’ve played around with VSR Shape in the past, and I have to say this new version looks very compelling.  VSR hasn’t gotten a whole lot of attention in the past, but I really think with the new V2, that’s about to change.  Check out the demo video here.  The new Multiblend tool looks downright sick – a very very slick solution to a common problem in NURBS surface modeling.  Honestly, I can’t remember the last time I was so excited for a new tool.  The symmetry functionality looks mighty impressive as well.  I’ve just returned from a laser scanning job and will be using the demo version of V2 to model some of the trickier aspects, I’ll let you know how it works.  If you’re a Rhino user you should absolutely check it out.

On the laser scanning front, Creaform recently released a new version of VXelements software, which is the interface that powers their 3D scanners.  The new version includes some fantastic upgrades which I can say really improve the capabilities and performance of their units.  In the past, getting crisp edges was a bit tricky – you would have to set your resolution fairly high to get one.  Now, the software detects part edges and automatically bumps up the resolution of the mesh right along the edge.  Big improvements have also been made in scanned “ribbed” surfaces – very thin extrusions, and also in the scanning of very high resolution objects.  Against better judgement I installed the new software before embarking on a week long scanning job in Montana, and I’ve had nothing but flawless performance from it since.

Published with permission from Better Living Through CNC.

48″ Convair 240 – Wing Lofting


Pecking away at the Convair 240 radio control model.  This is being done for a contest on the Ezone forums, and so I really need to get moving on this thing to get it in the air by June 30th contest end date.  The wings are getting there – mostly lofted, just have to add the rear spars and ailerons.  Having designed more than my fair share of RC planes in 2D using AutoCAD, boy, is this a better way to work!  The wings are going to be my favorite style – 1/32″ balsa d-tube leading edges with shear webs.  Super strong, super light, and very “stick and tissue.”  I’m going to try to get the tailfeathers and fuselage formers knocked out this weekend.  Haven’t quite decided if I want to do the nacelles out of balsa or vac formed styrene, but I’ll have to make a call on that pretty soon.

Published with permission from Better Living Through CNC.