Hello people,
I must say I'm a bit intimated by this forum. I'm a complete newbie in CNC and mechanics and machining. I got a CNC mill in december to help me build casings for my electronic devices, and being badly afflicted by the Not Invented Here syndrome, I decided to build my own "CAD/CAM" software (that's a really big word for my software).
Basically, it generates G-Code. You can either program geometric shapes (circle, rectangle), outline, inline or fill them (at different depths too), which is what I use to mill my casing frontplates and sidepaltes. You can already do some pretty complicated drawing with this, as it supports rotation, scaling, displacement.
Also, the program generates multiple "passes", so you can for example generate movements and store parts of the milling in a "drill", an "outline", a "rough", a "finishing" phase without having to split your drawings apart. You can then combine passes.
Also, it supports panelizing, so it can calculate the size of a part and then replicate that part inside the workpiece, and for example drill fastening holes between the different panels. It can also automatically generate bridges on pieces and then store the bridge cutting in a separate pass (which is pretty useful for the plywood milling and pcb milling i do).
Furthermore, I can import vector graphics out of an SVG file, which makes it pretty easy to do fonts and the like, or just communicate with graphic people
Also, I can trace bitmaps using the potrace library. As this library generates bezier curves, I wrote a pretty evolved algorithm to convert bezier curves into most fitting arcs, which seems to work quite well. I started working on an offseting algorithm, which works pretty well as long as offset lines don't create pockets, but I'll definitely build that cause I need it.
I also implemented a bridge to the processing.org application, which allows me to quickly convert sketches into milling files, which is very very nice. I wrote about it in my blog over at http://ruinwesen.com/blog?id=387 , and you can check the sourcecode out at http://cl-mill.googlecode.com/ .
It's all written in common lisp and is definitely not in releasable state, but I will try to work on it as much as I can in the next few months. Let me know if you can use some of that stuff (maybe the algorithms) and I'll try to document a bit better.
On the other hand I'm a cmplete newbie to milling, so I think I will post some videos of my workflow and ask if the stuff I'm doing is okay, cause I really don't know anything about it all. I can mill my wood and my aluminium without breaking too many bits and that's about it