Saturday, August 18, 2012

Co2 Car Races

The Race Day Has Come!!!!

Well I couldn't wait for the race day for our Co2 Cars to come. I spent the last few hours before the race thinking about how I could further reduce the friction of the car. But At some point you just can't do much more.  Here is my completed car with post race dings on the nose:
So I suppose you would like to see some of the video?

I ended up finishing second in the race. The first place car was cut on my machine, but the design was a bit lighter. My car was 2.9 oz, the first place car was 2.3 oz, so it isn't surprising that it won the rare. I suppose next year I'll worry more about weight than the aerodynamics.

I'll post some more in a day or two when I have some more time.

Saturday, August 11, 2012

How Fast is your CAM Software?

So I have been doing quite a bit of surfacing lately with co2 car I have been working on. Surfacing calculations were consuming a significant amount of my time. So I thought I would make a comparison of the apps I have used. First we will look at pycam.

The Test Parameters

The Test file I will use for comparison is one the co2 car designs from the last few posts on this blog. This file is in stl format and has about 50,000 triangles. The model is about 2" x 10" x 2". The operation is zigzag surfacing the model with a .250" ball end mill and a .015 stepover.

Here is the STL file


Pycam has some interesting option that are intriguing to try. However I found that the amount time was unreasonable for my application.

Pycam failed the task all together. After consuming 6gb of memory and all 8 of my cpus cores for an hour it finally finished the first 8 passes, then locked up the computer. Before the crash the progress bar said there was more than one hour remaining. I don't have time to wait that long.

HeeksCNC (OpenCamLib)

Next OpenCAMLib in HeeksCNC. OCL performed the task in about 5 minutes with two triangle intersection errors. See the following pictures. This is definitely much better than PyCAM, however, I had to verify the resulting gcode to detect and manually fix the triangle error that would creep into the code. Some of these errors on different operations would cause the tool to dive through the workpiece. So, verify your code before you run it.

Here is the HeeksCNC File

FreeMill (free VirtualMill product)

Freemill produced the requested toolpath in 3.17 seconds. No errors. I'm quite impressed with the speed, but I have not compared the resulting code to see if the stl file had been simplified before the code was generated.


When doing hobby stuff at home, nothing beats free. In that reguard OpenCAM lib takes the cake as the best free surfacing tool that I know of. Please feel free to let me know of something better.

When doing work, rather than play, it sure it nice to have some tools that reduce wait time from a few minutes to a few seconds.  The VirtualMill product is expensive enough that I would need a pretty darn good reason to purchase it for faster CAM calculation time.

It would be nice to see what could be done to narrow the gap between the open-source solutions and the commercial tools. I would love to see some additional examples of other software creating the same operation in CAM programs. Please feel free to use my model as at tool to compare other solutions. Here it is.

Sunday, August 5, 2012

Share your toys

Sharing is Fun

So one of my other objectives with this project was to share my toys. Like I have said in previous posts, I'm not really out to win the race, I just want to have fun. If anybody else in race wants to use my tools to cut out their car I would be more than willing to help out. After all, it just means I get to have some more fun using my machines :)

So I wondered how many of the other men at church had access or the skills to use CAD software to design a car to be cut on my machine. There are perhaps one or two that could make their own model. But for anybody else it isn't really an option to learn how to use some of the free CAD software to generate a complex contoured car body shape in a short amount of time.  One option that is free and still pretty easy to use is Autodesks 123d CAD software.

However, it is pretty realistic to model a car out of clay and other sculpting materials. I figured that if someone wanted to sculpt a design is would be easy to make complex shapes using clay and then all that we would need to do is digitize the clay model and then we could cut it on the NC machine.

How to Make Clay Digital

So There are several ways to digitize a clay model these days. Most all of them use some method to create a point cloud from the surface of the part and then mesh that point cloud into a digital surface that is close to identical to the original. There are laser scanners, touch probes, X-Ray tomography, etc.. but there was one method that looked very easy and didn't cost any money. Autodesk 123d Catch.

123d Catch- Beautiful, but not very accurate

124d catch uses lots of digital photos of the object from different angles to create a textured mesh of the original object. Here are the results of my attempt. When you get to the site select the 3d button below the model. The model is beautiful because the texture is created from the photos, but the mesh is not very accurate. Also it bothers me that the calculations are done on the cloud. I would rather wait longer and do all of it on my computer. I'm sure that they do it in the could to gain ownership of the models.

Touch Probe it is

After discovering that 123d Catch would not provide the accuracy I wanted I looked into making a touch probe for my machine. I ended up making a touch probe with a piezo buzzer and an Arduino board. More details on that sensor will be in another post. Here are the results from that experiment:

And here is a picture of the resulting mesh next to the original model
Not Quite the faithful reproduction I was expecting, but it is a work in progress. Also, not all the part was sampled.

CNC Machining the body

Ok, here is where the CNC fun starts. I made sure to design the body with the fact that I would be contouring the body on my CNC machine with a 0.250" ball end mill. Also, the design of the car required that I be able to machine the car at least from the left right and the bottom. I ended up building a fixture out of some scraps I had in my scrap bin.

At the left side There is an expanding mandrel I made from a piece of 1" hex stock steel and a rubber expansion nut. The middle school car is placed loosely on the end of the mandrel. The real stock wood fits all the way up to the steel shoulder. The expanding rubber section holds the wood on the steel shoulder and prevents the block from rotating. The hex shape allows me to rotate the part around the longitudinal axis as 60 degree increments. The hex mandrel is located against the two dowels in the fixture. You can see the block fixtured in the background of the second picture.

