External workbenches

Introduction
External workbenches are those created by power users which haven't been integrated into the main FreeCAD source code.

Most extensions can be installed from the Addon Manager (menu ). If there are specific instructions for using these workbenches, these should be noted in each workbench's home page.

These workbenches aren't supported by the main FreeCAD development team, so they aren't tested to work with every version of FreeCAD. Questions, bug reports, and improvement requests should be made directly to the authors of the particular workbench.

The lists in this page are organized in topics, but not all of them are available in the Addon Manager. See external workbench list for an alphabetic list of those workbenches that really appear in the Addon Manager.

Architecture and construction

 * Civil Engineering is a proposed workbench that intends to combine and develop different tools of interest to civil engineers, including those working with road engineering, terrain topology and geographic data.

Assembly and animation
assembly workbenches are generally incompatible with each other. If you create an assembly with one of these workbenches, you should stick to the original workbench, and not use another assembly workbench in the same document.

Pseudo-assembly
These workbenches don't use constraints to keep relationships between parts, but simply re-position the parts in space.

Engineering

 * FreeCADTools: (github link) workbench for create metal profiles, square tubing, z profile, palette, rotation, drawing, and more.
 * GDML (github link) workbench for the Geometry Definition Markup Language (GDML).
 * GDT is a collection of tools to add geometric dimensioning and tolerancing (GDT) labels in 2D and 3D technical drawings. It implements the standard ISO 16792.
 * KicadStepUp is aimed at helping both KiCad and FreeCAD users in collaborating with electrical (ECAD) and mechanical (MCAD) design. With FreeCAD it's possible to design a printed circuit board, and push it to KiCad; alternatively, the board can be designed in KiCad, it can be imported by FreeCAD, it can be edited with the Sketcher Workbench, and pushed back into KiCad. The 3D model, boards and enclosure, can be exported to VRML with materials properties for use in KiCad or Blender.
 * LCInterlocking (github link) tools to create parts for laser-cutters. Add tabs and hinges. Export to SVG.
 * pyrate (github link) is a workbench to design optical lenses. The project aims to provide an optical raytracer for isotropic, homogeneous anisotropic and inhomogeneous isotropic GRIN media.
 * SheetMetal provides tools to design an object made of a folded sheet, such as a metal case or enclosure. The user starts with a flat sheet, then uses tools to extrude and bend the faces of the object by a certain distance, radius or angle, until the desired shape is obtained. The body may then be unfolded to obtain the required flat material that would be necessary to manufacture this body. The outline of this unfolded body may be used finally as the input for mills or lasercutting machines to obtain the required sheet profile.
 * Ship Workbench (github link) is used to create structures that are common to ships. It currently is seeking a maintainer.

Information and data

 * CADExchanger (github link) is an extension that allows FreeCAD to import and export file formats supported by the commercial "CAD Exchanger" application, such as Rhino 3dm or ACIS sat, and mesh formats like OBJ and STL.
 * dxf_library (github link) downloads the files needed to support importing and exporting DXF files in FreeCAD versions before v0.16. These files are not needed anymore when using the built-in DXF importer in v0.16 and above. They are still needed if you wish to use the legacy Python importer, or if you wish to export directly from the 3D model.
 * DynamicData is an extension that allows creating container objects to hold custom properties of any type that FreeCAD supports, for example, length or placement. These custom properties can then be used in mathematical expressions just like other properties in the Sketcher Workbench or Spreadsheet Workbench.
 * InventorLoader is an extension designed to import Autodesk Inventor files. Currently only Parts (IPT) can be displayed, not assemblies (IAM) nor drawings (IDW). As Inventor files contain a complete ACIS model representation, SAT and SAB files can also be imported. Export will not be supported, neither to IPT nor to SAT.
 * kerkythea (github link) adds a simple exporter to produce XML files for use with the Kerkythea freeware renderer.
 * Reporting (github link) makes it possible to extract information from a FreeCAD document using SQL statements, and show the results in a spreadsheet. The SQL statements can be used from a graphical user interface or from Python scripts. It works in a similar way to the Arch Schedule tool but is more powerful due to the flexibility that SQL provides.
 * WebTools contains a series of tools to communicate with web services like Git, a BIM server, and Sketchfab.
 * yaml-workspace (github link) is an extension that adds an importer to load and manipulate objects from YAML files. In this way it's easier to design and check 3D parts before manufacturing.

