Manual FLATCAM

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 31

MANUAL FLATCAM

1. INTRODUCTION
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 GCode for Isolation routing.
2. INSTALLATION
2.1. WINDOWS INSTALLER
Download the installer from the repository and run it in your machine. It includes everything
you need.
2.2. UBUNTU
FlatCAM should work on most Linux distributions but Ubuntu has been chosen as the test
platform.
There are several dependencies required to run FlatCAM. These are listed in the following
section. Before attempting a manual installation, try running the provided setup script
setup_ubuntu.sh that will download and install required packages.
2.3. OS-X
See manual instructions below.
2.4. MANUAL INSTALLATION
2.4.1. Requirements

Python 2.7 32-bit

PyQt 4

Matplotlib 1.3.1

Numpy 1.8

Shapely 1.3

GEOS
RTree

SpatialIndex

These packages might have their own dependencies.


2.4.2. Linux
Under Linux, most modern package installers like yum or apt-get will attempt to locate and
install the whole tree of dependencies for a specified package automatically. Refer to the
provided setup script setup_ubuntu.sh for the names and installation order.
Once the dependencies are installed, download the latest .zip release (or the latest source,
although it is not garanteed to work), unpack it, change into the created folder and run:

Python FlatCAM.py
2.4.3. Windows
An easy way to get the requirements in your system is to install WinPython. This is a standalone
distribution of Python which includes all of FlatCAMs dependencies, except for Shapely and
RTree. These can be found here: Unofficial Windows Binaries for Python Extension Packages.
Once the dependencies are installed, download the latest .zip release (or the latest source,
although it is not garanteed to work), unpack it, change into the created folder and run:
Python FlatCAM.py
2.4.4. OS-X
Start by installing binary packages: pyqt, geos, spatialindex. One way to do this is using
Homebrew:
Brew install name_of_package
Now you can install all Python packages (numpy, matplotlib, rtree, scipy, shapely, simplejson)
using pip:
Pip install name_of_package
Finally, download the latest FlatCAM .zip package or source code. Change into its directory and
launch it by running:
Python FlatCAM.py

3. BASICS
3.1. SOURCE FILES
Supported source files are:

Gerber: Typically define copper layers in a circuit board.

Excellon: (drill file): Contain drill specifications, size and coordinates.

G-Code: CNC machine instructions for cutting and/or drilling.

These source files can be loaded by selecting FileOpen Gerber, FileOpen Excellon
orFileOpen G-Code respectively. The objects created from source files are automatically
added to the current project when loaded.
3.2. OBJECTS AND TASKS
Data in FlatCAM is in the form of 4 different kinds of objects: Gerber, Excellon, Geometry and
CNC Job. Gerber, Excellon and CNC Jos objects are directly created by reading files in Gerber,
Excellon and G-Code formats. Geometry objects are an intermediate step available to
manipulate data. The diagram bellow illustrates the relationship between files and objects. The
arrows connecting objects represent a sub-set of the tasks that can be performed in FlatCAM.

3.3. CREATING, SAVING AND LOADING PROJECTS


A project is everything that you have loaded, created and set inside the program. A new project
is created every time you load the program or run FileNew.
By running FileSave Project, FileSave Project As or FileSave a Project Copy you
are saving everything currently in the environment including project options. FileOpen
Project lets you load a saved project.
3.4. NAVIGATING PLOTS
Plots for open objects (Gerber, drills, g-code, etc) are automatically shown on screen. A plot
for a given can be updated by clicking Update Plot in the Selected tab, in case any
parameters that would have changed the plot have been modified.
Zooming plots in and out is accomplished by clicking on the plot and using the mouse scroll
wheel or hitting one of the following keys:

1: Fits all graphics to the available plotting area.

2: Zooms out

3: Zooms in

When zooming in or out, the point under the cursor stays at the same location.
To scroll left-right or up-down, hold the shift or control key respectively while turning the
mousescroll wheel.

4. COMMON PROCEDURES
This chapter is a tutorial-style introduction to the most common operation in FlatCAM.
4.1. ISOLATION ROUTING
Isolation routing is the operation of cutting copper around traces for electrical isolation. For
details see the Isolation Routing section in the Gerber Object reference.
1.

