Home > Surfacing, cars, favorites > Surface modeling from scanned data

Surface modeling from scanned data

April 22nd, 2009 Leave a comment Go to comments

racecarseat1

racecarseat2

 

This is a project Jeff Mirisola sent to me from a company called Status Racing. They have an existing car seat, but didn’t have CAD data for the mold, so they wanted a parametric model. The process was interesting, so I thought I’d pass it along.

First of all, it took a big box to get this thing across the country from Washington to Virginia. It’s a racing seat shell, made of fiberglass. The back side of the seat is nicely finished with the weave showing through clear epoxy. The inside was a little rough. I planned to scan the inside with my Next Engine scanner, and the scanner likes things a certain way, so the first thing I did was to paint the inside of the seat with gray primer. I just needed a flat paint with a fine texture that was light-ish in color. 

racecarseat3

This part is nearly 36 inches tall, and the Next Engine scanner has a relatively small field of view, so the scan had to be done in smaller pieces. In order to line up small scans, I made some markings on the part with a Sharpie pen. The scanner takes a photo, and maps the photo onto the 3D points. Then I had to line up the scans, matching 3 points from 2 different scans. The result was surprisingly accurate for what it did. You can see the patchwork of multiple scans that makes up the data. 

The scanner only gets decent results when it is at a certain angle from the face being scanned, so scanning the lip around the outside was a real pain, and had to be done separately from the rest of the seat. 

When working with data sets this physically large, I discovered the hard way that you need to relax the space between scan points. My machine with 4 GB of RAM was choking and paging. My 32 bit machine kept crashing trying to work with the data. 64 bit worked much better, but I still needed about double the RAM for this project. Actually, I took it back tothe Scan Studio and reduced the mesh somewhat to get it in to SolidWorks. Scanning only half of the seat (assuming symmetry) also helped me keep the file size down a little. 

I was able to bring this scanned data into SolidWorks. One of the big problems with scanned data is that it is very difficult to get it aligned to the origin. In this case the data came in completely cock-eyed, and I decided to just model it where it sits, and then clean up the model later by copying sketches.

The next thing you’re faced with is how to break all of this data into features. I decided that this was basically a two feature part. The first feature was just the entire seat. The second feature was the rim that goes around it. Of course it would have to be mirrored, and the cut outs and all, but there are only two functional features here. 

In this next picture you can see the mesh super imposed on the 3D model, with splines showing. The main feature of the seat was a Boundary surface with 15 sketches. 2 in Dir 1 and 13 in Dir 2. I didn’t get this right on one shot, I had to go back and add and remove sections to get the surface as close as possible. Matching the splines to the scan data was the big trick in this job.

I had thought of doing the back in one feature and the sides in another, but they would have to blend together anyway, so I just made it all one. I think it gave a better shape anyway.

racecarseat4The 3D spline that forms the outer edge was difficult to get right. It was basically done backwards, using the end of the section splines for reference. I adjusted some handles on the spline to get it to match the scan data. 

The one section of this part that took the most work was the top side of the wide shoulder section. Notice that one of the section splines intersects the 3D edge spline at a very shallow angle there. This makes for a surface that is tough to control. Boundary surface works much better if the directions are perpendicular to one another. 

The most difficult part of the whole project was the lip that goes around the part. This is a single Boundary surface with 13 profiles in one direction and just using the edge of the part in the other direction. The Boundary surface is quite remarkable, and on this part it really showed its stuff.

racecarseat5Here is a detail of how the lip was done. This is all splines. But splines do have some control. It was very difficult to thicken this part once the surface was done. The reason it wouldn’t thicken was because the splines had sharp kinks in them. To control that. I applied curvature controls, and a min radius marker. With the min radius marker, I would adjust the spline to get an acceptable number on the marker.

To get this sketch spline tangent to the surface, I used the Intersection Curveand just made the section spline C2 to the intersection curve.

In the end, this worked like a champ, but it took a long time to get there. The final rim feature was one of the craziest features I’ve ever created, but you can see in the image with the edges showing that the rim to the seat connection was tangent (shown in phantom line).

Overall, I was feeling better about the software after this project. Sorry, I can’t provide downloads for this part, it is proprietary, but I did get permission to show the part. 