Shapes and parts

 * 3D Printing Tools (github link) is a workbench to do small changes to meshes imported from external files like STL.
 * BOLTSFC (github link) is an extension that allows you to use the BOLTS "Open Library for Technical Specifications", which is a collection of objects like nuts, screws, bolts, and so on, parametrically defined.
 * CadQuery allows users to design parametric 3D CAD models defined by the CadQuery CAD scripting API. It includes a full-featured editor with features such as auto-completion, syntax highlighting and checking, line numbering, and code folding. Example scripts are included to make the user get started with using the API. Script variables can be edited dynamically through the use of a parameter dialog. This workbench also includes cqparts, which is a library that adds support for parts and assemblies with constraints on top of CadQuery.
 * Curves is a collection of tools to create and edit NURBS curves and surfaces.
 * Defeaturing provides tools to edit STEP objects to remove features like holes, faces, and edges, and perform some operations with the simplified objects.
 * Fasteners Workbench is a workbench that provides various fasteners, screws, bolts, nuts, etc., to attach to your model. Development happens at Fasteners Github repo (github link)
 * FCGear (github link) is an extension that adds many different gears like cylindric involute, involute rack, cylindric cycloid, spherical involute bevel-gear, and crown gear.
 * frame (github link) is an extension with tools to create frames and beams, including two intersecting beams, in which one beam is cut by a plane or by another beam.
 * Lithophane (github link) is an extension to convert a provided image to a "lithophane" for 3D printing. A lithophane is an image that can only be seen properly when illuminated from behind.
 * nurbs is a collection of scripts for managing freeform surfaces and curves.
 * parts_library (github link) is an extension that downloads a library of parts in Step format or in FreeCAD format  that can be imported into a FreeCAD document. Users can contribute content to this library by forking the repository, adding their own parts under a permissive CC-BY 3.0 license, and submitting a pull request to merge the new objects.
 * pcb (github link) is a workbench that allows the user to import and create printed circuit boards (PCB) in FreeCAD. It supports layers, colors, transparencies, importing Step and Iges models, and displaying holes and vias.
 * Pyramids and Polyhedrons Workbench or Pyramids_and_Polyhedrons (github link) is a workbench for generating pyramids and polyhedrons, fully scalable and usable like standard Parts.
 * reconstruction (github link) provides utilities to reconstruct models from images.
 * retr3D (github link) is a framework designed to model and manufacture 3D printable parts starting from electronic waste, in order to build more 3D printers. The intention of this project is to recycle e-waste, promote 3D printing, especially in developing economies, and in this way reduce the amount of waste that goes to landfills. Using locally built, and inexpensive 3D printers could also be a way of localizing manufacturing, thus stimulating the local economy of these regions.
 * Silk is a collection of NURBS surface modeling tools focused on low degree and seam continuity. Silk is the new name of the NURBSlib-EVM project.
 * SlopedPlanesMacro (github link) allows you to build figures controlling the slopes of the faces of objects.
 * symbols_library (github link) is an extension that downloads a library of SVG symbols that can be used in FreeCAD, particularly in the TechDraw Workbench to produce technical documentation. Users can contribute content to this library by forking the repository, adding their own symbols under a permissive CC-BY 3.0 license, and submitting a pull request to merge the new objects.
 * ThreadProfile (github link) allows to easily create parametric 2d thread profile object compatible in Part and Part Design workbenches.
 * timber (github link) is a workbench to produce wood and timber objects.

Deprecated extensions

 * Assembly2 provides tools to create multi-part assemblies. It is unmaintained since 2016. Consider using A2plus instead.
 * cura_engine (github link) is an extension that integrates CuraEngine into FreeCAD in order to facilitate gcode generation for 3D printing. This addon is unmaintained since 2014 and no longer works with recent versions of CuraEngine.
 * Drawing Dimensioning adds powerful dimensioning and annotation tools to the Drawing Workbench. It was deprecated in FreeCAD 0.17. Consider using TechDraw Workbench instead.
 * NavigationIndicator (github link) is an extension that adds an indicator for the mouse navigation style in the status bar. Since FreeCAD 0.17 this extension is obsolete, as the indicator is included natively in FreeCAD.
 * persistenttoolbars (github link) is a small extension to keep the toolbars in their locations. Since FreeCAD 0.17 this extension is obsolete, as the functionality is included natively in FreeCAD.
 * pluginloader (github link) is a small extension that allows the user to install macros, external workbenches, and other extensions in FreeCAD. Since FreeCAD 0.17 this utility is obsolete, as this functionality is already provided by the Addon Manager.

Translating external workbenches
See the wiki page for more information Translating an external workbench

Missing documentation
TODO:
 * EaglePCB_2_FreeCAD