For hobbyists, there are two types of machines that can make parts at home. The first type is matter-adding machines (3D printers) and the other is matter-subtracting machines (like CNC milling machines). [Mario] recently tipped us about an article he made detailing which free software can be used to design and produce parts on CNC machines.
The first step of the process is obviously designing the part you want to make using a Computer-Aided Design (CAD) application. [Mario] suggests Heeks or Freecad for which you can find plenty of tutorials on YouTube. The next step consists in converting the part you just designed to machine tool paths using a Computer-Aided Manufacturing (CAM) application. Fortunately, Heeks can do both so it may be the best option for beginners. [Mario] also mentions the pcb2gcode application, which allows you to manufacture printed circuit boards at home for the prototypes you may want to produce. Finally, the well known LinuxCNC (previously Linux EMC2) software is used to control the CNC machine using the GCode that the CAM software produced.
At Hackaday, we’d really like knowing what our readers currently use for their CNCs so don’t hesitate to leave us a comment below.
I use pretty much the same tool chain that Mario uses, for my ShapeOko CNC. Except, instead of Linux EMC2, I use GRBL (using a Raspberry-Pi + AlaMode + GRBLShield).
G-Code viewer from here is pretty useful too : http://buildlog.net/gview/index.html
Also, http://www.makercam.com/ looks promising once it develops further.
I find OpenSCAM works much better for simulating G-Code http://openscam.com/
Yeah, me too, but I’m the author of OpenSCAM so I might be biased.
Cool! thanks for making such a great program!
arg, openscam requires a bunch of old library versions I cant seem to find for my machine
I’m looking to build a CNC, and have been looking for a program with flexibility. I’m thinking of wanting to router wood on a table so it uses X,Y & Z coordinates or on a turntable so it uses polar coordinates. What I’d like to also do is be able to vary the router’s angle (4th axis) to get the harder to reach spots. Is there software like that out there that can do any/all of this?
OT: The CNC driving software is now called LinuxCNC. There were some legal issues with EMC/EMC2. That is why the name has been changed.
I may be wrong, but I think that CNC covers more than just matter removing machines. By definition, “computer numerical control” applies to any machine which is controlled by a computer, so 3D printing would come under that.
Agree
Thanks for the comment, I updated the post.
Meh, I think you guys are being a bit too picky. If you “CNC some parts” most people understand that you CNC milled it. Technically, both of the 3D printers on my desk are CNC machines, but if you say CNC, most people associate that with milling.
No. They don’t.
Yes, they do.
Yes I do…
:-)
What about EDMs? Lots of those machines around and oddly enough use G/M codes.
CNC stands for computer numerical control. It simply means some sort of machine is being controlled with a computer, your 3d printer, regular inkjet printer and several other devices are all CNC. A milling machine is what you guys should have been referring to which in this case is being CNC’ed.
OpenSCad is a nice tool for creating dynamic 3d models that can be changed via via variables.
Openscad -> pycam -> linuxcnc on a CNC router and mill
Works well for 2.5 and full 3d
I’m using this exact toolchain as well.
me too
Designspark Mechanical is much easier to use than the two recommended here.
My recently finished cnc router is controlled by GRBL on an arduino.
Since I haven’t got a dedicated cnc computer, installing linux or downgrading to 32bit windows for mach3 (and getting a parallel port) wasn’t really an option.
However, GRBL is incredibly easy to use, and works very well with any gcode sending software. I personally use Universal GcodeSender. The CNC is jogged and controlled by an oldschool xbox controller, interfacing with gcodesender by an autohotkey script (and xpadder).
For the parts-creation, I mostly use cambam (with illustrator/photoshop for image tracing if I’m doing engraving), the easiest to use for a beginner imho, though heeks is better for 3d parts.
I’m trying to implement something similar with a microcontrolled CNC, but I don’t know much about the software end of things. How did you get GRBL to run on an arduino? Is it possible on other microcontroller brands?
GRBL will only run on an atmega328 without any modification (some of the earlier versions also did atmega168). You don’t have to use an arduino though.
For what an arduino and a gshield cost, you can easily find an old computer w. a parallel port and get linuxCNC going. GRBL is very slick, but a far cry from the flexibility and motion control of software that can run a 9 axis machine (if you could find/afford cam software for 9 axis CNC! : o) )
I’m curious about your assertion there… I can get a complete arduino + GRBL CNC shield kit (including stepper drivers!) for $18.50 (http://www.ebay.com/itm/Arduino-CNC-kit-CNC-Shield-V3-0-uno-R3-4pcs-a4988-driver-GRBL-compatible-/252046431414?hash=item3aaf2354b6); given that it’s pretty much ready to go as-is, that seems like much less headache (and cost, especially when time is factored in) than trying to get LinuxCNC set up.
For simple jobs, I use LibreCad for designing with dxf2gcode for tool path generation.
Reblogged this on Teen Patti Rules.
I use Draftsight for CAD, SheetCAM for the code and run it on LinuxCNC. That’s the best/cheapest I have found for my plasma table.
If all you are doing is 2.5D, you could probably get away with a vector image and pstoedit, or, a bitmap image, potrace, then pstoedit.
potrace converts bitmaps to vector images, and, pstoedit can convert vector images to dxf or even output LinuxCNC formatted gcode.
I am very interested in this toolchain, can you possibly post an example set of the commands to go from bitmap to gcode? Can you specify different parameters for different layers? Like if one layer is pockets, and another is cut outs?
Autocad for drawing outlines of shapes and aspire for 3d cad and cam. Not cheap but very easy to use
http://moi3d.com/
while its not free its cheap and its pretty easy to use.
http://www.cambam.info/
again not free but cheap and he has a demo version that has tons of features. I bought it because his demo version is so strong. You know how sometimes you just want to support the good people that bring good products? Far and few between now days. Well with both of those purchases that was the case.
I recommend HSMexpress for Solidworks. It’s not open source but it is a free download and great for 2.5D milling. You must also have Solidworks which is not free or open source, but there is a student option. For motion control I use LinuxCNC which is okay – my current setup suffers from latency issues every 30 mins or so which is dangerous, so I will probably get one of those cheap boards that buffers the step signal between the computer and motor drivers.
Does anyone have any experience on the speed between something like pycam and Heeks vs. a paid package like VCarve? I’ve used VCarve and pycam and the speed difference is astounding. VCarve spits out the gcode in a fraction of the time. I’m not talking about simple 2D or 2.5D parts. I mean a complex curved surface, not a simple hole drilling problem. Maybe I’m doing something wrong, but the difference is very large in my experience.
The CAM part of the equation is the weak link, IMHO. It’s easy to find software to design the part. It’s easy to set up something to run the gcode. Generating the tool path code is the difficult part.
to send G-Code from my Raspberry-Pi to the AlaMode (Arduino), I use Zapmakers GRBL Controller : http://zapmaker.org/projects/grbl-controller-3-0/
I tried Universal G-Code sender but its Java dependence slowed down the Ras-Pi to a crawl. Zapmaker’s GRBL controller works like a charm.
I use Solidworks -> SolidCam -> LinuxCNC -> Gecko G540 -> nema23 stepper motors.
I haven’t found any solution as fast and easy as solidworks/solidcam.
for my metal cutting laser (http://nilno.com) I use Rhino -> LinuxCNC. But the tough part is making the tool path. For that I use a VB-based dump of the file out of rhino which specifies the parts and the cuts inside of those parts. I dont think I could give up Rhino, the software has too many features that I need for design.
Then I wrote python code:
http://code.google.com/p/laser-code/source/browse#svn%2Ftrunk
that does a traveling-salesman-esque attempt at choosing the parts to be cut, and the path through the cuts for each part. I havent heard of any open source options for people doing plasma or laser cutting.
It might sounds complicated but the advantage of this is the dump from Rhino is down with mouse click, and the conversion by my python code is a call done in linuxcnc. So to go from CAD to loaded in linuxcnc is two mouse clicks. This is very helpful when doing rapid part design at my laser.
tormach pcnc770, student version of inventor, cambam, (also free version of eagle, pcb-gcode)
Does anyone mentioned “Only Open Source Software” toolchains?
I use Kicad->Cyclone PCB Factory scripts->Printrun->Teacup firmware (-> and Gen7 hardware) to manufacture PB’s.
So far I’ve been using Draftsight for design (though Inkscape is great for turning pdf’s into dwg’s to then open and edit in Draftsight),
then dxf2gcode for conversion (though I can never get it to cut alongside the toolpath rather than on it).
The ngc. file is put into a network folder, then I fire up an old motherboard running LinuxCNC which I control on my Android tablet using AndroidVNC. (While LinuxCNC’s Ubuntu has remote desktop out of the box, it does still require some extra work to get it to start without a monitor actually plugged in.) LinuxCNC finds the .ngc and sends the G-code to the mill.
I’d be really interested in hearing from anyone what their open source toolchain would be for DLP 3d printing, as I am looking into retrofitting my old Sable CNC to this task.
2.5D gcnccam is worth checking out. I use librecad to make DXF and obviously linuxcnc.
Gcnccam is fairly well made, but has some lead in move bug, which the following fixes and can be compiled on a ubuntu 8.04 and run on 10.04
https://github.com/jedediah/gcnccam
I toyed with blendercam ( http://blendercam.blogspot.de/ ) for a while and it seems to be reasonably fast and accurate – and open source. make sure you download the samples file as well to understand the different toolpath strategies.
Really? No one here using MasterCAM or ArtCAM? Geeze! These together are so powerfull. I know they’re expensive but since when does a guy making personal non profit projects need to buy em?
Is there a software package than can do both 3D Printing as well as milling/routing? I was thinking about a machine build that would accommodate both functions, addition and removal. Obviously at different times. Such a creature could use the same gantry/stepper framework, but would driver boards and other electronics work for both applications?
I realize I’m late to the party buy I’m looking for a FOSS toolchain that lets me take a 3D model => slice => lathe.
In my garage resides a SX1 Mill , 4axis , ballscrews ,TTS style power drawbar , 3.5 dc motor, G0704 CNC , Im in the middle of converting my G4000 and G3102 6×26 knee mill. I use Solidworks and solidcam for cad cam and Mach 3 to run it all. When the CNC bug bites watch out!
http://i2.photobucket.com/albums/y48/MARK1234SARA/20140602_084536_zps51b47c6f.jpg
for all my 2d and 2.5d i’m using Inkscape+gcodetools plugin, for 3d it’s FreeCAD to BlenderCAM for generating g-code. my setup = Raspberry PI 2 > GRBL on Arduino uno> g-540, I run g-code from inkscape or blender with the Universal Gcode Sender
I will try blendercam, sound interesting.
hola, construi una cnc con arduino uno y shield, drivers drv y controlado por universal gcodesender, quiero utilizar aspire 8.5 pq lo veo bueno, para hacer tallados, pero no logro dar con el postprocesador correcto alguin me podria ayudar
Hi I built a homemade cnc, with Arduino one to shield cnc, with drv drivers, and for controlling universal use gcode sender, and I want to use the program aspire 8.5 for some carved 2.5 d, but so far I have been unable postprosesador not to use, I could help
Homemade CNC, GRBL1.1, Inkscape for design. CarbideCreate for toolpaths/GCode creation. Chrome plugin gcode-sender to send gcode to the machine(I have used others for sending but intend to put bluetooth on the arduino to send gcode from Android app.
I have also made a list of Free and Open Source CAM/CNC software here
http://bit.ly/2T7GlP6