As I said in my update above, I'm still busy re-writing major parts of my Web-based CAD/CNC program. It was already a mess of code with almost-duplicate code all over the place depending on the shape to be cut. Adding tabs to all of them
and adding G-code afterward would have been a maintenance nightmare.
So far the rewrite is going well and it will allow me to add tabs to any shapes and also output regular G-code in addition to Roland RML-1 code.
I've simplified the functions quite a bit and these functions call new "lines" functions that output HTML5 Canvas/RML-1/G-code, so any new function that I write from this point on is automatically compatible with all three output formats. In short, the function that outputs drawing/CNC code is the same for all shapes, no more duplicate code.
I'm planning to have custom functions in my CAD for all the common "2.5D" CNC design requirements . The basic ones being "hole", "pocket", "rectangle", etc. I'm still not sure how I'll design the complex arbitrary shapes because the path usually needs to be relative to the milling bit (inside cut, outside cut).
I've yet to complete the RML-1 and G-code outputs, but here's a screen capture of the new "hole" function which takes a parameter for the number of sides. Since the RML-1 doesn't allow for circles or arcs, my CAD software will also only use lines for everything including circles.
The green lines in the image are tabs. The ends of the tabs are even rounded according to the milling bit diameter, too!
2014-06-16, edit 1: RML-1 code output already completed? At this rate, adding G-code output should take less than one hour, once I understand which codes to output.
2014-06-16, edit 2: Testing a cut with the pattern shown below, I should be able to add a photo by the end of the day. It's working well so far, but there's quite a number of circles to cut. Middle ones are done, still need to cut the last two big ones.
2014-06-16, edit 3: I had to stop the machine at the last circle, it's 22:30 here. I'll post a photo of the cleaned-up plate tomorrow morning.
2014-06-17: After cleaning up the front of the plate, which came out absolutely perfect, I turned it around to clean up the back. Nothing, no slots, totally flat. Turns out I forgot to select the correct material before outputting the RML-1 code for my MDX-3. But I did watch it cut the first few holes and the Z-axis did go up and down, so I know the ramping tabs are working. Next step, flat tabs. Attached are the cleaned plate (rotated 180 degrees on the MDX-3 so I can cut some more tests on the left part of the plate) and a close-up of my CAD software with my stupid mistake highlighted.
2014-06-18: since I'm now cutting with 1mm end mills, I need to rewrite a number of functions that were hard-coded for 1/8" end mills, such as the "pocket" functions (half-depth holes and cutouts). See the last two images for
boring details.