I used HeeksCNC to generate the tool paths to cut out the part. Here you can see the part positioned in the 6 orientations it will be cut in. With the six positions every spot on the car should get a good change to have the tool cut the surface at a close to normal direction to prevent needed to use extremely close contouring lines. 
And here is a screen shot of one of the finishing profiles.
And finally at video of one of the programs.
Note that I will manually cut the front of the car with a band saw and create a good looking tip to the car.

CO2 Car Body Design

After I picked up the CO2 car kit from the scout shop I started work on the design of the body. I use Alibre CAD here at home and for consulting work. It is proficient for most mechanical CAD work I do, but I have not been impressed by it's surfacing capability. But hey nothing in in my home use budget is going to compare to software like Unigraphics NX (read >$30,000).

So I whipped up a few lofted and swept profiles and created this model. 

Co2 Car body Design

 I ran the simulation in Project Falcon creating these results:
The car as a coefficient of friction of .34 and a drag force of .17 newtons a 60 mph. The coefficient of drag is not really all that great, but it is difficult to get much better because the hole where the Co2 cartridge goes creates a large low pressure zone with lots of eddy current (seen as the blue traces in the picture). The .17 newtons of drag is the best result I came up with out of all the preliminary designs I did. So I'm fairly confident this is a near optimum shape.

But What about mass? isn't that the most important parameter? Well if you look at the bottom of the car, you will notices that behind the front wheels the main portion of the body is hollow. I didn't spend as much time reducing weigh as possible, but I didn't do any stress analysis to determine how thin I could go, so the design is a bit sub par in that aspect.

However the point is that this is for fun, and I'm having fun with it up to this point.

Wind Tunnel

A few hours after hearing about the CO2 car contest I found myself in my basement determining if I had all the parts to build a wind tunnel. I made a quick BOM (bill of materials) and decided that I didn't have everything I needed to build a wind tunnel. But then I wondered, are the aerodynamic effects of the car significant? I figured that the main parameters influencing the speed of the car were roughly in order were:

  • Mass 
  • Bearings/Wheel friction
  • Wheel inertia
  • Eyelet friction
  • General axle and cartridge Alignment
  • Aerodynamic
Of course as the mass of the vehicle becomes lighter, the overall velocity in increased causing the aerodynamics to become more important perhaps becoming a little less important than bearing/wheel friction. So why should I spend lots of time making physical models with different shapes to test in a wind tunnel that I hadn't built yet? I decided against building a wind tunnel and choose that if I had enough spare time I would look at what CFD (Computational Fluid Dynamics) models I could generate that would provide the same information without having to build physical models.

I looked around and determined that a few free open source suites, including openFOAM were up to the task.  However I took stock of my skill and found that is was going to take me quiet a while to polish my skill set to feel like I was getting any sort of realist results from the software.

I later found a virtual wind tunnel program in the Autodesk Labs, Project Falcon. This piece of software provides a CFD results for testing body shapes for cars, motorcycles etc. with only a STL triangulated model and a few model parameters.

So I wiped up some simple body shapes in my CAD software an gave it a whirl. Now, I don't expect that the project Falcon is providing my results that are even within 20% of reality, But it did give me a method to compare the relative differences between the designs.

I made many digital models and came up with some general ideas of what the car should be shaped like.

Learning from the past

So, I've built one of these cars before. Back in middle school as part of a shop class we build CO2 cars according to the TSA standards. I have to admit that I didn't spend the most time on it and I was surprised to find it in a box of stuff I recently picked up from my parents house. Note that the black sharpie marking on the car were added when I attempting to digitize the car using photographs. More on that in another post.
Lame Co2 Car From Middle School
According to TSA rules there is not minimum weight limit like in the BSA rules. So this car is much lighter than the minimum 5 ounces in the BSA rules. I inspected the crude workmanship of my old car and found several reasons why I didn't do very well in the races in middle school. 
  1. Axels were not parallel
  2. Guide eyelets (on the bottom of the car) were not well aligned causing the car to go down the track a little sideways. 
  3. The Co2 cardrige was not centered in the car. 
  4. Poor bearings
  5. Not the most aerodynamic shape
So I would keep these things in mind as I came up with the replacement. 

Building a CO2 Car

The Boy Scouts Of America "Blastcar" Kit
So the men at my church are getting together to do a "Pinewood Derby" for the adults. After trying to hold back and let the car be built by and for your boy, it is nice to have an opportunity to make a car all for your adult self. So we decided to make CO2 cars, "Blastcars" for the BSA literate, instead of pinewood derby cars. A little faster, a little more fun. But of course we are going to disregard all the regular scout rules like the minimum weight limit.

Kit Contents
I figured this would be a great excuse to get my CNC router working again and cut out a "Cool" car. My CNC router had been out of commission for several months due to a major upgrade that hadn't been completed. More on that upgrade in another post.

You can see the standard kit contents in the two photos here. I have to admit I was a bit disappointed in the kit. It isn't much different than a pinewood derby kit except that the parts are larger and there is a pre-drilled hole in the wood block.  I expected to see some kind of bearing, but no. I'll have to work on upgrading that later.

So, this project isn't so much about winning the race for me as it is a chance to use the engineering and manufactures tools I have developed through the years. Also, Don't be surprised if after all the time I spend on this project I don't end up winning the race.