FlatCAM: 2D Computer-Aided PCB Manufacturing ============================================ (c) 2014-2015 Juan Pablo Caram FlatCAM is a program for preparing CNC jobs for making PCBs on a CNC router. Among other things, it can take a Gerber file generated by your favorite PCB CAD program, and create G-Code for Isolation routing. ### my own shell script ``` #!python new set_sys units MM # ######### BOTTOM layer # LOAD open_gerber /path/to/Gerber/Loop_contour.gm1 -outname BCu_margin open_gerber /path/to/Gerber/Loop_copperBottom.gbl -outname BCu open_excellon /path/to/Gerber/Loop_drill.txt -outname BCu_drills #MIRROR mirror BCu -box BCu_margin -axis X mirror BCu_drills -box BCu_margin -axis X #ALIGNHOLES aligndrill BCu_margin -dia 3 -box BCu_margin -grid 10 -gridoffset 5 -axisoffset 0 -axis X #CUTOUT isolate BCu_margin -dia 3 -overlap 1 exteriors BCu_margin_iso -outname BCu_margin_iso_exterior delete BCu_margin_iso geocutout BCu_margin_iso_exterior -dia 3 -gapsize 0.2 -gaps 4 #ISOLATE TRACES exteriors BCu_margin -outname BCu_exterior isolate BCu -dia 0.8 -overlap 1 #JOIN TRACES and basic exterior join_geometries BCu_join_iso BCu_iso BCu_exterior #CNCJOBS drillcncjob BCu_drills -tools 100,101,102,103,104 -drillz -2 -travelz 2 -feedrate 5 -outname BCu_drills_0.8 drillcncjob BCu_margin_aligndrill -tools 1 -drillz -2 -travelz 2 -feedrate 5 -outname BCu_drills_3 cncjob BCu_join_iso -tooldia 0.6 #cncjob BCu_margin_cutout -tooldia 3 cncjob BCu_margin_iso_exterior -tooldia 3 #GENERATE GCODE write_gcode BCu_join_iso_cnc /path/to/Gerber/output/Loop-BCu.pngc write_gcode BCu_margin_iso_exterior_cnc /path/to/Gerber/output/Loop-BCu-Margin.ngc write_gcode BCu_drills_0.8 /path/to/Gerber/output/Loop-BCu.drl_0.8.ngc write_gcode BCu_drills_3 /path/to/Gerber/output/Loop-BCu.drl_3.ngc # ######### TOP layer # LOAD open_gerber /path/to/Gerber/Loop_contour.gm1 -outname FCu_margin open_gerber /path/to/Gerber/Loop_copperTop.gtl -outname FCu open_excellon /path/to/Gerber/Loop_drill.txt -outname FCu_drills #ALIGNHOLES aligndrill FCu_margin -dia 3 -box FCu_margin -grid 10 -gridoffset 5 -axisoffset 0 -axis X #CUTOUT isolate FCu_margin -dia 3 -overlap 1 exteriors FCu_margin_iso -outname FCu_margin_iso_exterior delete FCu_margin_iso geocutout FCu_margin_iso_exterior -dia 3 -gapsize 0.2 -gaps 4 #ISOLATE TRACES exteriors FCu_margin -outname FCu_exterior isolate FCu -dia 0.8 -overlap 1 #JOIN TRACES and basic exterior join_geometries FCu_join_iso FCu_iso FCu_exterior #CNCJOBS drillcncjob FCu_drills -tools 100,101,102,103,104 -drillz -2 -travelz 2 -feedrate 5 -outname FCu_drills_0.8 drillcncjob FCu_margin_aligndrill -tools 1 -drillz -2 -travelz 2 -feedrate 5 -outname FCu_drills_3 cncjob FCu_join_iso -tooldia 0.6 #cncjob FCu_margin_cutout -tooldia 3 cncjob FCu_margin_iso_exterior -tooldia 3 #GENERATE GCODE write_gcode FCu_join_iso_cnc /path/to/Gerber/output/Loop-FCu.pngc write_gcode FCu_margin_iso_exterior_cnc /path/to/Gerber/output/Loop-FCu-Margin.ngc write_gcode FCu_drills_0.8 /path/to/Gerber/output/Loop-FCu.drl_0.8.ngc write_gcode FCu_drills_3 /path/to/Gerber/output/Loop-FCu.drl_3.ngc ```