Open a Gerber file: FileOpen Gerber

The file is automatically analyzed, processed and plotted.


2.
Enter the diameter of the tool you will use for isolation routing and hit Generate
Geometry. The units are determined by the project setting and are shown on the bottom right of
the screen. If you want to work using different units, go to Options, Project Options (Combo
box), Units. This will change the units for the whole project.

This creates a new geometry object listed under Project with the same name as the Gerber
object with an _iso postfix, and its options are shown in Selected. Zoom into the plot (click
over the plot and use the 2 and 3 keys to zoom in and out) to inspect the results.

3.
Create a CNC job from the new geometry by indicating the desired parameters as
shown in the figure above and explained below:

Cut Z: The depth of the tool while cutting. -2 mils or -0.05 mm are a typical value for isolation
routing.
1.
Travel Z: The height above the board at which the cutting tool will travel when not
cutting copper.
2.
Feedrate: The speed of the cutting tool while cutting in inches/minute of mm/minute
depending on the project settings.
3.
Tool diam.: The cutting tool diameter. Use the same value as when creating the isolation
routing geometry in step 2.
A CNC Job object has been added to your project and its options are shown in the Selected
tab. Tool paths are shown on the plot. Blue are copper cuts, while yellow are travelling (no
cutting) motions.

Click on the Export button under Export G-Code. This will open a dialog box for you to
save to a file. This is the file that you will supply to your CNC router.
4.2. WIDE ISOLATION ROUTING
Note
This description is obsolete. In the current version of FlatCAM, isolation routing with multiple
tool width is automatically calculated.
1.
Go to the Project tab and double-click on the isolation geometry object that you created
for the 1st pass. In the Selected tab, change its name and hit Enter.
2.
Go back to Project and double-click on the Gerber object. This takes you back to step 1
of tutorial 4.1. We will generate geometry for a second pass in the same way but with a larger
offset. If Tool diam reads 0.016, enter 0.016*2.5 instead (0.016*3 would put the path 3 times as
far which provides no overlap with the previous pass. By setting it to 0.016*2.5 you ensure that
there is no copper left on the board and a cleaner finish). Click on Generate Geometry just like
in tutorial 4.1 and you should get something like the figure below.

3.
Generate a CNC job like you did in part 3 of tutorial 4.1. You will end up with 2 GCode files, one for each pass.
4.3. CNC JOBS FOR DRILL FILES
For details see the Excellon Object reference section.
1.
Open a drill (Excellon) file: FileOpen Excellon. The drill file will be drawn onto the
plot and its options form should show up.
2.
A drill file will usually contain different tools (drill diameters). You can choose to create
a CNC job for each individual tool or bundle some of the tools together in the same job (in case
you did not intend to use drill bits of different diameters). Click on Choose under Create CNC
Job to open a selection window with the list of tools. Each has the format id: diameter, where
the diameter is in the projects units. Check the boxes by the tools you want to include in the
job. The comma-separated list of tools should appear in the Tools entry box (Note: If you know
the ids of the tools you can type the list yourself).

Note
UPDATE: In the current version of FlatCAM, the tool list is automatically shown and the user
can no longer type the desired list of tool. The selection is made directly on the list.
3.
Adjust Drill Z (Drilling depth), Travel Z (Height for X-Y movement) and Feed rate (Zaxis speed in project units per minute) to your desired values, and click on Generate.

A CNC job will be created and the tool-path will be shown on the screen. Click on Export GCode as explained in tutorial 4.1 to save the generated CNC job to G-Code.
4.4. 2-SIDE PCB
The main idea behind this process is to ensure that when you turn your board around to mill the
bottom side of your PCB it will be perfectly aligned with the top side.
The mechanical alignment is accomplished by using alignment holes/pins. These are holes on
your board and on the milling machine bed (typically a board of wood, known as sacrificial
layer). Pins are used to align the holes on the board to the holes on the sacrificial layer. The
holes are always pairs of holes that are symmetrical about a mirror axis. This ensures that when
you turn your board around, the board can be aligned using the same alignment holes as before.