racecarseat6

  1. April 23rd, 2009 at 07:47 | #1

    Awesome post! Love these “behind the scenes” posts, and especially on scanning/reverse engineering. Interesting to see how other people accomplish projects like this.

    So, how long did this whole process take, from start to finish?

  2. JeffM
    April 23rd, 2009 at 07:53 | #2

    Great post, Matt. Where surfacing is not one of my stronger skills (ok, it’s not a skill at all), you made the most sense to do this project. However, now that I see how you did it, along with what your thought process was, we won’t be needing your services anymore…kidding.

    Should anyone be looking for quality work, with a quick turn around, Matt is your guy. Excellent work, excellent communication and an excellent deliverable.

  3. Dale Dunn
    April 23rd, 2009 at 09:40 | #3

    Fascinating project. It’s always fun tackling something a little different.

    I sometimes work to imported parts with absolutely no relation to the coordinate system orientation. Quite often I’ll make some construction geometry on them, then use mates to align them in an assembly. From there, I design the rest of the project in-context. Would that have worked with the scanned data? I’m not sure that would be visible in an assembly. But if it worked, you wouldn’t need to move everything to a sane alignment later.

  4. Rick McWilliams
    April 23rd, 2009 at 11:10 | #4

    I am finding that boundary surface is the most stable Solidworks lofting function. I would verify the seat model by printing templates at critical locations and see how they fit. It will be a trick to make a seat model where you can make global parmetric changes like seat back angle, shoulder height, seat width, rim radius, cushion thickness and have the model do the right thing.

  5. April 23rd, 2009 at 13:30 | #5

    Interesting post, Matt! Thanks for sharing some of your techniques and thought processes!

  6. msederberg
    April 24th, 2009 at 10:05 | #6

    Thanks for the walk-through, Matt. Very interesting.

    • April 24th, 2009 at 18:00 | #7

      Matt S,
      You’re welcome. Thank you for the propeller submission. I like having industry people participate.

      I gotta learn that stuff…

  7. April 24th, 2009 at 16:34 | #8

    Where the top and bottom sections for the wide shoulder intersect the outside spline at a shallow angle, I would have tried rotating the planes of the sections to get a better intersection at the outside and a worse intersection at the center, where it isn’t as sensitive. Did you try that?

    Jerry Steiger

    • April 24th, 2009 at 17:44 | #9

      Jerry, no, I didn’t try that. If I had gone that route, I probably would have drawn a curve that is perp to center at center, and nearly perp to outer edge, so it would be slightly j shaped, extrude as a reference surface, and then draw a spline on that. Yes, your suggestion would have also been better than what I did. Hind sight…

  8. April 27th, 2009 at 20:14 | #10

    Hi Matt,

    THANK YOU for posting some details on this project! I for one really appreciate it since I have tackled a few projects similar to this in the past. (Although not quite as large (in size) as this one.) If I can ever get the time I’m wanting to try a project like this using RapidWorks. With my schedule these days, I’m not sure when that time will come!

    Thanks again for sharing.

    Ricky Jordan
    http://www.rickyjordan.com

  9. April 29th, 2009 at 13:44 | #11

    @Ricky Jordan
    Ricky,

    yes I would like to try this in RapidWorks too. There are just too many projects to do and stuff I wanna try!

    Your message wound up in the spam folder. Not sure why. I’ll keep an eye out for that in the future.

  10. April 29th, 2009 at 18:04 | #12

    Matt,

    As usual, you came up with a better idea than mine!

  11. May 2nd, 2009 at 08:26 | #13

    This is great! I’ve seen some demo stuff done with Next Engine, but nothing like this real-world application of getting scanned data and generating geometry in SolidWorks based on that data. Very good insight to the limits and strengths of what you can do with this. (Up to now, I often use a camera to capture 2D snapshots of data and trace them—which wouldn’t work so well with a project like this one.)

    I’ve got more experience with the Fill surface feature than the Boundary surface, but am playing with the settings on each more and more lately with some recent hand tool projects. In this project, I was a little surprised you were able to get the shape you wanted on the outer edge of the seat, simply by creating your spline right there. If I did this, I wouldn’t trust that would work properly and would have run my 13 splines out a bit and then trimmed the huge surface back to the real edge line I need. That you could make it work in this simpler form is really encouraging (trouble with old modeling techniques like mine in the closet all the time). And the rim around the edge! Man, I didn’t know how you’d do that, but it’s good to see it worked. (I always do the intersection surface thing to get tangency/continuity control for splines in my models, too.) Wow—thanks for a great post showing all the power of some of these “newer” features in surfacing. SolidWorks really has come a long way over the last few years with surface tools. Lots of this stuff was simply impossible (within SolidWorks) a few years ago.

  12. Steve
    August 7th, 2010 at 08:32 | #14

    Hey matt.. great post.
    will it be possible for you to send me a copy of this cad design?

  1. No trackbacks yet.

Upload Files

You can include images or files in your comment by selecting them below. Once you select a file, it will be uploaded and a link to it added to your comment. You can upload as many images or files as you like and they will all be added to your comment.

14 visitors online now
4 guests, 10 bots, 0 members
Max visitors today: 14 at 12:07 am EDT
This month: 48 at 09-02-2010 01:16 pm EDT
This year: 64 at 05-16-2010 10:32 pm EDT
All time: 64 at 05-16-2010 10:32 pm EDT