Skip to the usage guide

FreeCAD Scripts Skill.

Translate a dimensioned modeling task into FreeCAD objects that remain inspectable and adjustable.

  • 3D Design
  • CAD
  • Python
Source Review · FreeCAD ScriptsSKILL.md
Task 3D Design Produces • A FreeCAD Python macro or scripted parametric object • A document containing named solids, sketches or custom properties • A requested STEP, STL, IGES or OBJ export Before You Start FreeCAD with its bundled Python; GUI work additionally uses bundled PySide and scenegraph work uses Pivy.
Editorial summary · source reviewed 2026-10-07 · not a generated example

01 What It Does

Build Parametric CAD Models with Python

A FreeCAD Python reference covering document objects, parametric geometry, sketches, application UI and export workflows.

Source-based workflowNot an execution benchmark

The Working Approach

FreeCAD Scripts guides an agent through FreeCAD's embedded Python environment rather than treating a CAD model as a generic mesh. Its coverage includes OpenCASCADE-backed Part geometry, Mesh operations, constrained sketches and FeaturePython objects whose properties rebuild the shape. This makes it relevant to repeatable parts, small modeling tools and CAD automation where dimensions matter.

The source also distinguishes model logic from application interface work. PySide dialogs, task panels and Coin3D scenegraph elements require the GUI, while reusable geometry code can be guarded for headless execution. A useful first task is a single parameterized part with a clear export requirement; a broad request for an entire workbench adds significantly more integration responsibility.

Expected Deliverables

  • A FreeCAD Python macro or scripted parametric object
  • A document containing named solids, sketches or custom properties
  • A requested STEP, STL, IGES or OBJ export
See the Example Brief

From Brief to Review

  1. 01
    Resolve Units and Geometry

    Describe dimensions, coordinate placement and the intended solid or mesh representation. The source defaults unspecified lengths to millimeters; explicitly supplied length units are converted to FreeCAD's internal millimeters.

  2. 02
    Build the Document Model

    Create named objects and the necessary geometry or constraints. Use FeaturePython when editable properties should drive future recomputation.

  3. 03
    Recompute and Verify

    Recompute after changes, inspect shape properties and validate the chosen export. Keep GUI imports guarded if the macro must also run without a window.

02 When to Use It

When to Use It

FreeCAD with its bundled Python; GUI work additionally uses bundled PySide and scenegraph work uses Pivy.

A Good Fit

  • Adjustable PartsUseful for a part whose length, width or other design dimensions should remain explicit properties rather than hidden constants.
  • Repetitive CAD OperationsFits macros for arrays, boolean operations, mesh conversion and exporting selected objects.

Limits to Check

  • Application-Specific PythonThe FreeCAD modules are not ordinary Python standard-library modules. Drafting a script outside FreeCAD does not validate its runtime behavior.
  • Model Validation Still MattersThe Skill covers geometry construction but does not certify manufacturability, structural safety or machining suitability.

Bring These Inputs

  • Dimensioned BriefSupply dimensions, tolerances relevant to the task and the units used by the drawing.
  • Editable ParametersName the values that should become document properties and the relationships that should remain constrained.
  • Runtime and ExportIdentify the FreeCAD version, GUI or headless mode and required downstream file format.

03 Decisions That Matter

Decisions That Matter

  1. Parametric Rather Than Static

    FeaturePython separates the part's input properties from its generated shape, so a later dimension change can trigger a rebuild.

  2. Geometry and UI Separation

    The source's GUI guards help prevent a useful modeling macro from depending accidentally on an open view or dialog.

04 Try a Focused Brief

Try a Focused Brief

The example brief below has not been tested. Check the skill’s setup before using it.

Review the Setup

Keep the skill’s reference files available to the agent. Review how generated macros will change the document before running them in FreeCAD.

Upstream Source File
https://github.com/github/awesome-copilot/blob/3a685010a7afdc0dbd4c83b7fbda6c316aa516e5/skills/freecad-scripts/SKILL.md

FreeCAD with its bundled Python; GUI work additionally uses bundled PySide and scenegraph work uses Pivy.

Start With One Deliverable

Adapt the scope, source material and constraints in this brief before running the skill.

Example Brief
Use freecad-scripts to draft a FreeCAD macro for a rectangular mounting plate with four evenly inset holes. Ask for plate dimensions, hole diameter and inset before constructing it. Expose those values as editable properties, name the resulting object, recompute after changes and export a STEP copy. Keep the geometry code separate from optional GUI display and do not claim the part is manufacturing-ready.

Inspect the Result

Check the actual output against these observable criteria.

  • Changing a declared dimension recomputes the intended geometry.
  • Units and object placement match the supplied drawing.
  • The exported file contains the requested solid rather than an unintended empty or partial object.

OpenDesign provides a local design workspace for coding agents. This listing does not mean the skill is bundled or that its external tools, credentials and software dependencies are included.

05 Source and License

Source and License

This page describes the pinned source revision linked below. Upstream behavior and requirements can change.

License
MIT
Reviewed Snapshot
2026-10-07 · 3a685010a7af
Editorial Source Summary
A FreeCAD Python reference covering document objects, parametric geometry, sketches, application UI and export workflows.

Original summary by OpenDesign, based on the linked source. Repository stars are a dated popularity signal, not skill usage or a quality score.

06 Questions Before You Start

Questions Before You Start

Can it create editable parametric objects?

Yes. The source documents FeaturePython proxies, typed properties and an execute method called during document recomputation.

Is STL the same output as STEP?

No. The workflow distinguishes triangulated meshes from Part solids. Choose the representation required by the next tool rather than treating the exports as interchangeable.

Can every example run headlessly?

No. Dialogs, view providers and scenegraph work depend on the GUI. Headless macros must guard or omit those operations.

OpenDesign

Make Room for the Next Design Iteration.

Keep your brief, source material and design work together in a local workspace. Check the skill’s own setup before adding it to your workflow.

Upstream Source File
https://github.com/github/awesome-copilot/blob/3a685010a7afdc0dbd4c83b7fbda6c316aa516e5/skills/freecad-scripts/SKILL.md