Repository navigation
Gerber Editor
The Gerber Editor edits the shapes of a Gerber object. Use it to add, move, copy, resize, transform, simplify and delete pads, tracks, regions and copper shapes. Open it when a small fix to the copper is faster than a new file.
- Select a Gerber object in the Project tree. Then select Edit > Edit Object (shortcut E).
- Other ways to start: the Editor button in the Edit Toolbar, the Edit item in the Project menu, the Edit item in the canvas right-click menu, or the Gerber Editor button in the object panel.
- To leave the editor, select Edit > Exit Editor (shortcut Ctrl+S), or select Exit Editor in the canvas right-click menu. See Save and exit.
- The editor opens in the same window. The Gerber Editor Toolbar shows the tool buttons while the editor is open.
- The tool panel opens in the notebook tab named after the active tool (for example Pad). The aperture table is in the Properties tab.
- Shortcut keys for the tools are listed below and in Keyboard Shortcuts.
Screenshot placeholder:
images/Gerber-Editor-1.png- the Gerber Editor with a Gerber object loaded, the aperture table visible, and the Pad panel on the left.
- Select a Gerber object in the Project tree.
- Select Edit > Edit Object.
- Press P to choose the pad tool. Click the canvas to place a pad at the cursor.
- Press Ctrl+Z to undo the last change.
- Press Ctrl+S to save the changes and return to the app. Choose Save in the dialog.
Screenshot placeholder:
images/Gerber-Editor-2.png- the Pad panel with the Add button and the canvas cursor over the board.
Select Edit > Exit Editor (Ctrl+S) or select Exit Editor in the canvas right-click menu. The program asks: "Do you want to save the changes?" Choose one button:
| Button | Result |
|---|---|
| Save | Writes the edited content to the Gerber object. The object keeps its name. |
| Save as New | Creates a new Gerber object named <name>_edit. If that name exists, the program adds a numeric suffix such as _1. The source object does not change. |
| No | Leaves the editor. The changes are lost. |
| Cancel | Returns to the editor. Nothing changes. |
The exit is refused while an editor operation still runs. Wait for the operation to finish, then exit again.
Screenshot placeholder:
images/Gerber-Editor-5.png- the exit dialog with the Save, Save as New, No and Cancel buttons.
| Key | Action |
|---|---|
| A | Pad array tool |
| B | Buffer tool |
| C | Copy tool |
| D | Disc (add disc) |
| E | Semidisc |
| M | Move |
| N | Region tool |
| P | Pad tool |
| S | Scale |
| T | Track tool |
| Key | Action |
|---|---|
| Ctrl+A | Select all apertures |
| Ctrl+E | Eraser tool |
| Ctrl+S | Save and return to the app |
| Ctrl+Z | Undo |
| Ctrl+Y or Ctrl+Shift+Z | Redo |
| Ctrl+M | Distance tool |
| Shift+M | Minimum distance tool |
| Alt+A | Mark area |
| Alt+N | Poligonize |
| Alt+R | Transformation tool |
| Key | Action |
|---|---|
| Esc | Cancel the current action |
| Enter | Finish the current action |
| Delete | Delete the selected shapes |
| Delete with the aperture table focused | Delete the selected aperture |
| Space | Rotate the selection |
| - / = | Zoom out / zoom in |
| V | Zoom fit |
| G | Grid snap on or off |
| K | Corner snap on or off |
| J | Jump to coordinates |
| ` | Show or hide the Notebook |
| F3 | Show the shortcut list |
Use this panel to place a flashed pad.
| Parameter | Description | Default |
|---|---|---|
| Diameter (header) | Section for the pad size. The Value field is disabled until a pad is selected. Unit: mm, or inch in an inch project. | — |
| Value | Diameter of the selected pad. Set from the selected aperture. | — |
| Position (header) | Section for the pad center. | — |
| X | X coordinate of the pad center (mm, or inch in an inch project). | — |
| Y | Y coordinate of the pad center (mm, or inch in an inch project). | — |
| Projection | Length of the current segment or move. Enter a value to set the next move length. | — |
| Clear button (trash icon) | Clears the projection field. | — |
| Add | Adds the pad with the values in the panel. | — |
Use this panel to draw a track (a line with an aperture width).
| Parameter | Description | Default |
|---|---|---|
| Diameter (header) | Section for the track width. The Value field is disabled until a track is selected. Unit: mm, or inch in an inch project. | — |
| Value | Width of the selected track. Set from the selected aperture. | — |
| Position (header) | Section for the track points. | — |
| X | X coordinate of the current point (mm, or inch in an inch project). | — |
| Y | Y coordinate of the current point (mm, or inch in an inch project). | — |
| Projection | Length of the current segment or move. | — |
| Clear button (trash icon) | Clears the projection field. | — |
| Parameters (header) | Section for track options. | — |
| Snap to pad | Snaps to the center of the pad under the mouse, even when that center is off-grid. | — |
| Add | Adds the track with the values in the panel. | — |
Track bend modes are set with the T and R keys while the track tool is active. See Track bend modes.
Use this panel to create an array of pads.
| Parameter | Description | Default |
|---|---|---|
| Diameter (header) | Section for the pad size. Unit: mm, or inch in an inch project. | — |
| Value | Diameter of the selected pad. | — |
| Position (header) | Section for the array origin. | — |
| X | X coordinate of the array origin. | — |
| Y | Y coordinate of the array origin. | — |
| Parameters (header) | Section for the array settings. | — |
| Type | Type of array. Linear creates a row or column of pads. Circular creates pads around a center. | Linear |
| Size | Number of items in the array. Range 1 to 100000. | 5 (Preferences key gerber_editor_array_size) |
| Direction (linear) | Direction of a linear array. X is horizontal. Y is vertical. Angle uses the Angle value. | X (gerber_editor_lin_dir) |
| Pitch | Distance between the items of a linear array. Range 0 to 10000. | 0.1 (gerber_editor_lin_pitch) |
| Angle (linear) | Angle of a linear array. Only active when Direction is Angle. Range -360.00 to 360.00 degrees. | 0.0 (gerber_editor_lin_angle) |
| Direction (circular) | Direction of a circular array. CW is clockwise. CCW is counter-clockwise. | CW (gerber_editor_circ_dir) |
| Angle (circular) | Angle between each item of a circular array. Range -360.00 to 360.00 degrees. | 0.0 (gerber_editor_circ_angle) |
| Radius | Radius of a circular array. Range -10000 to 10000. | — |
| Add | Adds the array. | — |
The array tool places the array at the click point. The status bar shows Click to place ... for a linear array. It shows Click on the circular array Center position for a circular array.
Use this panel to edit a polygon region.
| Parameter | Description | Default |
|---|---|---|
| Diameter (header) | Section for the region value. The Value field is disabled. Unit: mm, or inch in an inch project. | — |
| Value | Value of the selected region. | — |
| Position (header) | Section for the region position. | — |
| X | X coordinate (mm, or inch in an inch project). | — |
| Y | Y coordinate (mm, or inch in an inch project). | — |
| Projection | Length of the current segment or move. | — |
| Clear button (trash icon) | Clears the projection field. | — |
Screenshot placeholder:
images/Gerber-Editor-3.png- the Track panel with the Parameters section and the Snap to pad checkbox.
Screenshot placeholder:
images/Gerber-Editor-4.png- the Pad array panel with Linear selected, then with Circular selected.
Use this panel to copy the selected shapes once, or to place an array of copies. The tool shortcut is C. Code: appEditors/grb_plugins/GrbCopyPlugin.py.
| Parameter | Description | Default |
|---|---|---|
| Mode | Single makes one copy. Array shows the array settings. | Single |
| Size | Number of items in the array. Range 1 to 100000. The tool updates it from Rows and Columns in 2D mode. | — (not set by the tool) |
| Type | Linear makes one row or column. 2D makes rows and columns. Circular places the items around a center. | Linear |
| Direction (Linear) | X is horizontal. Y is vertical. Angle uses the Angle value. | X (gerber_editor_lin_dir) |
| Pitch | Distance between the items of a linear array. Range 0 to 10000 (mm, or inch in an inch project). | 0.1 (gerber_editor_lin_pitch) |
| Angle (Linear) | Angle of a linear array. Range -360.00 to 360.00 degrees. Used when Direction is Angle. | 0.0 (gerber_editor_lin_angle) |
| Placement (2D) | Spacing sets the space between rows and columns. Offset places each row and column at a multiple of a value from the origin. | Spacing |
| Rows | Number of rows. Range 0 to 10000. | 1 |
| Columns | Number of columns. Range 0 to 10000. | 1 |
| Spacing rows | Space between rows (mm, or inch in an inch project). Range 0 to 9999. Used with Spacing. | 0 |
| Spacing cols | Space between columns (mm, or inch in an inch project). Range 0 to 9999. Used with Spacing. | 0 |
| Offset X | Offset on the X axis (mm, or inch in an inch project). Range 0 to 10000. Used with Offset. | 0 |
| Offset Y | Offset on the Y axis (mm, or inch in an inch project). Range 0 to 10000. Used with Offset. | 0 |
| Direction (Circular) | CW is clockwise. CCW is counter-clockwise. | CW (gerber_editor_circ_dir) |
| Angle (Circular) | Angle between each item of the circular array. Range -360.00 to 360.00 degrees. | 0.0 (gerber_editor_circ_angle) |
| Add | Starts the copy. The status bar then asks for the reference location. Click the canvas to place the copy. | — |
Use this panel to grow or shrink the aperture shapes of the selected apertures. The tool shortcut is B. Code: appEditors/grb_plugins/GrbBufferPlugin.py.
| Parameter | Description | Default |
|---|---|---|
| Buffer distance | Distance to grow (positive) or shrink (negative) the shapes (mm, or inch in an inch project). Range -10000 to 10000. A comma works as decimal separator. | 0.1 (gerber_editor_buff_f) |
| Buffer corner | Corner style of the buffer. Round rounds the corners. Square keeps sharp corners (mitre). Beveled joins the features with a straight line at the corner. | Round |
| Full Buffer | Buffers the selected shapes. Select at least one aperture in the aperture table and at least one shape. | — |
The tool shows an error when the distance is not a finite number, when no aperture is selected, or when no shape is selected.
Use this panel to reduce the number of vertex points of a selected element. The tool shortcut is in the Gerber Editor menu. Code: appEditors/grb_plugins/GrbSimplificationPlugin.py.
| Parameter | Description | Default |
|---|---|---|
| Coordinates | Read-only text. Shows the coordinates of the selected element. | — |
| Vertex Points | Read-only number. Shows the vertex points of the selected element. | — |
| Tolerance | Largest distance between the simplified and the original shape (mm, or inch in an inch project). Range 0 to 10000. | 0.01 mm (0.0004 inch in an inch project). The tool sets it when it opens. It is not in defaults.py. |
| Simplify | Reduces the vertex points of the selected element within the tolerance. | — |
Use this panel to rotate, skew, scale, mirror, offset and buffer the selected shapes. The shortcut is Alt+R. Code: appEditors/grb_plugins/GrbTransformationPlugin.py. Defaults come from tools_transform_* keys in defaults.py.
Reference group. The reference point is used by Rotate, Skew, Scale and Mirror.
| Parameter | Description | Default |
|---|---|---|
| Reference | Reference point. Origin is 0, 0. Selection is the center of the bounding box of the selection. Point is a custom point. Minimum (lower left) is the lower-left corner of the selection. Lower right, Upper right and Upper left are the other corners of the selection bounds. | Selection (tools_transform_reference) |
| Value | Custom reference point in the format X,Y. Used with Point. | 0, 0 (tools_transform_ref_point) |
| Add | Adds the point coordinates from the clipboard. | — |
Rotate group.
| Parameter | Description | Default |
|---|---|---|
| Angle (CW) | Rotation angle in degrees. Range -360 to 359. Positive values turn clockwise. Negative values turn counter-clockwise. | 45 (tools_transform_rotate) |
| Rotate | Rotates the selected shapes around the reference point. A value of 0 is rejected. | — |
Skew/Shear group.
| Parameter | Description | Default |
|---|---|---|
| Link | Copies the X angle value to the Y angle entry. | Checked (tools_transform_skew_link) |
| X angle | Skew angle on the X axis in degrees. Range -360 to 360. | 0.0 (tools_transform_skew_x) |
| Y angle | Skew angle on the Y axis in degrees. Range -360 to 360. | 0.0 (tools_transform_skew_y) |
| Skew X / Skew Y | Skews the selected shapes around the reference point. | — |
Scale group.
| Parameter | Description | Default |
|---|---|---|
| Link | Copies the X factor value to the Y factor entry. | Checked (tools_transform_scale_link) |
| X factor | Scale factor on the X axis. A value of 0 or 1 is rejected. | 1.0 (tools_transform_scale_x) |
| Y factor | Scale factor on the Y axis. A value of 0 or 1 is rejected. | 1.0 (tools_transform_scale_y) |
| Scale X / Scale Y | Scales the selected shapes. | — |
Mirror group.
| Parameter | Description | Default |
|---|---|---|
| Mirror X coordinates | Reverses the X coordinates across the vertical line through the reference point. | — |
| Mirror Y coordinates | Reverses the Y coordinates across the horizontal line through the reference point. | — |
Offset group.
| Parameter | Description | Default |
|---|---|---|
| X val | Distance to move on the X axis (mm, or inch in an inch project). A value of 0 is rejected. | 0.0 (tools_transform_offset_x) |
| Y val | Distance to move on the Y axis (mm, or inch in an inch project). A value of 0 is rejected. | 0.0 (tools_transform_offset_y) |
| Offset X / Offset Y | Moves the selected shapes by the value. | — |
Buffer group.
| Parameter | Description | Default |
|---|---|---|
| Rounded | Checked: every corner of the buffered shape is rounded. Not checked: the buffer follows the exact geometry of the shape. | Checked (tools_transform_buffer_corner) |
| Distance | Buffer distance (mm, or inch in an inch project). A positive value dilates. A negative value erodes. | 0.0 (tools_transform_buffer_dis) |
| Buffer D | Buffers each shape by Distance. | — |
| Value | Buffer as a percentage of the initial size. A positive value dilates. A negative value erodes. Range -100 to 1000. | 100.0 % (tools_transform_buffer_factor) |
| Buffer F | Buffers each shape so that it fits the Value. | — |
These buttons are in the Regions group. They add new material as explicit regions. Existing features are not replaced. Code: appEditors/grb_plugins/GrbDrawingPlugin.py.
| Parameter | Description | Default |
|---|---|---|
| Rectangle Region | Opens the rectangle panel. | — |
| Text Regions | Opens the text panel. Text holes and islands are kept. | — |
| Anchor (rectangle) | The point of the rectangle placed at X and Y. Choices: T Left, T Right, B Left, B Right, Center. | Center |
| X / Y (rectangle) | Position of the anchor (mm, or inch in an inch project). Range -10000 to 10000. | — |
| Type (rectangle corner) | Round, Square or Beveled corners. | Square |
| Radius (rectangle) | Corner radius. | 0 |
| Length and Width (rectangle) | Size of the rectangle (mm, or inch in an inch project). | 0 |
| Font (text) | Font for the text. | — |
| Size (text) | Font size in points. | — |
| Bitmap smoothing (px) (text) | Smoothing for bitmap fonts only. 0 keeps the pixel edges. Higher values give smoother edges. | 0.5 |
| Text (text) | The text to draw. Plain text only. | — |
| Baseline X / Baseline Y (text) | Start point of the text (mm, or inch in an inch project). | Snap position of the editor |
| Rotation (degrees, about anchor) | Rotation of the new shape. | — |
| Add (rectangle) / Apply (text) | Adds the shape as regions. | — |
| Close | Closes the panel. | — |
The Regions group also has these buttons. Each one works on the selected polygon material.
| Button | Result |
|---|---|
| Material Union | Replaces the selected polygon material with explicit regions. Holes are kept. |
| Material Intersection | Keeps only the area common to the selections. |
| Material Difference | Subtracts the other selections from the first. |
| Diff. Keep | Subtracts the other selections from the first and keeps them. |
| Explode Regions | Splits the selected regions into separate regions. |
Code: appEditors/grb_plugins/GrbFollowPlugin.py. Gerber joins require coincident endpoints. The tool does not bridge gaps.
| Parameter | Description | Default |
|---|---|---|
| Split tolerance | Largest click distance and excluded endpoint distance (mm, or inch in an inch project). Zero requires an exact click. | 0.01 |
| Split path | Select one open FOLLOW path of a circular aperture. Then click inside the path. | — |
| Join tolerance | Endpoint search radius (mm, or inch in an inch project). | 0.01 |
| Join paths | Joins compatible FOLLOW records of the same circular aperture. Branches and gaps are rejected. | — |
| Diameter (Resize Circles) | New diameter of the selected plain circular flashes (mm, or inch in an inch project). Range 0 to 10000. Tracks and other shapes are skipped. Shared apertures are not resized. | — |
| Resize | Resizes the selected circular flashes around their own centers. This is one undo step. | — |
Use this dialog to change single vertices of a region or a track. Open it with Edit vertices in the Gerber Editor menu, or with the Edit vertices button. Code: appEditors/grb_plugins/GrbVertices.py.
| Parameter | Description | Default |
|---|---|---|
| Part | Index of the part of the shape. Starts at 0. | 0 |
| Ring | Index of the ring. Ring 0 is the exterior. Rings 1 and higher are holes. A track has its FOLLOW line only. | 0 |
| Vertex / segment index | Index of the vertex. For Insert, the new vertex goes on the segment from this index to index + 1. | 0 |
| X | X coordinate of the vertex (mm, or inch in an inch project). | Value of the selected vertex |
| Y | Y coordinate of the vertex (mm, or inch in an inch project). | Value of the selected vertex |
| Operation | Move sets the vertex to X and Y. Insert adds a vertex. Remove deletes the vertex. | Move |
| Apply | Runs the operation. | — |
| Close | Closes the dialog. | — |
A flashed pad has no vertices. Use Move on the pad instead. The dialog shows an error when the edit creates invalid geometry or closes a track.
Code: appEditors/grb_plugins/GrbHistory.py. The limits come from the global history settings in defaults.py.
| Parameter | Description | Default |
|---|---|---|
| Undo (Ctrl+Z) | Reverts the last change. | — |
| Redo (Ctrl+Y or Ctrl+Shift+Z) | Repeats the last undone change. A new change clears the redo steps. | — |
| Steps limit | Largest number of undo steps. | 100 (global_history_steps) |
| Memory limit | Largest memory size of the undo steps. | 256 MB (global_history_memory_mb) |
The editor shows Wait for the running editor operation to finish. when undo or redo is used during an operation. It shows Action was not executed when an action fails.
Code: appEditors/appGerberEditor.py (track tool) and appEditors/grb_plugins/GrbTrackBend.py.
| Parameter | Description | Default |
|---|---|---|
| Move Track Bend | Drag one FOLLOW bend of a circular-aperture track. The neighbor bends stay fixed. Works on one path or on a join of two records of the same aperture. | — |
| T key | Changes the corner mode to the next mode. Works while the track tool is active. | — |
| R key | Changes the corner mode to the previous mode. Works while the track tool is active. | — |
The corner modes are:
| Mode | Name in the status bar |
|---|---|
| 1 | Corner Mode 1: 45 degrees (default) |
| 2 | Corner Mode 2: Reverse 45 degrees |
| 3 | Corner Mode 3: 90 degrees |
| 4 | Corner Mode 4: Reverse 90 degrees |
| 5 | Corner Mode 5: Free angle |
Set the Load option in the Preferences of the Gerber Editor group. It decides how the editor loads a Gerber object that has clear (negative) features. The program reads the option at each open. Code: appEditors/appGerberEditor.py.
| Parameter | Description | Default |
|---|---|---|
| Load: Regions | Loads the object as one region aperture. Each solid area becomes one polygon. This is fast. | Yes (gerber_editor_load = 0) |
| Load: Apertures | Keeps the apertures of the file. This load is slow. | No (gerber_editor_load = 1) |
Use this panel to scale the selected shapes. The tool shortcut is S. Code: appEditors/appGerberEditor.py.
| Parameter | Description | Default |
|---|---|---|
| Scale factor | Factor for the selected shapes. Range 0.0000 to 10000.0000. | 1.0 (gerber_editor_scale_f) |
| Scale | Scales the selected shapes about their centers. | — |
Use this panel to mark, then delete, the polygons whose area is between two limits. The shortcut is Alt+A (Mark Area). The area values use square mm, or square inch in an inch project.
| Parameter | Description | Default |
|---|---|---|
| Area UPPER threshold | Polygons with an area less than this value can be marked. Range 0 to 10000. | 1.0 (gerber_editor_ma_high) |
| Area LOWER threshold | Polygons with an area greater than this value can be marked. Range 0 to 10000. | 0.0 (gerber_editor_ma_low) |
| Mark | Marks the polygons whose area is between the two thresholds. | — |
| Delete | Deletes all marked polygons. | — |
| Clear | Clears all markings. | — |
Use this group to check the selected shapes for a component type. The result appears below the button.
| Parameter | Description | Default |
|---|---|---|
| Component | Solid checks solid areas. Follow checks FOLLOW paths. Clear checks clear areas. | Solid |
| Endpoint tolerance | Tolerance for the endpoints of the shapes (mm, or inch in an inch project). | 0.01 (set in the UI, not in defaults.py) |
| Inspect selected geometry | Checks the selected shapes for the chosen component. | — |
The aperture table lists the apertures of the object. Select a row to select the aperture. Select all apertures with Ctrl+A. Select an aperture and press Delete to remove it.
| Column | Description |
|---|---|
| # | Index of the row. |
| Code | Aperture code, for example D10. |
| Type | Aperture type: circular, rectangle, oblong or macro. |
| Size | Aperture size (mm, or inch in an inch project). |
| Dim | Dimensions. For R and O: (width, height). For a polygon type: (diameter, number of vertices). |
The Add/Delete Aperture group adds a new aperture to the table. Select the + button to add it. Select the trash button to delete the selected aperture.
| Parameter | Description | Default |
|---|---|---|
| Code | Code of the new aperture. Range 0 to 1000. | One more than the highest code in the table. Without apertures, the Preferences value New Aperture code (gerber_editor_newcode, 10). |
| Size | Size of the new aperture (mm, or inch in an inch project). Range 0 to 10000. For R and O, the size is calculated as the square root of width squared plus height squared. | 0.8 (gerber_editor_newsize) |
| Type | C is circular. R is rectangular. O is oblong. | C (gerber_editor_newtype) |
| Dims | Width and height of the new aperture (mm, or inch in an inch project). Range 0 to 10000. Used with R and O. | 0.5, 0.5 (gerber_editor_newdim) |
| + button | Adds the new aperture to the table. | — |
| Trash button | Deletes the selected aperture. | — |
| Zoom on selection | Zooms to the selected shapes. | — |
- Numeric entry. Digit keys, ., ,, +, -, / and ***** feed the numeric length entry in the Track, Region and Pad tools. Press Enter to apply.
- Projection. The Projection field sets the length of the current segment or move.
-
Selection limit. Preferences key
gerber_editor_sel_limit, default 30. Above this number of selected items, the utility geometry becomes a selection rectangle. This keeps large moves fast. - Vertex editing. See Vertices panel. A flashed pad has no vertices.
- Undo and redo. See History.
- Scale, Mark polygons and Inspect. See the Scale panel, the Mark polygons panel and the Inspect group.
FlatCAM Evo Manual · Source code · Report a problem · MIT license
Start here
- Installation
- Getting Started
- Tutorial: Single-Sided PCB
- Tutorial: Double-Sided PCB
- User Interface
- Keyboard Shortcuts
- Glossary
- FAQ and Troubleshooting
Files and projects
Objects
Editors
PCB operations
- Isolation Routing
- Non-Copper Clearing
- Paint
- Cutout
- Drilling
- Milling
- Follow
- Double-Sided
- Solder Paste
- Film
- Panelize
- Copper Thieving
- Fiducials
- Markers
- Punch Gerber
- Invert Gerber
- Etch Compensation
- Extract
- Rules Check
- QR Code
Utility plugins
- Align Objects
- Calculators
- Distance · Object Distance
- Optimal
- Move · Transform
- Subtract
- Image Import · PDF Import
- PCB Wizard
- Report
- Tcl Shell
Machine control (in development)
Advanced
- Tools Database
- Preprocessors
- Path Optimization
- Tcl Scripting
- Tcl Command Reference
- Developer Guide
- Translating
Preferences