====== Wood nameplate for montessori bed: Giulio ====== ===== Intro ===== Some time ago, my friend Cristian started a job: a montessori bed for the son of our friend Teresa, Giulio. I have decided to complete the nice work of Cristian with a name plate CNC crafted, quite a challenge because a big size of the object would have been 200 x 80 mm and i have only a small desktop CNC, the FABtotum personal fabricator. After some "dry run" tests in order to check the real travel limit of X axis, i done the job with success. {{:en:tinkering:cnc:wooden_name_plate_giulio_in_place.jpg?300|}} {{:en:tinkering:cnc:wooden_name_plate_giulio_in_place-detail.jpg?300|}} ===== Workflow ===== ==== Designing the plate in Inkscape ==== - Designed the plate in [[http://inkscape.org/|Inkscape]] and placed near the origins (lower left corner), the units and the rulers are in millimeteres - Selected the text of the inscription and from menu: Path -> Object to Path, this convert the text into lines used by CAM software (Makercam, in this case) to recognize the areas - Saved the design using: Save as... and select Plain SVG {{:en:tinkering:cnc:wooden_name_plate_giulio_inkscape1.png?300|}} ==== Generating the path (GCODE) with Makercam ==== * Open the website http://www.makercam.com/ * Set the centimeters instead inch as default unit {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam1_centimeters.png?300|}} * In menu select Edit -> Edit preferences {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam2_edit_preferences.png?300|}} * Set the DPI to 90, as suggested for import a drawing for Inkscape (default is 75, for Illustrator) {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam3_90_dpi.png?300|}} * Open the plain SVG saved with Inkscape {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam4_opened_pure_svg.png?300|}} * Select and delete unwanted object (e.g. squares used as spacers) {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam5_delete_unwanted_object.png?300|}} * Select the inscription to be engraved, the inscription must be red {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam6_selected_the_inscription_to_carve.png?300|}} * From menu select CAM -> pocket operation {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam7_pocket_inscription.png?300|}} * I have used this parameters: * name: scritta (translation: inscription) * tool (mm): 1 (this is the mill diameter) * target depth (mm): -2 (2 mm engraving) * safety height (mm): 10 (before move the tools, lift it 10 mm) * step down (mm): 0.25 (in each pass remove 0.25 mm of material) * feedrate (mm/minute): 400 * plunge rate (mm/minute): 100 {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam8_inscription_pocket_parametrers.png?300|}} * Select the screw holes templates * From menu select CAM -> pocket operation {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam7_pocket_inscription.png?300|}} * I have used this parameters: * name: segni per viti (translation: signs for screws) * tool (mm): 1 (this is the mill diameter) * target depth (mm): -1 (1 mm engraving) * safety height (mm): 10 (before move the tools, lift it 10 mm) * step down (mm): 0.25 (in each pass remove 0.25 mm of material) * feedrate (mm/minute): 400 * plunge rate (mm/minute): 100 {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam9_screws_template_parameters.png?300|}} * Select the external shape of the drawing, the border * From menu select CAM -> profile operation {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam10_cam_profile_operation.png?300|}} * I have used this parameters: * name: taglio pezzo (translation: cut piece) * tool (mm): 1 (this is the mill diameter) * target depth (mm): -7.5 (7.5 mm cutting, for 8 mm stock is safe, the worked piece must be separated from stock using a cutter blade but it's safe for milling bit) * safety height (mm): 10 (before move the tools, lift it 10 mm) * step down (mm): 0.25 (in each pass remove 0.25 mm of material) * feedrate (mm/minute): 400 * plunge rate (mm/minute): 100 {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam11_profile_cutout_parameters.png?300|}} * From menu select CAM -> calculate all {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam12_cam_calculate_all.png?300|}} * From menu select CAM -> export gcode {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam13_cam_export_gcode.png?300|}} * Select all calculated toolpaths, export and save the GCODE file on PC. This is the complete workout GCODE and must used only after verified that the cut is small enough for the CNC {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam14_exported_all_gcodes.png?300|}} * repeat, from menu select CAM -> export gcode {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam13_cam_export_gcode.png?300|}} * From calculated toolpaths, select the cutout toolpath only, this can be useful to check if the tool can do the work for the entire width of the machine without triggering the limit switches {{:en:tinkering:cnc:wooden_name_plate_giulio_makercam15_exported_cut_only_gcode.png?300|}} * The GCODE export is ended, maybe useful save the makercam svg + metadata of the paths, from menu File -> Save SVG file ==== Post process the GCODE ==== Now, the GCODE is available, Makercam has produced the GCODE for GRBL parser but i have a [[https://github.com/MarlinFirmware/Marlin|Marlin]] derived CNC (3DPrinter firmware derived), the [[http://fabtotum.com/|FABtotum Personal Fabricator]]. I've written a GCODE post processor that eliminate the weird behaviour (caused from not understanded GCODEs) and optimize the working speed, accelerating the travels. It's called [[https://github.com/alessiocavalieri/MakerCAM2FABtotum|MakerCAM2FABtotum]] and it's available on GitHub. For processing the produced gcode, for example you can do: # ./post_process.sh input.gcode 12000 And the script produce an optimized GCODE with a configured spindle speed @ 12000 RPM. Now you can then load the _postprocessed.gcode files into the FABtotum object manager and use it for milling. I have run the cutout only GCODE for first in order to check if the tool can do the work for the entire width of the machine without triggering the limit switches; the cutout job is the largest job, the other job may go well. It's a Linux bash script but you can run it also in Windows, watch the following video for a quick tutorial. {{youtube>large:qhC9xdRFaOA}} ===== Photos ===== {{:en:tinkering:cnc:wooden_name_plate_giulio_milling1.jpg?300|}} {{:en:tinkering:cnc:wooden_name_plate_giulio_milling2.jpg?300|}} {{:en:tinkering:cnc:wooden_name_plate_giulio_height_80mm.jpg?300|}} {{:en:tinkering:cnc:wooden_name_plate_giulio_on_workbench.jpg?300|}} {{:en:tinkering:cnc:wooden_name_plate_giulio_in_hand1.jpg?300|}} {{:en:tinkering:cnc:wooden_name_plate_giulio_in_hand2.jpg?300|}} {{:en:tinkering:cnc:wooden_name_plate_giulio_in_hand3.jpg?300|}} {{:en:tinkering:cnc:wooden_name_plate_giulio_painted.jpg?300|}} {{:en:tinkering:cnc:wooden_name_plate_giulio_attached1.jpg?300|}} {{:en:tinkering:cnc:wooden_name_plate_giulio_in_place-detail.jpg?300|}} ===== Resources ===== * [[en:tinkering:cnc:woodnameplateformontessoribedgiulio|Wiki]] * [[https://goo.gl/photos/pSFv5K9ukhEaPBMz6|G+ photo album]] * [[http://forum.fabtotum.cc/showthread.php?2681-Milling-experience-shared-a-challenge-200x80-mm-large-object-milling|Forum post]]