2-D post processing for manufacturing, specialized in Printed Circuit Board fabrication on CNC routers.
Go to file
Kamil Sopko e94fe513b3 README.md edited online with Bitbucket 2016-02-20 12:26:46 +00:00
FlatCAM_GTK Convertion to Qt. Major refactoring. 2014-06-13 15:21:11 -04:00
bugs Gerber support for single quadrant arcs (G74). 2014-11-20 21:43:32 -05:00
descartes Fixed g-code arc parse/plot 2014-01-08 01:46:50 -05:00
doc Added delete button in drawing toolbar. 2015-01-01 15:41:50 -05:00
sandbox Added diagnostics script. 2015-10-19 10:49:52 -04:00
share Added intersection tool to Drawing Tool. 2015-02-06 16:10:15 -05:00
tests Canvas performance test scripts. 2015-12-31 23:28:23 -05:00
.gitignore Ignore tests/tmp. 2015-10-31 19:01:56 -04:00
DblSidedTool.py Fixes #178. Use list instead of tuple of points. 2015-12-02 09:36:58 -05:00
FlatCAM.py Initial implementation of console. 2014-09-13 17:29:07 -04:00
FlatCAMApp.py implement some new shell commands, 2016-02-20 11:38:35 +01:00
FlatCAMCommon.py Added Feed Method for clearing polygon. Some minor correction to Geometry.plot() 2014-12-07 14:53:33 -05:00
FlatCAMDraw.py Pan view test. 2015-12-05 00:14:00 +05:00
FlatCAMGUI.py Bug fixed: the Toolchange Z parameter is not saved in the program/project defaults. 2016-02-16 22:47:21 +02:00
FlatCAMObj.py Solved issue #188: Order of the drill bits in Gcode generation from Excellon file 2016-02-14 07:40:32 +02:00
FlatCAMProcess.py Option to override user's defaults. Needed for unit testing. 2015-10-28 12:00:56 -04:00
FlatCAMShell.py Major work on the command line tool. Version check on the new website. 2014-09-21 21:51:50 -04:00
FlatCAMTool.py More circular import fixes. 2015-09-06 16:17:31 -04:00
FlatCAMWorker.py Cleanup. And fixes #148. 2015-09-11 14:45:08 -04:00
GUIElements.py Fixes #177 2015-11-30 12:54:13 -05:00
LICENSE Licence and readme. 2015-01-03 11:36:15 -05:00
MeasurementTool.py More circular import fixes. 2015-09-06 16:17:31 -04:00
ObjectCollection.py Wait for object availability by subscribing to signal. Fixes #145. 2015-10-02 14:51:54 -04:00
ObjectUI.py Default value for depth/cut now positive. Added note to tooltip. 2015-11-01 18:11:17 -05:00
PlotCanvas.py PlotCanvas now stores reference to app. 2016-01-03 16:38:24 -05:00
README.md README.md edited online with Bitbucket 2016-02-20 12:26:46 +00:00
camlib.py implement del_polygon from geometry 2016-02-20 10:56:32 +01:00
camlib.pyc View, delete, re-plot items 2014-01-09 22:14:46 -05:00
cirkuix.pyc View, delete, re-plot items 2014-01-09 22:14:46 -05:00
make_win32.py Added Win-32 build script. 2015-10-18 19:40:48 -04:00
requirements.txt Add comments to requirements.txt 2015-06-30 20:40:06 +01:00
setup_ubuntu.sh Added svg.path to ubuntu installation script. 2015-12-29 16:37:52 -05:00
svgparse.py SVG rectangles with rounded corners. 2015-12-26 21:15:55 -05:00
termwidget.py Major work on the command line tool. Version check on the new website. 2014-09-21 21:51:50 -04:00
upgrade_geos.sh Custom RTree wrapper. FlatCAMRTree and FlatCAMRTreeStorage. 2014-12-28 18:06:54 -05:00

README.md

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.

#!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