The bottom layer must be flipped (mirrored) around the same axis that was used for the
alignment holes.
The placement of the mirror axis can be totally arbitrary. You just need to make sure that after
flipping the board around, it will still fit on the milling machine bed. Same for the alignment
holes. It doesnt matter much where you put them. Perhaps if you have a large bare copper
board and you plan on reusing the alignment holes for different projects that will be made out of
this same bare board, you might want to define the location of the axis and holes, and record
them for later use.

FlatCAM takes care of the rest. To ensure the symmetry of the alignment holes, FlatCAM asks
you to specify the holes on only one side of the mirror axis and it will create the mirror copies
for you. It will also mirror the bottom (Gerber) layer around the same axis.

The process of making the double-sided board consists of creating the CNC Job Object for the
top layer, the mirrored bottom layer and the alignment holes using FlatCAM. Then you can run
the alignment holes job (you must drill through the board and into the sacrificial layer) and the
top layer job. You must then turn the board around, align it using the alignment holes (fit some
kind of pin in the holes) and run the bottom layer job.
Here is how to use FlatCAM to generate the required files:
1.

Open the Gerber files for the top and bottom layers of your PCB.

2.

Start the Double-sided PCB T by selecting ToolsDouble-sided PCB tool.

The tool has the following options:

Bottom Layer: Indicates which layer is the bottom layer, which needs to be flipped.

Mirror axis: Around which axis, X or Y, we want to mirror the layer.

Axis location: How we want to specify the location of the axis.

Point/Box: Specifies the location of the axis. It depends on the Axis location setting:
o

Point: A single point specifies where the axis is, and you input the coordinates of the
point in the format (x, y). For example, if Mirror Axis is set to X and Point is set to (1.0,
-1.0) the axis will be horizontal at y=1.0 (The x coordinate is ignored).
Box: If you have already defined the boundary of your PCB you may want the axis to
be exactly in the middle of that rectangle. The boundary must be some geometry object
defined in the project and can be selected in the combo box appearing in the Point/Box
field.

Alignment holes: These can aid in placing the board at the exact position after turning it
over for the bottom side job. These holes must be symmetrical to the mirror axis. You only need
to specify the location of the holes on one side of the mirror axis and the program will create the
mirror copy. Input the coordinates of the holes in the following format: (x1, y1), (x2, y2), etc.

Drill diameter: The diameter of the drill for the alignment holes.

Note
You dont have to manually type coordinates of points. Clicking on the plot automatically
copies the coordinates to the clipboard in (x, y) format and these can be pasted into the input
boxes.
3.
Create the mirror image of the bottom layer by clicking on Create Mirror. This will
create a new Gerber object for the project. You can work with this object, create isolation
routing and a CNC job as it has been show in the previous tutorials. You may want to hide or
remove the layer for the top side to ease the visualization.

4.
Create the alignment hole drill object by going back to the Double-sided PCB tool and
clickingCreate alignment drill. This will create an Excellon Object (drill job) as specified and a
CNC Job Object can be created for it as has been shown for the previous examples.

4.5. COPPER AREA CLEAR


For details see the Paint Area section in the Geometry Object reference.
Removing large areas of copper is necessary when trying to avoid shorts due to dust, rust, etc, or
in RF circuits, where the remaining unused copper is just unwanted parasitics. This tutorial
shows how to eliminate all copper that is not specified in the Gerber source, while still being
able to selectively choose what to clear.

1.

Open a Gerber file as explained in previous tutorials.

2.
In the Selected tab for the Gerber Object, under Non-copper regions, provide Boundary
Marginand click Generate Geometry. This creates a new Geometry Object containing a
bounding box around the Gerber object, with the given margin. Then subtracts the Gerber object
from the bounding box, resulting in a Geometry object with polygons covering the areas without
copper.

3.
Now we can choose which polygon we want to paint, this is, draw a tool path inside it
to cover all its surface. In the Selected tab for the newly created Geometry Object, under Paint
Area, provide the following:
1.

Tool diam.: The diameter of the tool that will be used to cut the area.

