View Full Version : Your best opensource package ?


PyroEvil
10-28-2008, 11:15 AM
Hi,

I'm a newbie in CNC but not in 3D ( working in digital special effects for movie ). I want to know what is your recommended/best opensource and free software package ( for all steps ... create 3D ( CAD ) , Create G-code ( CAM ) and control the CNC )

I purchase a cnc kit from hobbyCNC and i using Mach3 demo for now with Lazycam and/or CamBam. I'm searching for a solution in Windows or Linux.

samco
10-28-2008, 12:42 PM
Take a look at the machine controller EMC2

http://www.linuxcnc.org/
http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl

http://linuxcnc.org/images/stories/screen_thumb.png

PyroEvil
10-28-2008, 01:00 PM
EMC look pretty cool. Hard to understanding ? ( compare to Mach3 for example ). If i swith to a Linux methods, what is CAD and/or CAM softwares did you use. Because i think is a bit long to swith between Linux and Windows installed in dual boot if your CAD/CAM software is on windows. Same thing for TurboCNC in DOS.

cyclestart
10-30-2008, 07:16 AM
opensource and free software package

Open source is a much larger idea than no $. I'm sure you're aware of this, but the distinction is important. Ruling out free proprietary software narrows the field considerably.

Samco gave you the answer for the control. I'm also an EMC2 user. There's no denying Mach3 is a true bargain at approx $149 however.

Open source 3D CAD is very limited. Open source 3D CAM is near non-existent afaik.

There is a discussion going on the emc-user-mailinglist on this topic currently. One user was having good results with Salome
http://www.salome-platform.org/home/presentation/overview/

The CAM software recommended was FreeMill. FreeMill is not open source unfortunately.

On the topic of rebooting between operating systems: I don't. I run XP in VirtualBox. Files created in XP are simply moved to a shared folder.

cyclestart
10-30-2008, 09:31 AM
Forgot to mention something

EMC look pretty cool. Hard to understanding ? ( compare to Mach3 for example ).

The disk provided by linuxcnc can run live in ram, no need to install just to play around in simulation. If you have never used a livecd before, check it out. Cool stuff :)

Salome can run live on a dvd supplied by CAE linux. Not sure how well. 3D apps are a heavy thing to run in ram not to mention without the proper vidcard driver..

PyroEvil
10-30-2008, 09:41 AM
My budget is small ( i break my little pig just for buy the basic materials :) ) and for now is only for my personnal use.I just want have fun with my new HobbyCNC hardware. If i can help open source programmmers to discovers some bugs or whatever a can help with too. If i'm happy of my homemade CNC ( joecnc ou lgroe like with mdf ) , i probably considers to buy something ( it's true then Mach3 is a good deal. ) or give donation. Thanks for you suggestion , it's interresting !

PyroEvil
10-30-2008, 10:11 AM
If i understand for now i have this suggestion :

Control Programs:


EMC2 ( linux , open source )


- CAD :

No suggestion


- CAM :

FreeMill (Windows , free , not opensource)


Salome (Linux , open source)

lezdep
10-30-2008, 04:17 PM
Salome is a 3D CAD, not CAM. Free multi-axes CAM is missing under Linux
at the moment, as far as I know. Couldn't find one so far.

cyclestart
10-30-2008, 07:54 PM
Salome is a 3D CAD, not CAM.

Yes, sorry for not stating that more clearly.

Forgot to mention something else. Virtual machines like VirtualBox run a complete virtual operating system. Running Windows in VirtualBox includes the nuisance, and possible expense, of registration if I remember right. An alternative is running Windows apps directly (or is that indirectly?) in linux using something like WINE.

You might be interested in reading a bit of the emc-users-mailinglist archives. Gives a bit of a feel for the community around this project if nothing else. The CAD thread mentioned earlier is the BRL-CAD thread.
http://news.gmane.org/gmane.linux.distributions.emc.user

lezdep
10-31-2008, 01:45 AM
Funny :) I was the one who mentioned Salome and CAELinux on emc-users list ;)
I've subscribed around June, when I started my DIY-CNC retrofits for Sherline
machines. I've been evaluating different free 3D CAD programs since 2006, I think.
Now issue is with free CAM system. So far could not find decent one.

PyroEvil
10-31-2008, 07:24 AM
Someone try Cambam ?
It's a good one ?

Dan Falck
10-31-2008, 09:30 AM
http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Cam

There are some dxf to gcode translators listed that might be helpful for simple tool paths.

Dan

cyclestart
11-01-2008, 12:44 PM
Someone try Cambam ?
It's a good one ?

The demo of cambam-plus is a free download so nothing lost but time. Alibre Express might also be worth a look. I don't use either so take this for whatever it's worth.

If you haven't already guessed, you've fallen in with a rogue crowd. :) A direct result of posting in the open source forum.

