In Fab Lab Egypt, after we moved into a new location in Cairo which is more spacious than the old one, we got the chance to purchase a CNC router manufactured by a local company.
It wasn't used much, the only project that was done using it was a Christmas tree.
So, I took the opportunity to test the machine out and understand how it works, what are its limitations and maybe create a tutorial for anyone who wants to use it. So me and Asem when on to discover more about this machine specifically and the machine in general.I found that the computer controlling the machine is running LinuCNC on Debian Wheezy.
So I started looking around for sources to learn about it I found many but as I didn't want to dig deep on making a CNC machine - for now - I decided to read what I need from the official manual .
The part that helped me was the explanation of the user interface. It made the beginning less intimidating.
The machine has two physical buttons that control the power supply to the machine; a green button that turns the machine on and a red one that turns it off and acts as an emergency stop (e-stop).
As a start, I wanted to execute the toolpath that is loaded by default, so:
I wanted to test the toolpath without sacrificing the end-mill as we only had two 6mm end-mills. So, I removed the Collete and attached a marker to the side of the spindle with tape. And I stuck a piece of paper to the bed so that I draw the toolpath.
I homed the spindle to touch paper.
I edited the "axis.ngc" file to remove the "M3 S10000" that is responsible for turning on the spindle at 10000RM then started executing the toolpath.
The tip of the marker went up when it plunged into the sheet so I removed all the instruction responsible for this "G0 Z3.0" and "G1 F100.0 Z[-#<depth>]" rehomed to a new position a restarted the file.
As the marker was fixed in Z positions and didn't have a spring - as the cutter in the vinyl cutter - so this will probably happen if the surface is uneven or during motion in general.
I stopped the job as the Z position wasn't down enough to complete the path and rehomed the Z to a proper position.
Now to try cutting and learn about toolpaths, we tried to model a circle and create a toolpath and see its execution.
So, in Inkscape I drew a circle measuring 100mm in diameter, resized the document size and saved it to SVG.
Then in Fabmodules, I opened the SVG file and chose the "G-code (.nc)" processor and "1/8 mill" and calculated the toolpath using the default settings.
I found that the toolpath will makes 4 passes in the stock so I changed the "cut depth" and "stock thickness" so that it can cut deeper than the 11mm stock and changed the "tool diameter" to 5mm
I then saved the toolpath to a ".ngc" that is accepted by LinuxCNC which then I opened it in it and I ran the file.
When I ran the file I noticed that the spindle doesn't reach its target RPM before cutting so when I reviewed the g-code file I noticed that there is a "G04 P1" which is a "Dwell" command that makes the controller waits for 1 seconds but when the gantry went down. So I edited it to wait for 10 seconds by modifying it into "G04 P10"
Asem created a circular part in Fusion 30 and created a toolpath with one pass. So I edited the g-code to ad a 10 seconds dwell "G04 P10", homed the machine axes into a suitable position and started it.
We found out that there was problem with the toolpath as it plunged in and out in the same point so there was a point that wasn't milled properly.
Then I tried to edit speeds a bit as we thought we went to high so I did the same but when I ran it I thought midway that the end-mill plunged far down so I panicked and hit the physical "E-STOP" button and took a closer look and then re-powered the machined but then the end-mill broke. I think this was because the spindle stopped and didn't pick-u speed when restarted and couldn't mill when the gantry moved.
In Fab Lab Egypt we had a laser-cut deer head over the fireplace.
I wanted to create a bigger version of it using the CNC router; So I searched for the source and found this.
I started by converting the DXF files of the design to PNG so that I can use them as a reference when designing.
I created a new part file in Inventor and imported the PNG file in the sketch and Created a "Center Line" to be a base for mirroring the sketched geometry.
Then started sketching the deer head using "Line" and "Spline" tools
Then set a vertical and a horizontal dimensions to check the size of the drawing.
Then scaled the curves by 1.5 scale factor.
Afterwards, I began designing the T-bone pattern for the slot at the bottom
Then, mirrored the shape along the center line.
Then removed some extra curves and modified the extrusion I made earlier.
I then repeated the process for one of the holding pieces.
Created a new assembly file and placed the two pieces together.
I then repeated the same process for the another piece
In the assembly file, I continued placing the pieces and assembling
I chose to use Autodesk HSM as it's tightly integrated with Inventor work-flow and I found that it gave me good understanding of machining techniques.
Started by assembling the parts on a same level and nesting them to decrease the space.
By pressing "Setup" from the "CAM" toolbar, I was able to access the "Stock" tab to be able to setup the job.
I chose the "Relative Box Mode" and zeroed all the offsets.
And from the "Setup" tab, I chose the cursor to set a "Stock Point" and clicked upper bottom left corner.
Then I started a new "2D Contour" process and chose all the bottom loops.
By pressing "OK", I was propmpted to chose a tool so I chose a 6mm tool I setup earlier.
I then chose to insert tabs and modified the values a bit.
I then changed the "Bottom Height" value to -1mm to make sure that the cut go all through.
I also changed the "Maximum roughing stepdown" down to 1mm.
Then finished the editing.
I then edited the job to modify the feed rate to something suitable for milling in MDF.
Then added a "Manual NC" job to add a 6sec interval before beginning so that the spindle has time to reach full speed first. I then moved this job to be first.
Then clicked "Post Process" to export the G-code
To prevent the machine from from moving obliquely to the zero point as this caused the endmill to break before due to uneven surface, I commented out the G53 line.
I started the machine and powered up the motors; Then in LinuxCNC loaded the .ngc file, turned of the software's emergency stop.
I then resetted the home axises to touch the stock on the bottom left corner then jogged the endmill up away from the stock; Then started the job.
As the sacrificial layer wasn't quite surfaced, the parts needed some finishing. Then assembled them.