2.
Overlap: Fraction of the tool diameter by which to overlap each passing cut. The default
value of 0.15 is the minimum to ensure no copper is left in 90 degree turns of the tool path.
3.
Margin: Distance for the tool to stay away from the polygon boundary. This can be used
to ensure that a large tool does not touch copper edges that have or will be cut by a smaller more
precise tool.
4.
Click on Generate and then click on the plot inside the polygon to be painted. This will
create a new Geometry Object with the desired tool paths.

4.6. BOARD CUTOUT


To cut the PCB to the desired shape and remove it from a larger blank PCB, a tool path that
traces the board edge can be created. Gaps to hold the board until the job is complete can be
placed along the edge.
This tutorial describes how to create rectangular cutouts with 2 or 4 gaps.
1.

Open a Gerber file and find the Board Cutout section in the Selected tab.

2.
Specify a Margin. This will create a rectangular cutout at the given distance from any
element in the Gerber. Specify a Gap Size. 2 times the diameter of the tool you will use for
cutting is a good size. Specify how many and where you want the Gaps along the edge, 2 (top
and bottom), 2 (left and right) or 4, one on each side. Click on Generate Geometry. The figure
below shows an example of the results.

3.

Create a CNC job for the newly created geometry as explained in earlier tutorials.

Note
Board cutouts of arbitrary shape and arbitrary number, location and size of gaps are possible.
Visit the programs web page for examples and tutorials.
4.7. BED FLATTENING
Most often a sacrificial layer (e.g. wood) is used between the machine bed and the PCB so when
drilling and cutting the machine is not hit by the tool. In order to have a completely flat surface
for the PCB, the sacrificial layer is flattened by the machine. This tutorial shows how to create a
tool path for this purpose.
1.

Open a Gerber file and locate the Bounding Box section in the Selected tab.

2.
Specify a Margin (distance of the bounding box from any element in the Gerber) and
whether you want rounded corners. Click Generate Bounding Box.

Make sure your blank PCB will fit in the bounding box.

3.
In the Selected tab for the newly created geometry locate the Paint Area section. Specify
thediameter of the tool you will use, how much (fraction of the tool width) each pass will
overlapeach other, and a Margin (although typically not needed and set to 0.0 in this case.)

4.
Click on Generate, and you will be asked to click inside the polygon inside which to
create the tool path. Click inside the boundary we just created.

5.

Create a CNC job for the newly created geometry as explained in earlier tutorials.

Note
Bed flattening of arbitrary shape are possible. Visit the programs web page for examples and
tutorials.

5. OBJECT REFERENCE
FlatCAM Objects are the documents FlatCAM operates with. For an introduction see Objects
and Tasks.
5.1. GERBER OBJECT
5.1.1. Format
The Gerber Format specifies polygons. Shapes that have an area. Most commonly copper
regions in a specific layer of a PCB. It is also used for solder masks, solder paste and artwork.
A short Gerber file looks like this:

G04 This line is a comment an is ignored.*


G04 Coordinate format specification:*
%FSLAX25Y25*%
G04 Set units to inches:*
%MOIN%
G04 Define an aperture:*
%ADD10C, 0.100*%
G04 Change polarity to DARK:*
%LPD*%
G04 Select the the previously defined aperture:*
D10*
G04 Set interpolation mode to linear:*
G01*

G04 Move to (0, 0) without drawing:*


X0Y0D02*
G04 Draw to (5, 5) using aperture 10:*
X500000Y500000D01*
G04 Enf of file:*
M02*

5.1.2. Support
The Gerber File Format is fully supported with the following exceptions as of version 8.2:

Holes in standard apertures are not supported.

Interpolation is always done with a circular aperture even if a non-circular aperture is


chosen. An equivalent size is calculated from the dimensions of the aperture and used as the
diameter of a circular aperture. This is unlikely to ever affect a gerber for a PCB. This limitation
does not affect flashing.

Step and Repeat (SR) is not supported.

5.1.3. Creation
Gerber Objects are created by opening a Gerber File. This can be done via:

The FileOpen Gerber menu option

The FileOpen Recent menu option

The open_gerber command in the Shell Command Line Interface.

5.1.4. Operations
5.1.4.1. Isolation Routing
Parameters:

Tool dia d: The diameter of the cutting tool.