lezdep

Not surprising you found this thread. Open source 3d cad is a small world ;)
Downloading Salome now. Thanks for the tip.

cyclestart
11-03-2008, 09:40 AM
Cambam-plus looks able to do some 3d. Unfortunately the .net requirement probably rules out running in WINE ? Anyone got this working?

EDIT/ Winedb lists .net2 as gold. Cambam is listed as garbage from a wine install standpoint. Will be back.

cyclestart
11-07-2008, 09:19 AM
To continue the monologue and tie up loose ends for anyone encountering this thread....

Freemill works fine in Wine.

CamBam installs in Wine but crashes immediately in use. Troubleshooting failed Wine apps is not like herding cats. It is in fact much worse.

CamBamPlus-beta9.4
Wine 1.7.1

Salome is cool. Well worth a look.

lezdep
11-07-2008, 11:56 PM
Don't feel alone. I'm watching this thread as others probably too.

I have trial version of MeshCAM working under wine on Ubuntu. FreeMill failed
to save toolpaths. Didn't try CamBam as I need full 3 axes support.

Salome is my 3D CAD of choice. And I think it's a very good CAD for the
money. Couldn't find any other free 3D CAD as mature and with good UI.

Regarding free open source CAM - there are number or projects going on
at the moment and probably good number of project died in the past. It seems that
everyone is starting new project instead of getting behind existing one. It could
be related to choice of technology or the fact that no project gathered critical mass
yet. I initially though GCAM would be the most advanced one, and it also C based,
which would be my language of choice. But after looking at their manual it seems to me
GCAM is geared towards combining simple set of "primitive" operations into one "project". I'm not
sure how 3 or more axis machining could fit into GUI and philosophy they have in
place.

IMHO, it would be definitely worthwhile for other authors to describe and publish
machining algorithms they have designed/implemented at some central location.
Implementing them as portable C libraries would help others reuse existing ones,
instead of re-inventing them.

PS: I'm going to start yet another thread and try to convince authors of existing
projects to come together and contribute to one central location or project. We'll see
if that would work this time ;)

Dan Falck
11-08-2008, 10:33 AM
On the subject of Salome- I have it installed here and have started using it a bit. Very impressive package. I think a new thread with some screen shots might inspire more people to try it :
http://www.cnczone.com/forums/showthread.php?t=67803

Thanks,
Dan

lezdep
11-08-2008, 03:14 PM
I think Salome and opencascade.org are very good platform to which open source
CAM could be built into. I need to spend more time on understanding which
technology/language is used and what part of opencascade can be useful for CAM
plugin. In one hand CAM plugin integrated into Salome would be great, but it probably
makes more sense to have CAM as standalone application and integrate it with
Salome via scripts. I believe integration between Salome and other applications in
CAELinux is in fact done via scripts.

There are at least 2 abandoned/dead CAM projects based on opencascade
- http://olivier.coma.free.fr/opencascade/opencascade.html
- http://cam.occ.googlepages.com/home
Actually second is based on first ;) Let's see what can be used from those.
It could be possible to integrate algorithms from current CAM projects into one
application. That's why I said describing or even implementing those algorithms as
C libraries could help a lot.

I gave GCAM more though and it appeared to me that 3 or more axis machining operations
probably could be included as sub-tasks into GCAM project. For example - add roughing
operation based on geometry imported from STL or IGES file, then add finishing operation
based on same geometry. I'm going to throw this idea on GCAM forum and see what
they think.

cyclestart
11-09-2008, 04:34 AM
I have trial version of MeshCAM working under wine on Ubuntu. FreeMill failed
to save toolpaths. Didn't try CamBam as I need full 3 axes support.


FreeMill is working here with Ubuntu 8.0.4. Try posting using one of the examples included with FreeMill.
If that works copy cad files to the phony c drive before opening.
If the examples don't work, see my previous comment regarding "herding cats". ;)

mpictor
01-29-2009, 11:33 AM
I think Salome and opencascade.org are very good platform to which open source
CAM could be built into. I need to spend more time on understanding which
technology/language is used and what part of opencascade can be useful for CAM
plugin. In one hand CAM plugin integrated into Salome would be great, but it probably
makes more sense to have CAM as standalone application and integrate it with
Salome via scripts. I believe integration between Salome and other applications in
CAELinux is in fact done via scripts.

There are at least 2 abandoned/dead CAM projects based on opencascade
- http://olivier.coma.free.fr/opencascade/opencascade.html
- http://cam.occ.googlepages.com/home
Actually second is based on first ;) Let's see what can be used from those.
It could be possible to integrate algorithms from current CAM projects into one
application. That's why I said describing or even implementing those algorithms as
C libraries could help a lot.

