Sunday, November 8, 2015

Getting an Idea Into CNC

It has been a day of staying busy with lots of little and not so little tasks.  Some of the Windows 10 discussion has been very good.  I thought I'd put up a little more details about some of the things I was talking about.  A lot of newcomers to CNC are confused at the many pieces of software that's required. 

Today, I took a line drawing, a DXF format drawing of a part and made a 3D model of it in Rhino3D.  This is the Z-axis motor mount for my G0704 CNC conversion.  Note that this drawing is copyright Daniel E. "Hoss" Kemp.
Given those dimensions, and the fact I'm using NEMA 23 stepper motors (that's a National Electronics Manufacturer's Association specification for the mounting hole pattern on the motor), that means I omitted the holes marked "Use for Nema 34" on the drawing.  I turned that into a 3D drawing in Rhino 3D...  
The next process is to save this as an .STL file, the format 3D printers usually use - it comes from the earliest 3D printers: stereolithography.  The .STL file becomes the input to DeskProto.  DeskProto is a CAM program (Computer Aided Manufacturing).  It takes the 3D model, positions it on a virtual milling machine, and creates tool paths for the cutting tools to take.  The tool paths are written in what's frequently called G-Code.  (I've often thought that's because many of the commands start with the letter G and two numbers).  It's an industry standard language, RS-274. 

The CAM program gives a graphical output that shows the path of the center of the cutting tool, as well as the G-Code file.  In this case I'm using a 3/8" diameter end mill.  It's too big for the holes, I'll drill those with direct commands to the CNC mill.  
Finally, this G-Code file, also called a CNC file, it loaded into a motion control system that drives the motors on the CNC mill.  I've been using a program called Mach3 for that.  It's running on an air gapped XP machine.  I've had the Mach3 installation (and almost nothing else) on that particular computer for years, and saw no reason to toss the PC when XP went unsupported. 

Now that I've gone through all of that, I don't think I'm going to use it.  I think it will be easier and better to drill the holes with direct commands (that is, go the exact location of the hole and do the series of operations they'll require) and then cut out the large hole in the middle with something like the tool paths shown here.   The whole purpose of all of these steps is to create the G-code.  That can be created with a plain text editor; you just need to know the X, Y, Z coordinates of the places you will be working.  I've created a file with a spreadsheet and copied the coordinates into a text file. 


  1. I didn't know there were so many intermediate steps between the original drawing, and a file suitable to drive a machine with.....

  2. For no other reason than curiosity, what are you using for stepper motor controllers?

    Quite a few years back I used some CompuMotor controllers to make 200 step/rev motors perform as 5K step/rev; the CM controllers allowed use of a common buss connection, just address the move command to a specific ID controller, and we could control ramp up/ramp down rates and individual travel speed as well. Controller code was very simple - we used Turbo Pascal to do it.

    I'm betting that in the intervening 30 years it's gotten even more simple.

  3. Many years ago I worked with Brown & Sharpe automatic screw machines. These were lathes only and limited to 8 processes/tools. But even given those limitations they could do almost anything you needed to do with a lathe to create finished components. Everything was run by cams, the process to set up a job was time consuming and thus expensive so it was only used for large job lots. We had B&S hand screw machines for smaller jobs. I loved those old mechanical monsters. Yes CNC is a huge improvement but for the hands on kinda guy there is nothing like the old heavy iron.

  4. I do this operation several times a week. There is a much simpler method.

    Download ESTL CAM. It's free to try.

    Put in the dxf file directly to Estl cam

    Use a 1/8 inch end mill

    Set up the software to recognize the 1/8 inch end mill and the feet rates etc.

    for the holes you can do a drilling operation in the cam software. The inside cut, and then the outside.


  5. Alien - I'm using these KL-6050 controller modules from Automation Technologies, Inc.. The reason is that I'm building someone's successful design and just using what he recommends.

    As you can imagine, there are literally tons of options. I've had good luck with Xylotex before and have been running one of their early model boxes for a 10 years now.

    Admin - that's an important point. There are many ways to do this and the choice of tools is completely up to the user. I started out with a program called TurboCAD for design, but for some reason, couldn't get their approach into my head. TurboCAD is a $99 program and Rhino was $350 at the time, I think. But the interface was much more intuitive to me. That was over 10 years ago, so maybe TurboCAD has gotten better, and maybe the problem was me all along. Likewise, there are other choices for the CAM and the machine controller. For simple things like this motor mount, a list of coordinates gotten from the drawing and hand editing the tool paths in a text editor will get you there.

    At most, a spreadsheet like the Open Office version (free software) can calculate the coordinates and export text.

  6. Where are your dimensions to locate the center hole from the edges?

  7. For mine it's pretty much just a matter of exporting the dxf from CAD, the opening in ESTL CAM. The hole drilling option I just click on and the software will let me place holes in center of larger holes., at corners, and ends of lines.

    My cheapo plywood mill ( supposed to be replaced by now, I keep finding uses for it because it's the biggest CNC I got right now) is not good at doing small holes because the gantry is too flexible. So I just drill pilot holes then finish on the drill press.

    I then mark the inside cuts, outside cuts, save gcode and run the file. Takes bout a minute to convert a file like yours into gcode.

    That said ESTL CAM totally sucks at machining stl files. Too many random errors introduced into the parts with the tool head usually gouging at least one spot on the part with unwanted machining. It's not the machine, cause it is happening with the mini mill also.

    However for dxf, pocketing, engraving and stuf like that it's worth the $50 bucks. It's free to try and you will get maybe 50-100 uses out of it before the nag countdown timer makes it useless and have to buy.

    I like to also cause it plays nice with GRBL controllers and the 3d printer controller/firmware I use with the mill.

    One of these days I'll manage to get a nicer personal machine instead of sending all my nice stuff to customers.