This is a special guest post from Sky Greenawalt of School Street Design who writes about CAD/CAM tools and the process he goes through in the quest to create high-quality composite parts at BetterLivingThroughCNC.com. Catch his webinar on T-Splines V3.3 retopo tools and applying T-Spline surfaces to mesh data, November 29th. Register here.
Well folks, here it is, the thing I’ve been dying to blog about. T-Splines version 3.3 is nearly here, and for some reason the stars have aligned with my purchase of an EXAscan laser scanner and this newest T-Splines version. I must be lucky, but whatever it is, I have literally been doing happy dances around the shop. Here’s what all the excitement is about.
T-Splines re-topo tools
T-Splines version 3.3 is going to have these very cool re-topologizing tools implemented into it, which is aimed at making it much easier to take a mesh file – hey! my laser scanner puts those out! – and then fitting a T-Spline surface to that mesh. The gist is this – with this new tool, you can dynamically interact with your T-Spline surface and it will continually re-snap itself to your target mesh. So….you can take a Cessna nose bowl scan like this:
And with minimal effort, get something like this:
Hiding the scanned data, here’s what the T-Spline looks like:
Should I run Zebra on this thing? Sure, why not?
Glorious! And this is only after mucking about for an hour or so, part of which was spent just figuring out how the topo-snap works. So how does it work? Well it’s dirt simple really, but the power is truly amazing. When you edit a T-Spline vert, it simply snaps it to the nearest vert of the mesh. For this surface, I started with one face on the inlet, and then just started extruding from there. Really, this was done with about 3 commands.
From Scanned Data to Surface
There are a few things about this that I think are just beyond cool. First off, it’s such a direct route from scanned data to surface. With the FARO mechanical arm, my workflow looked like this:
- Capture points on the object you want to scan. For best results, plan out those points ahead of time. This sometimes took hours.
- Use those points to create curves. Depending on how clean those curves are, rebuild them.
- Use those curves to create surfaces.
- Offset those surfaces. The ball probe of a mechanical arm collects the center of the ball as the data point, not the actual surface, so the entire surface must be offset in the normal direction. Often times, this resulted in a very heavy surface… so hey Rebuild to get something nice.
- Then make a surface (T-Spline or NURBS) that mates up to those reference surfaces.
Suffice to say, this was a pain. Not only that, what with all the rebuilding and intermediate steps, I was always wondering just how accurate my resultant was. Here’s my new workflow:
- Scan the surface and spit out a mesh.
- Make a T-Spline on the mesh.
Yup, it’s that simple and elegant.
Reverse Engineering Surface Data
There’s a lot of different ways of doing Reverse Engineering (RE) work on surfaces like this; some are inexpensive, others cost tens of thousands of dollars, just for the software. I can’t say that I’ve seen every single solution on the market, but I looked at a bunch of available packages for taking mesh and making a NURBS surface, and honestly, regardless of cost I think this is the best method. And, since you’re using T-Splines, your surface is BY DEFINITION smooth and watertight. So, with one click, you go from your T-Spline to a watertight NURBS.
Now, there is one valid drawback to this, if your goal is to make an EXACTLY fitted surface. Since the control points get snapped to the mesh surface, the resultant T-Spline surface will be slightly off from the scanned mesh. For the majority of what I do, this difference is small enough to be negligible. For example, I took a smattering of measurements – most of the deviations were under 0.03″, which is more than enough for what I do. For the areas of low curvature, it was more like 0.01″, which is fabulous, considering my mechanical arm had an accuracy of only 0.007″, and that’s the spec accuracy, not taking into account all the intermediate steps I had to do which undoubtedly make the actual figure much larger.
However, there are a few tricks that can be used to really dial in the accuracy.
First, you can simply add more points in the areas where you need it to fit better. At a certain density, depending on your curvature, the control points and the surface points start to converge. You can subdivide your T-Spline surface with the retopo snap option on, and it will quadruple the density of your T-Spline, and keep the verts snapped to the mesh.
The second option, and I haven’t had much success with this thus far to be honest, is to use the tsInterpolate command. tsInterpolate is one of those little used commands, in fact I had never used it before yesterday. The idea is that you can tell it to take your T-Spline surface and tweak it so that the surface now passes through your control points. Conceptually, this is EXACTLY what I want, but I’ve been having trouble getting the results to be smooth and orderly. A good part of that is probably user error, so I’ll keep playing around with it and see what I can figure out.
So, is this a slick RE workflow or what? Enough blogging, I’m going to go play with T-Splines…