I gave GCAM more though and it appeared to me that 3 or more axis machining operations
probably could be included as sub-tasks into GCAM project. For example - add roughing
operation based on geometry imported from STL or IGES file, then add finishing operation
based on same geometry. I'm going to throw this idea on GCAM forum and see what
they think.

I'm working on cam-occ once again. (I have lots of free time now, thanks to the economy. :eek: ) What I hope to do first is re-organize it so that it's easier for others to work with, and to provide some documentation and a sample to simplify the process. After that, I'm going to try to do some face analysis stuff.

By face analysis, I mean:
*is this face part of a geometric primitive, i.e. cylinder/plane/cone/sphere
*is it a radius or chamfer, a shape that can be created with a single pass of the right tool
*if the face has a center or axis, are there other faces that have the same face/axis?
*find adjacent faces
*compare adjacent faces with this face - is the current face the bottom of a pocket?

When I first did cam-occ, I was trying to evolve the high-level stuff at the same time as the low-level stuff. Now, I'm just going to focus on the lower-level stuff. I won't start looking at things like OCAF, undo/redo, persistence, etc until the lower-level stuff is usefull and fairly complete.

BTW, a better url for cam-occ is http://code.google.com/p/cam-occ/

Mark

(edited for clarity, change url)

lezdep
01-29-2009, 02:14 PM
Hey, Mark

I'm sorry for your situation regarding economy. But I'm glad you returned to
occ-cam. Before you dive into low level check two projects we have going
right now pycam and heekscnc. I spent some time helping Lode to debug
pycam and it has now some good basic stuff. HeeksCNC looks promising, I
did find time to build it yet, unfortunately :( There is also acpt lib now, which
is implementation of Adaptive Clearing method. It proved to produce good
results for my models. From my point of view the issue now is to integrate
all of them and occ-cam into one useful tool. Here are links to mentioned
projects

http://pycam.wiki.sourceforge.net/
http://code.google.com/p/heekscnc/
http://code.google.com/p/libactp/

mpictor
01-29-2009, 08:39 PM
Hey, Mark

I'm sorry for your situation regarding economy. But I'm glad you returned to
occ-cam. Before you dive into low level check two projects we have going
right now pycam and heekscnc. I spent some time helping Lode to debug
pycam and it has now some good basic stuff. HeeksCNC looks promising, I
did find time to build it yet, unfortunately :( There is also acpt lib now, which
is implementation of Adaptive Clearing method. It proved to produce good
results for my models. From my point of view the issue now is to integrate
all of them and occ-cam into one useful tool. Here are links to mentioned
projects

http://pycam.wiki.sourceforge.net/
http://code.google.com/p/heekscnc/
http://code.google.com/p/libactp/

Correct me if I am wrong, but these three projects convert the model to a triangulated mesh, then create toolpaths using the mesh, right? I hope to avoid meshes, which I think will have some advantages. For example, recognizing one face as being a fillet between two other faces, determining the radius, and trying to select a ballnose tool of that exact radius. Then, that face can be machined accurately with a single finish pass rather than many passes with a smaller tool.

To me, a mesh that has small enough triangles to accurately follow the surface will have so many triangles that it will slow the program down, though that's not so much of an issue when roughing (i.e. Adaptive Clearing). (By the way, I'm really glad to see a project based on Adaptive Clearing!)

I read a comment earlier today that there are a lot of abandoned free cam programs out there. I think there are that many because everyone goes about the problem their own way, using their own language, and with a different set of libraries.

One of the things that really drove me nuts with cam-occ was trying to figure out how to write the functions so that the result would never be wrong. I suspect that's really frustrated a lot of other people as well. "Usually right" isn't too hard, but 1 or 2 bad lines of g-code out of a thousand will still break plenty of mill bits.

I have uploaded a tarball to the website (http://code.google.com/p/cam-occ/), which should help anyone who wants to mess with OCC but does not want to deal with the complexities of GUIs, C++ classes, visualization, etc...

Mark

lezdep
02-04-2009, 09:21 PM
Hope you can do, what others couldn't. What input format you plan to use. Which format
could provide you with such clean geometrical data ? IGES ? STL is based on meshes,
isn't it ? Looks like you'll be going your own way too. If you get to generating g-code
at some point I can help testing it, as I have real CNC machine and EMC2 in simulation
mode also to test g-code. If there is anything else you need help with, let me know.

mpictor
02-05-2009, 12:21 AM
Hope you can do, what others couldn't. What input format you plan to use. Which format
could provide you with such clean geometrical data ? IGES ? STL is based on meshes,
isn't it ? Looks like you'll be going your own way too. If you get to generating g-code
at some point I can help testing it, as I have real CNC machine and EMC2 in simulation
mode also to test g-code. If there is anything else you need help with, let me know.

I'm not absolutely certain what sort of data IGES provides; I think it defines faces in enough detail. I know STEP provides enough data, and so does BRep. STL is based on meshes, so it's out. DWG and DXF are out since OCC does not handle them (and I don't know if either format provides enough data, anyway). I suspect they don't, but I could be biased - I remember AutoCAD as being horribly clunky and have a hard time believing that their formats would be very good.

There is at least one commercial package that avoids meshing. I can't remember it's name, but I remember Julian writing that he had looked for companies that he could market to, and he didn't understand how a program that didn't mesh would work.

My reasoning for trying to avoid meshes is that it loses precision. I had at least one class where it was drilled into our heads that any time we did lengthy calculations, we must not do anything to compromise the accuracy of the data, because it would snowball. A small change (or error) before several math operations would probably result in a much larger error after those operations.

For most machined parts, a small error in a contour (for example) is not going to matter. But it seems like a challenge, and that is part of the reason I am doing it. :)

Thanks for the offer of help. Hmmm. You like EBNF, right? Right? Seriously, if there is anyone here that doesn't mind EBNF (http://en.wikipedia.org/wiki/Ebnf), I have some data (EXPRESS schemas) that need to be translated into EBNF. It's not for cam-occ, it's for another CAM program that could be open-sourced if its dependencies on commercial software could be removed.

CADMatt
02-11-2009, 03:49 PM
Hi Mark,

Your work looks pretty impressive. I've passed thru these forums many times but only just registered, I had half a mind to write some CAM software until I saw just what good stuff can be found already.

Anyway, about your 'challenge' of keeping to maximum accuracy.. (not to poo-poo your ideas one bit, just giving you my perspective :) )

When we started using CAM 10+ years ago, we exported our models as triangulated meshes to a tolerance of 0.01mm, our finishing passes would typically be to 0.01mm tolerance too. Even taking into account cutter variation, machine tolerances, not always the best cutting conditions etc, we could easily hit +/-0.03mm all over large (over 1m long) 3d forms (they were inspected to the original CAD data too, not the triangulated mesh). IMO cutting any closer than this is as much a black art as it is numerical accuracy.

Here's a contradiction in your accuracy logic though; You want to pick out a fillet feature and cut it with a form tool (or correct dia ball nose). Cutting conditions almost never favour this approach. I've cut materials ranging from resin based tooling boards to hardened tool steels and I shudder at the thought of running a full rad cut over a fillet like that. So you may be looking to provide a feature that's actually unusable in practice.

Cheers
Matt

mpictor
04-17-2009, 01:01 PM
Hi Mark,

Your work looks pretty impressive. I've passed thru these forums many times but only just registered, I had half a mind to write some CAM software until I saw just what good stuff can be found already.

Anyway, about your 'challenge' of keeping to maximum accuracy.. (not to poo-poo your ideas one bit, just giving you my perspective :) )