Width (# passes) n: Width if the isolation gap in number of tool diameters.

Pass overlap : Fraction of the tool diameter to overlap each pass.

Generates a Geometry Object describing the tool path to cut outside the perimeter of the
polygons described in the Gerber file. The first tool path is at a distance D=d/2 outside the
polygon. If n>1 then there will be n1 additional tool paths at a distance D=d(1) from the
previous pass.
Isolation routing is available in the GUI and via the isolate command in the Shell Command
Line Interface.

Isolation Routing example with n=2.


5.1.4.2. Board Cutout
Parameter:

Tool dia d: The diameter of the cutting tool.

Margin m:

Gap size g:

Gaps: Takes the following possible values:

2 (T/B): Two gaps, at top and bottom sides.


2 (L/R): Two gaps, at left and right sides.
4: Gaps on all 4 sides.

Generates a Geometry Object with a rectangular tool path around the geometry in the Gerber
Object. The tool path includes gaps that will prevent the board being cut from completely
detaching from the parent board while cutting.
The Board Cutout operation is available in the objects GUI or via the cutout command in the
Shell Command Line Interface.

Board Cutout operation dimensions.


5.1.4.3. Non-copper Regions
Parameters:

Boundary Margin m: Distance from the smallest possible bounding box.

Rounded Corners:

Generates a Geometry Object with polygons of the empty areas in the Gerber Object, this is,
where there is no copper.

Non-copper region generation. (a) Example with zero margin. (b) Example with non-zero
margin.
The Non-copper Regions operation is available through the objects GUI.
5.1.4.4. Bounding Box
Parameters:

Boundary Margin m: Distance from the smallest possible bounding box.

Rounded Corners: If set, then the corners will be rounded with a radius m.

Generates a Geometry Object with a rectangular path around the geometry in the Gerber Object
at a distance m from the smallest possible bounding box. If using rounded corners, their
curvature radius will also be m.

Bounding box generation for Gerber Objects. (a) Without rounded corners. (b) With rounded
corners.
The Bounding Box operation is available through the objects GUI.
5.1.4.5. Scale
Parameters:

2.54.

Factor k: Factor by which to multiply the geometric features of the object. Example:

Modifies the Gerber Object by changing its dimensions. The geometry in the Gerber Object is
multiplied by the given factor. E.g. if factor is k=2, the geometry will be doubled in size.
Consequently, any coordinate point that was originally at a distance d from the origin, will be at
2d.

The scale operation is available in the GUI and via the scale command in the Shell Command
Line Interface.
5.1.4.6. Offset
Parameters:

Vector v: Coordinate pair by which to translate the geometric features of the object.
Example:(1.0, -2.0).
Modifies the Gerber Object by translating its coordinates. All coordinates in the Gerber Objects
are added to the given vector. I.e. if v= (xv, yv) then all points (x,y) will be translated to
(x+xv,y+yv).
The offset operation is available in the GUI and via the offset command in the Shell Command
Line Interface.
5.1.4.7. Follow
Note
The Follow operation is not fully functional yet. For an overview on how it currently operates,
visit the blog post Tracing the Silkscreen with FlatCAM.
5.1.4.8. Mirror
Parameters:

Mirror Axis: Axis around which to mirror the objects geometry. I.e. X or Y.

Axis Location: The location of the mirror axis can be specified in one of two ways:

A Point through which the the axis passes. E.g. (1.0, -2.0), then if the axis is X then it is
a horizontal line passing through y=2.0. If its the Y axis, it is a vertical line passing
through x=1.0. This option is only available in the Double-Sided PCB Tool.
A Rectangle which is divided by the axis in half. In this case, a Geometry Object
containing a single rectangle is specified.

Mirrors the geometry in the object around a specified axis.


This operation is available via the Double-Sided PCB Tool (see 2-side PCB) and the mirror
command in the Shell Command Line Interface.
5.2. EXCELLON OBJECT
5.2.1. Format
The Excellon File Format specifies how a circuit board should be drilled.
Excellon files are text files with tools and holes directives. An short Excellon file looks like this:
; This line is a comment and is ignored
; The next line starts the "header":
M48
; Units and number format:
INCH,LZ
; One tool is defined with diameter 0.04 inches,

; drill rate of 300 inches/minute and 55000 RPM.


T1C.04F300S55
; End of header, M95 or %, and beginning of body:
M95

; Use tool 1 defined in the header


T1
; Drill at points (123.45, 234.5) and (12.345, 234.5):
X12345Y23450
X012345Y234500
; End of program;
M30
Unfortunately, the format is not very well specified and there is room for ambiguity. Several
CAD programs will implement the format incorrectly making it impossible to interpret as
intended. FlatCAM attempts to follow the original specification as strictly as possible and
defaults to the following values when not clearly specified in the file:

5.2.2. Support

FlatCAM only supports drilling. Routing directives in Excellon are not supported.

The default units are INCHES.

Number format is 000.000 for millimeters and 00.0000 for inches.

Zero format is Leading. If less than 6 digits are provided, they are added by FlatCAM to
the right of the number. Leading zeros are assume present.

Tool definitions in the body (After M95) are not supported.

5.2.3. Overriding defaults


To override the zeros format default, set the system parameter excellon_zeros in the Shell
Command Line Interface:
set_sys excellon_zeros T
5.2.4. Creating Excellon Objects
Excellon Objects are created by opening an Excellon file:

The FileOpen Excellon menu option

The FileOpen Recent menu option

The open_excellon command in the Shell Command Line Interface.

5.2.5. Operations

5.2.5.1. Create CNC Job


Parameters:

Cut Z: Drill depth below the copper surface. E.g. -0.1.

Travel Z: Distance above the copper while moving in the X-Y plane.

Feedrate: Tool speed while drilling (Z axis movement) in units per minute. E.g. 50.

Tool change: If set, will include tool changing sequence in the resulting G-Code.

1.2.

Tool change Z: Distance from the copper surface to lift the tool for it to be changed. E.g.

Tools: List of tools that will be included in the CNC Job.

Creates a CNC Job Object for drilling.


A CNC Job for the Excellon object can be created via the objects GUI or the drillcncjob
command in the Shell Command Line Interface.
5.2.5.2. Mill Holes
Parameters:

Tool dia: Diameter of the milling tool.

Tools: List of tools that will be included in this operation.

Creates a Geometry Object with tool paths for milling holes specified in the Excellon object.
5.4.4. Operations
5.4.4.1. Export G-Code
Parameters:
Prepend to G-Code: Any text provided will be added at the beginning of the G-Code file.
Append to G-Code: Any text provided will be added to the en of the G-Code file.
File Name: Name of the file to write.
Saves the G-Code of the Object in the specified file.
This operation is available in the objects GUI and through the write_gcode command in the
Shell Command Line Interface.
6. Geometry Editor
6.1. Introduction
The Geometry Editor is a drawing CAD that allows you to edit a FlatCAM Geometry Object or
create new ones from scratch. This provides the ultimate flexibility by letting you specify
precisely and arbitrarily what you want your CNC router to do.
6.2. Creating New Geometry Objects
To create a blank Geometry Object, simply click on the menu item EditNew Geometry Object
or click the New Blank Geometry button on the toolbar. A Geometry object with the name New
Geometry will be added to your project list.

6.3. Editing Existing Geometry Objects


To edit a Geometry Object, select it from the project list and click on the menu item EditEdit
Geometry or on the Edit Geometry toolbar button.
This will make a copy of the selected object in the editor and the editor toolbar buttons will
become active.
Changes made to the geometry in the editor will not affect the Geometry Object until
theEditUpdate Geometry button or Update Geometry toolbar button is clicked. This replaces
the geometry in the currently selected Geometry Object (which can be different from which the
editor copied its contents originally) with the geometry in the editor.
6.3.1. Selecting Shapes
When the Selection Tool is active in the toolbar (Hit Esc), clicking on the plot will select the
nearest shape. If one shape is inside the other, you might need to move the outer one to get to
the inner one. This behavior might be improved in the future.
Holding the Control key while clicking will add the nearest shape to the set of selected objects.
6.3.2. Creating Shapes
The shape creation tools in the editor are:
Circle
Arc
Rectangle
Polygon
Path

After clicking on the respective toolbar button, follow the instructions on the status bar.
Shapes that do not require a fixed number of clicks to complete, like polygons and paths, are
complete by hitting the Space key.
Certain shape tools can have different options or modes. By hitting o and/or p the tool will cycle
through its options and/or modes.

6.3.3. Union
Clicking on the Union tool after selecting two or more shapes will create a union. For closed
shapes, their union is a polygon covering the area that all the selected shapes encompassed.
Unions of disjoint shapes can still be created and is equivalent to grouping shapes.

6.3.4. Intersection
Clicking on the Intersection tool after selecting two or more shapes will create a new shape
from the intersection of the selected shapes. The original shapes are deleted.
6.3.5. Subtraction
Multiple tool shapes can be subtracted from a target shape. Select the target shape first, then tool
1, tool 2, etc. and click on the Subtraction tool button. The original target shape is deleted, and a
new geometry consisting of the target minus the tool shapes is created. The tool shapes remain
untouched.
6.3.6. Cut Path
Multiple tool shapes can be subtracted from a target shape, which is first converted to the linear
paths of its boundary. Select the target shape first, then tool 1, tool 2, etc. and click on the Cut
Pathtool button. If no tool shapes are selected the target is simply converted from a polygon to
its linear boundary.

Difference between the Subtraction and Cut Path operations.

6.3.7. Moving and Copying


The Move and Copy tools work on selected objects. As soon as the tool is selected (On the
toolbar or the m and c keys) the reference point is set at the mouse pointer location. Clicking on
the plot sets the target location and finalizes the operation. An outline of the shapes is shown
while moving the mouse..
6.3.8. Cancelling an operation
Hitting the Esc key cancels whatever tool/operation is active and selects the Selection Tool.
6.3.9. Deleting selected shapes
Selections are deleted by hitting the - sign key.
6.3.10. Grid and Snap
The coordinates entered by clicks of the mouse can be made to snap to certain predefined
coordinates. These are the grid coordinates and coordinates in shapes already entered in the
editor. Snapping to either of these can be turned on and off separately by clicking on the
corresponding buttons on the toolbar.
Snapping to the grid coordinates applies to the whole drawing canvas. Wherever you click, the
coordinates given to the program are those of the nearest grid coordinated. The grid coordinates
are defined by specifying the grid spacing for the X and Y axes in the corresponding inputs in
the toolbar.
Snapping to shape coordinates applies only when the pointer is within a minimum distance of
the nearest point in the shape. This minimum distance is specified in the corresponding input in
the toolbar. If within this minimum distance, then the coordinates given to the program are those
of the nearest point in the shape. If beyond this minimum distance, snapping to shape
coordinates is ignored and will snap to the grid if also enabled.
A small dot in the drawing canvas provides a preview of where the pointer would snap.

9.1. EAGLE HOW-TO


Quick guide on exporting PCB designs from Eagle and importing them into FlatCAM. This
guide was made with Eagle version 7.2.0 Light and FlatCAM 8.2.
Most designs start with schematics of your circuit:

Then by clicking on FileSwitch to board, the board editor is opened and you can complete
your layout:

To export Gerbers, go to FileCAM Processor in the board editor, and choose the settings
shown in the figure below. Include the copper layer that you want to export and the Pads and
Vias layers. Choose a proper name for your output file and click Process Job. Repeat for each
desired layer.

For drill files, go to FileCAM Processor again and select the settings in the figure below. Do
not provide an extension to the drill file name. Click on Process Job to export.

We are done with Eagle. Now lets move on to FlatCAM.


Eagle uses Trailing Zeros in its Excellon number format but does not properly report this format
in the Excellon file. To tell FlatCAM to use this format by default set this system option
excellon_zerosto T by using the set_sys command in the Shell Command Line Interface as
shown below:

The command get_sys excellon_zeros is optional and only lets you see what the
excellon_zerosoption was set to originally.
Note
Changes to system options are persistent. They will remain set to the given value when you
restart.
This completes all the adjustments. Now simply open the Gerbers and Excellon files that you
exported from Eagle.

You might also like