Repository navigation
Geometry Editor
The Geometry Editor changes the shapes of a Geometry object. Use it to draw new shapes, copy and move shapes, make arrays, buffer, paint, simplify, transform, and combine shapes with Boolean operations. The editor works on the vector data only. Save the result with Exit Editor or Ctrl+S.
- Select a Geometry object in the Project tree. Then select Edit > Edit Object (shortcut E). See Geometry Object.
- 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 Geometry Editor button in the object panel.
- The editor shows the tool buttons in the editor toolbar, and a Geo Editor menu in the menu bar.
- Tool keys (no modifier) work when no tool is active. See the Advanced section and Keyboard Shortcuts.
- Exit with the Exit Editor button at the bottom of the editor panel, with Edit > Exit Editor, or with Ctrl+S.
Screenshot placeholder:
images/Geometry-Editor-1.png- the full editor: toolbar at the top, the canvas with a Geometry object, and the editor panel on the right with Geometry Table and Exit Editor visible.
- Open a Geometry object and start the Geometry Editor.
- Press R, or click Rectangle in the toolbar.
- Click the first corner on the canvas. Click the opposite corner to complete the rectangle.
- Press Esc to stop drawing the next shape.
- Press S (or click Subtraction) to cut a shape from another. Select two shapes first.
- Press Ctrl+S. In the dialog, click Save to write the changes to the source object.
Screenshot placeholder:
images/Geometry-Editor-2.png- a rectangle drawn on the canvas, with the Rectangle panel on the right showing the Position, Corner, and Size frames.
The tables below list each panel. Each plugin panel opens when its tool is active. The panel title shows the tool name (for example Editor Circle). Values in the Default column come from appEditors/geo_plugins/*.py or defaults.py. A dash means the code does not set a default.
| Parameter | Description | Default |
|---|---|---|
| History (combo box) | Shows the state timeline of geometry operations. Select a state to undo or redo. | - |
| Tool dia | Tool diameter of the edited geometry. The unit is mm, or inch in an inch project. | - |
| Midpoint snap | Snaps to the midpoint of each straight line or polyline segment. Needs grid snapping on. | - |
| Nearest segment snap | Snaps to the closest point on a straight segment, not its extension. | - |
| Acquisition / px | Pixel radius for midpoint and segment snapping. Needs grid snapping on. | 8.0 px |
| Snap (label) | Shows the current snap type: corner, midpoint, segment, grid, or None. | - |
| Geometry Table | Lists the geometry elements inside the edited object: ID, Type, and Name. | - |
| Zoom on selection | Zooms the canvas to the selected shape. | - |
| Parameters (button) | Shows or hides the read-only geometry values. | Hidden (geometry_editor_parameters = False) |
| Is Valid, Is Empty, Is Ring, Is Simple | Read-only results for the last selected shape. | - |
| Is CCW / Change | Shows the orientation of the shape. Change reverses it. Works for LinearRing and Polygon. | - |
| Length | Length of the last selected shape. Read-only. | - |
| Coordinates | Shows the coordinates of the selected shape. | - |
| Last Vertexes | Number of vertex points in the last selected shape. Read-only. | - |
| Selected Vertexes | Number of vertex points in all selected shapes. Read-only. | - |
| Edit vertices | Opens a dialog to move, insert, or remove a vertex of one selected contour. Needs exactly one selected shape. | - |
| Exit Editor | Exits the editor. See Save and cancel below. | - |
Screenshot placeholder:
images/Geometry-Editor-3.png- the editor panel with the History, Snapping, and Geometry Table sections visible.
The Level button switches between Beginner and advanced views. Beginner mode hides these sections.
| Parameter | Description | Default |
|---|---|---|
| Split path | Select one open LineString, then click its interior to split it. | - |
| Split tolerance | Maximum click distance from the path, and the excluded distance from each endpoint. Units: mm, or inch in an inch project. | 0.01 |
| Join paths | Joins selected open LineStrings. Ambiguous branches are rejected. | - |
| Join tolerance | Maximum endpoint gap. Zero joins exact endpoints only. Units: mm, or inch in an inch project. | 0.01 |
| Inspect selected geometry | Read-only snapshot of the selected geometry. Open paths are informational. No repair is done. | - |
| Endpoint tolerance | Endpoint distance for the inspection. Units: mm, or inch in an inch project. | 0.01 |
| Filter polygons by area | Applies the area limits to Polygon and MultiPolygon shapes. Text counts as polygons. | Off |
| Min area / Max area | Area limits, inclusive, in square units. | 0 / 1 |
| Filter paths by length | Applies the length limits to LineString, LinearRing, and MultiLineString shapes. | Off |
| Min length / Max length | Length limits, inclusive. | 0 / 1 |
| Select | Selects the shapes that match the enabled filters. Searches the selected shapes, or all shapes if none are selected. | - |
| Delete | Deletes the shapes that match the enabled filters, as one Undo step. | - |
| New Diameter | Diameter for the selected circles. Each circle keeps its own center. | - |
| Resize | Resizes the selected circles to the new diameter, as one Undo step. | - |
Circles are recognized by their shape. A circle is a polygon or outline with at least 8 vertices, all at the same distance from the center. Other shapes are skipped.
| Parameter | Description | Default |
|---|---|---|
| X, Y | Center position. Range -10000 to 10000 (mm, or inch in an inch project). | 0 |
| Radius X | Radius in X. With the link button on, this is the one radius value. | 0 |
| Radius Y | Radius in Y. Disabled while the link button is on. | 0 |
| Angle | Angle in degrees. Range -360 to 360. Disabled while the link button is on. | 0 |
| Link button | Links the X and Y radius. When on, the circle is a true circle. | On |
| Add | Adds the circle. The button changes to Apply when you edit an existing shape. | - |
Shift and click a shape to select it for modification.
| Parameter | Description | Default |
|---|---|---|
| Anchor | Reference point of the rectangle: T Left, T Right, B Left, B Right, or Center. | Center |
| X, Y | Position of the anchor. Range -10000 to 10000. | Snapped cursor position |
| Type | Corner type: Round (rounded corners), Square (sharp corners), or Beveled (a straight line between the two edges). | Round |
| Radius | Corner radius. Shown only for Round and Beveled. | 1 |
| Length | Rectangle length. Accepts numeric expressions. | 0.0 |
| Width | Rectangle width. Accepts numeric expressions. | 0.0 |
| Add | Adds the rectangle. The button changes to Apply when you edit an existing shape. | - |
Enter a length and width, or click the two corners on the canvas. Enter finishes the rectangle.
Used by the Path tool and the Move tool.
| Parameter | Description | Default |
|---|---|---|
| Projection | Length of the current segment or move. Accepts numeric expressions. | - |
| Corner Mode | How a new segment joins the previous one. Modes: 1 = 45 degrees, 2 = reverse 45 degrees, 3 = 90 degrees, 4 = reverse 90 degrees, 5 = free angle. | 5 (free angle) |
| T / R | Key hints. Press T for the next corner mode and R for the previous one. | - |
| Clear | Resets the Path panel to its start values. | - |
| Parameter | Description | Default |
|---|---|---|
| Projection | Length of the current move. Accepts numeric expressions. | - |
| Clear | Resets the Copy panel to its start values. | - |
| Mode | Single makes one copy. Array shows the array options. | Single |
| Size | Number of items in the array. Range 1 to 100000. | - |
| Type | Linear (one row), 2D (rows and columns), or Circular. | Linear |
| Direction (linear) | Direction of the linear array: X (horizontal), Y (vertical), or Angle (custom). | - |
| Pitch | Distance between elements of the array. Range 0 to 10000. | - |
| Angle (linear) | Angle of the linear array. Range -360 to 360 degrees. Two decimals. | - |
| 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. | - |
| Rows | Number of rows. Range 0 to 10000. | - |
| Columns | Number of columns. Range 0 to 10000. | - |
| Spacing rows | Space between rows, in mm, or inch in an inch project. Shown for Spacing placement. | - |
| Spacing cols | Space between columns, in mm, or inch in an inch project. Shown for Spacing placement. | - |
| Offset X, Offset Y | Offset between rows and columns. Shown for Offset placement. | - |
| Direction (circular) | CW (clockwise) or CCW (counter clockwise). | - |
| Angle (circular) | Angle at which each element is placed. Each copy rotates around the reference point. Range -360 to 360. | - |
| Add | Adds the array or copy. | - |
The editor asks for a reference location first. For a circular array, the editor asks for the center position.
Paint fills a polygon with tool passes. See Paint for the full operation.
| Parameter | Description | Default |
|---|---|---|
| Tool Dia | Diameter of the tool. Must be greater than zero. Range -10000 to 10000. | 0.3 |
| Overlap | Percentage of the tool width that each pass overlaps the next. Must be below 100 percent. Lower values are faster. | 20 % |
| Margin | Distance to keep away from the polygon edges. | 0.0 |
| Method | Standard: fixed step inwards. Seed: outwards from a seed point. Lines: parallel lines. | Standard |
| Connect | Draws lines between the resulting segments to reduce tool lifts. | On |
| Contour | Cuts around the polygon perimeter to trim rough edges. | On |
| Paint | Runs the paint on the selected polygons. | - |
| Parameter | Description | Default |
|---|---|---|
| Buffer distance | Distance for the buffer. Range 0 to 10000 (mm, or inch in an inch project). | 0.01 |
| Buffer corner | Corner type: Round (rounded corner on exterior buffer), Square (sharp corner), or Beveled (straight line joining the two features). | Round |
| Buffer Interior | Buffers the shape inwards with the distance. | - |
| Buffer Exterior | Buffers the shape outwards with the distance. | - |
| Full Buffer | Buffers the selected shapes by Buffer distance and Buffer corner. | - |
The Transformation tool holds six groups: Rotate, Skew/Shear, Scale, Mirror, Offset, and Buffer. The Reference group applies to Rotate, Skew, Scale, and Mirror.
| Parameter | Description | Default |
|---|---|---|
| Reference | Reference point for Rotate, Skew, Scale, and Mirror. Choices: Origin (0, 0), Selection (center of the bounding box), Point (the Value point), Minimum (lower left corner), Lower Right, Upper Right, Upper Left. | Selection |
| Value | Custom reference point, format X,Y. Used with the Point choice. | 0, 0 |
| Add | Adds point coordinates from the clipboard to Value. | - |
| Angle (CW) | Rotation angle in degrees. Positive is clockwise. Range -360 to 359. | 45 |
| Rotate | Rotates the selected shapes. | - |
| Link (skew) | Links the Y entry to the X entry and copies its content. | On |
| X angle, Y angle | Skew angles in degrees. Range -360 to 360. | 0.0 |
| Skew X, Skew Y | Skews or shears the selected shapes. | - |
| Link (scale) | Links the Y factor to the X factor and copies its content. | On |
| X factor, Y factor | Scale factors. | 1.0 |
| Scale X, Scale Y | Scales the selected shapes. | - |
| Reflect X (across Y) | Mirrors the X coordinates across the vertical Y axis through the reference point. Y is unchanged. | - |
| Reflect Y (across X) | Mirrors the Y coordinates across the horizontal X axis through the reference point. X is unchanged. | - |
| X val, Y val | Offset distance on X or Y, in mm, or inch in an inch project. | 0.0 |
| Offset X, Offset Y | Moves the selected shapes by the offset value. | - |
| Rounded | On: the buffer surrounds the shape with rounded corners. Off: the buffer follows the exact geometry. | On |
| Distance | Buffer distance. A positive value dilates, a negative value erodes. Range -10000 to 10000. | 0.0 |
| Buffer D | Buffers each geometry element by the Distance. | - |
| Value (buffer factor) | Buffer as a percentage of the initial dimension. A positive value dilates, a negative value erodes. Range -100 to 1000 %. | 100.0 % |
| Buffer F | Buffers each geometry element to fit the Value. | - |
Screenshot placeholder:
images/Geometry-Editor-4.png- the Transformation panel with the Reference combo box, the Rotate group, and the Mirror buttons visible.
| Parameter | Description | Default |
|---|---|---|
| Coordinates | Read-only text. Shows the coordinates of the selected shape. | - |
| Vertex Points | Read-only. Number of vertex points in the selected shape. | - |
| Tolerance | Maximum distance between the simplified shape and the original. All points stay within this distance. | 0.01 mm (0.0004 inch in an inch project) |
| Simplify | Reduces the vertex count of the selected shape. | - |
| Parameter | Description | Default |
|---|---|---|
| Font | Font family. Uses the font list of the system. | - |
| Size | Font size in points. Choose from the list or type a value. The list has 6 to 96. | 10 |
| Bold button | Makes the text bold. | Off |
| Italic button | Makes the text italic. | Off |
| Bitmap smoothing (px) | Smoothing for bitmap fonts only. 0 keeps the pixel edges. Higher values give smoother contours but can change fine details. Range 0 to 2, step 0.1. | 0.5 |
| Text | Text to convert into geometry. Multi-line input is allowed. | - |
| Apply | Creates the geometry from the text. | - |
Each tool is started from the toolbar, from the Geo Editor menu, or with its key. Keys work only when no tool is active.
| Tool | Toolbar label | Key | What it does |
|---|---|---|---|
| Select | Select | - | Selects shapes. The default tool when no other tool is active. |
| Polygon | Polygon | N | Draws a polygon. Click each point. Click the right mouse button or press Enter to complete. |
| Arc | Arc | A | Draws an arc. Three modes, see below. Press D to change the direction (CW or CCW). |
| Circle | Circle | O | Draws a circle. Click the center, then the perimeter. See the Circle panel. |
| Rectangle | Rectangle | R | Draws a rectangle. See the Rectangle panel. |
| Path | Path | P | Draws an open path. Click each point. Click the right mouse button or press Enter to complete. |
| Text | Text | T | Creates text geometry. See the Text panel. |
| Simplify | Simplify | - | Reduces the vertex count. See the Simplification panel. |
| Buffer | Buffer | B | Buffers the selected shapes. See the Buffer panel. |
| Paint | Paint | I | Paints the selected polygons. See the Paint panel. |
| Copy | Copy | C | Copies the selected shapes, one copy or an array. See the Copy panel. |
| Move | Move | M | Moves the selected shapes. Click a reference location, then the destination. |
| Transform | Transform | Alt+R | Opens the Transformation panel. |
| Eraser | Eraser | - | Erases shapes with a deletion area. Click to pick the erase shape, then click to erase. |
| Import | Import | - | Select shapes to import them into the edited object. |
| Union | Union | U | Merges the selected shapes into one. The originals are deleted. |
| Join | Join | - | Joins open paths. See Join paths in the Advanced sections. |
| Polygonize | Polygonize | - | Makes polygons from the selected closed paths. Paths that do not enclose an area are not changed. |
| Explode | Explode | - | Splits each selected shape into lines. A polygon becomes its outline lines. A multi-part shape becomes its parts. |
| Intersection | Intersection | E | Keeps the area shared by the selected shapes. The first selected shape is the intersector. |
| Subtraction | Subtraction | S | Subtracts the other selected shapes from the first selected shape. |
| Alt Subtraction | Alt Subtraction | - | Subtracts the other selected shapes from the first. Only the first shape is replaced; the other shapes stay. |
| Cut Path | Cut Path | Ctrl+X | Cuts the first selected path with the other selected shapes. |
| Delete | Delete | Delete | Deletes the selected shapes. |
Union, Intersection, Subtraction, Alt Subtraction, and Cut Path need at least 2 selected shapes. With fewer, the editor shows A selection of minimum two items is required. and selects the Select tool.
The Arc tool has three modes. Press M to cycle through them:
- Center -> Start -> Stop. Click the center, then the start point, then the stop point.
- Start -> Stop -> Center. Click the start point, then the stop point, then the center.
- Point1 -> Point3 -> Point2. Click the first, third, and second points.
See Keyboard Shortcuts for the full list. Keys for the editor:
- Ctrl+S: save and exit.
- Ctrl+Z: undo. Ctrl+Y or Ctrl+Shift+Z: redo.
- Ctrl+M: distance tool. Shift+M: minimum distance tool.
- Shift+X and Shift+Y: skew on X or Y axis.
- Alt+X and Alt+Y: offset on X or Y axis.
- Space: rotate.
- X: flip on X axis. Y: flip on Y axis.
- Delete: delete the selection.
- Esc: cancel the current action.
- Enter: complete a path, circle, rectangle, move, copy, or polygon.
- G: grid snap. K: corner snap. J: jump to coordinates. V: zoom fit.
- F3: shortcut list.
- Ctrl+S or Exit Editor opens the dialog Do you want to save the changes?.
- Save writes the changes to the source Geometry object.
- Save as New creates a new object and leaves the source unchanged. The dialog shows it for Geometry objects.
- No exits the editor without saving.
- Cancel closes the dialog. The dialog shows it for Geometry objects.
- Esc cancels the current action.
Each change adds a step to the History combo box. Use Ctrl+Z and Ctrl+Y, or select a state in the combo box. The Delete and Resize actions in the advanced sections each make one Undo step.
- Snap radius is in pixels. Tolerances in the advanced sections are in mm, or inch in an inch project, not pixels.
The Geometry Editor has no Tcl command of its own. See Tcl Command Reference for the Geometry commands.
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