tags:

views:

146

answers:

5

I've always enjoyed programming and I always enjoy learning new langauges (anything e.g. Java/C#/Erlang/F#/Clojure/Ruby etc), but something's never seemed to enjoy it as much as I want.

One thing I'm curious about which I'm wondering if I might enjoy completely is CAD/CAM/CNC programming and design and I was wondering if anyone has any tips on where/how to start learning, what software there is out there that would be helpful for learning with (preferably free/open source and preferably for Linux, though I appreciate options may be limited).

Any tips would be appreciated.

+1  A: 

As someone who has worked in the industry for a number of years I'd have to say that I don't think there is anything available for free and certainly not open source that would get you very far. Most packages cost thousands of dollars. However you could learn some basics by just coding in straight g-code; you really need a machine available to try with as every machine is somewhat different in specifications. Generally the programming manuals that come with CNC machines are the best place to start.

Matthew Talbert
+1  A: 

You can start trying EMC (free) at http://www.linuxcnc.org/

Just a few comments:

CNC is a generical name for computer controlled machines (the "N" comes from Numerical)

There are several standards (as always) for the language, perhaps the most used is ISO 6983. However you'll find out quickly that each machine implementation is different.

There are also relatively cheap machines (under $1000) that you can buy or DIY to effectively run your programs and make "real" things. See for example http://buildyourcnc.com/default.aspx or http://wiki.makerbot.com/cupcake. You'll not catch up the quirks of the trade until you can run your programs in a real lathe or mill.

CAD and CAM programs from the programmer's POV can be thought as visual CASE tools.

belisarius
A: 

This is a little late but MasterCAM does offer a student version that comes with instructional books from emastercam.com

There are also many community colleges in areas with large machine trades that offer classes in MasterCAM, CATIA, and Unigraphics. It depends very much on who the largest vendor in that area is. CATIA is large around Boeing areas and Unigraphics is popular among Lockheed and McDonnell Douglas manufacturers. MasterCAM is probably the most popular mid-range CAM product and is almost a prerequisite for a CAM programming career, but is a mid-range software and the toolpaths it generates reflect that.

Most machine programming is done using software and it is more correct to refer to it as CAM programming. NC programming lost prevalence almost as soon as CAM software came out in the 1980's. However, it is very important to be proficient in NC code. I still write NC programs every day.

daedalus0x1a4
A: 

Why not try opencascade,it's opensource.

Begtostudy
A: 

Check out the available books like 7 Easy Steps to CNC Progamming . . . A Beginner's Guide Also, checkout MyIGetIT.com they have great turorials on the major CADCAM systems. Here is a code ( RES-10-HAYPB) for 10% off any/all of their cad/cam training courses.

The key to learning anything is having a specific project in mind. For example when learning to play a musical instrument, it is much easier to pick a song or style of music than to just "try to learn to play guitar." When you have a song or piece in mind, they you can focus your learning.

The same is true of learning CAD/CAM NC programming. What do you want to make? will it require a lathe, milling, drilling, routing, laser cutting, waterjet or . . .? If you want to make tractor spondles or disc rotors for a motorcycle that is different than where you would focus your efforts if you wanted to learn to program a router to make cabinets, or door panels.

Like programming computers what is your project? working with date, making games or simulators, perhaps calculation programs or business utilities. Having a reason to learn C#, Java, SQL or what ever is the key to effective learning.

Dave