When we started using CAM 10+ years ago, we exported our models as triangulated meshes to a tolerance of 0.01mm, our finishing passes would typically be to 0.01mm tolerance too. Even taking into account cutter variation, machine tolerances, not always the best cutting conditions etc, we could easily hit +/-0.03mm all over large (over 1m long) 3d forms (they were inspected to the original CAD data too, not the triangulated mesh). IMO cutting any closer than this is as much a black art as it is numerical accuracy.

Here's a contradiction in your accuracy logic though; You want to pick out a fillet feature and cut it with a form tool (or correct dia ball nose). Cutting conditions almost never favour this approach. I've cut materials ranging from resin based tooling boards to hardened tool steels and I shudder at the thought of running a full rad cut over a fillet like that. So you may be looking to provide a feature that's actually unusable in practice.

Cheers
Matt

Yeah, I keep forgetting that the company I work for is a world apart from most. They don't have any gages less accurate than 1 micron. Almost every gage reads to .01 or .001 microns, and I've seen printouts with 5 or 6 digits after the decimal point.

The extreme accuracy I wanted *is* overkill for 99.999% of users, and the other 0.0001% wouldn't have any use for cam-occ. :)

Since I last wrote in this thread, I've been left in the dust by another guy, Dan Heeks. If you are looking for usable open source CAM software, you'll want heekscad and heekscam. It still has rough edges and isn't all that intuitive at the moment, but it can generate accurate toolpaths for roughing and finishing. It also uses freesteel's adaptive clearing.

http://code.google.com/p/heekscnc/

I'll contribute to HeeksCAD if I find time to learn the internals. In the mean time, I'm still puttering around with cam-occ a bit. If I come up with anything useful, I'll probably package it as a module for heekscad...

Mark

kolias
09-09-2009, 02:57 PM
Has anyone tried BLENDER.ORG ?

Pros and Cons?

Nicolas

beege
09-09-2009, 04:03 PM
And any users of Synergy?

http://www.webersys.com/