External workbenches

Introduction
Power users have extended FreeCAD with various custom workbenches and addons that are not integrated into the main FreeCAD source code but can be added to an existing FreeCAD installation.

Most extensions can be installed from the Addon Manager, menu. If there are specific instructions and dependencies for installing or using the 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.

Architecture and facilities

 * ArchTextures (github link) allows you to add basic, non-photorealistic textures to architectural objects created with the Arch Workbench.
 * BIM aims to implement a complete building information modeling (BIM) workflow in FreeCAD. It extends the Arch Workbench, and gathers many tools from other workbenches to provide an environment that is convenient and user friendly to model buildings, and work with IFC files.
 * Flamingo is a set of customized FreeCAD commands and objects that help speed-up the creation of frames and pipelines.
 * geodata (github link) is an extension to import different geographical information from latitude and longitude, from OpenStreetMap, Google Maps, Bing Map, or Here Map.
 * Reinforcement is a small extension that augments the Arch Workbench with additional Arch Rebar tools, including straight, U-shape, L-shape, bent, stirrup, and helical, to be used inside objects created with the Arch Structure tool.
 * Render (github link) is a workbench to produce high-quality rendered images, using open-source external rendering engines like Pov-ray, Luxrender, and Appleseed. Render is a replacement for the Raytracing Workbench, and uses the same templates so they are compatible. Render is completely written in Python which means it can be extended more easily by non-C++ programmers. In the future Render may also support Kerkythea, Blender's EEVEE, and OpenCascade's CadRays engines.
 * 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 them, you should not use another workbench to work with the same assembly. You should re-assemble the parts in the new workbench.


 * A2plus provides tools to create multi-part assemblies. It is a fork and extension of the older Assembly2 Workbench.
 * Assembly3 (github link) is in development and requires a forked version of FreeCAD with some core changes to the source code. It is the most complex solution and supports things like interactive kinematics.

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


 * Animation Workbench can be used to simulate movement of parts and kinematics.
 * Assembly4 (github link) is a solution based on the forked FreeCAD branch that Assembly3 uses. It does not work with constraints at all and focuses on building structures with Local Coordinate Systems (LCS). This is computationally friendly, and should allow for creating large assemblies with many parts. This is the newest of the assembly workbenches and is intended more as a demonstrator.
 * ExplodedAssembly (github link) is a workbench to create exploded views and animations of assemblies. It supersedes the ExplodedAnimation workbench.
 * lattice2 (github link) is a workbench that provides tools for working with placements and arrays of placements. It is a sort of assembly workbench but with no constraints nor relationships, and with an emphasis on arrays. It can also create exploded assemblies.
 * Manipulator is aimed at helping users in aligning, moving, rotating and measuring 3D objects through a friendly graphical interface.
 * Part-o-magic (github link) is an experimental workbench that provides some improvements to Std Part and PartDesign Body containers (automatic grouping, visibility automation, etc.), in order to work with documents that have multiple parts with deep feature hierarchies. It provides a Body-like container for the Part Workbench, and for other workbenches that produce solid shapes. Part-o-magic does not provide assembly constraints, but the tools included may be useful in conjunction with a true assembly workbench.
 * workfeature (github link) is a collection of tools to produce points in different locations (mid points, extrema, center of plane, projected), lines (from two points), and planes (from one point and one line, from three points, etc.), in order to help the user to position and align objects along those helper objects. This is essentially a re-written version of the older utility workfeature-macro, which was distributed as a collection of macros.

Customization

 * Autoload (github link) is a small extension that allows you to select the workbenches that should be loaded when you start FreeCAD. It can allow you to customize your system in combination with other extensions such as PieMenu, ShortCuts, and CommandPanel.
 * CommandPanel (github link) is an extension that provides a panel that can be used store tools from different workbenches.
 * Glass (github link) is an extension that shows the tree view and properties panel as a transparent overlay over the 3D viewport.
 * IconThemes (github link) is an extension that provides the ability of changing the icons of the default FreeCAD system.
 * Launcher (github link) is a small extension that provides a dedicated dialog box for users to search and launch commands. Instead of clicking on a toolbar button or menu entry, searching for the command's name may be faster for some users.
 * PieMenu (github link) is a small extension that shows a pie menu to select tools or commands when the key is pressed. A pie menu is an interface that appears in Blender and other systems like Android mobile phones to launch actions.
 * SelectorToolbar (github link) is a small extension that provides a point and click experience for changing FreeCAD workbenches.
 * ShortCuts (github link) is a small extension that provides a manager and overlay for shortcuts.
 * TabBar (github link) is a small extension that adds a window with tabs in order to select workbenches.
 * ToolbarStyle (github link) is a small extension that allows the configuration of toolbars, with icons, text, or both.

Engineering

 * AirPlaneDesign (github link) is an experimental workbench to design wings and airplane objects.
 * Cfd (github link) brings the power of the OpenFoam solver to FreeCAD to perform computational fluid dynamics (CFD) simulations.
 * CfdOF (github link) is a fork of the Cfd workbench that focuses on ease of use; it is intended for people who are just starting in the world of CFD and OpenFoam.
 * DesignSPHysics (github link) is a workbench that provides a graphical user interface to DualSPHysics, a fluid dynamics solver.
 * EM Workbench provides a graphical interface for different solvers by FastFieldSolvers. At present it supports the 3D magneto-quasistatic impedance solver FastHenry. Support for the 3D electrostatic capacitance solver FasterCap is ongoing.
 * 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.
 * 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 and unfold sheet metal parts.

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.
 * CadQuery allows users to write Python scripts, and is tailored to those based on the CadQuery CAD scripting API. Script variables can be edited dynamically through the use of a parameter dialog.
 * dxf_library (github link) downloads the files needed to add import and export DXF support to 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) is a simple exporter to Kerkythea XML file.
 * 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

 * 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.
 * 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 (github link) is a workbench that provides various fasteners, screws, bolts, nuts, etc., to attach them to your model.
 * 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 to produce frames and beams.
 * 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 an extensive library of parts that can be used in FreeCAD. It is intended that users contribute content to this library by forking the repository, and adding their own parts under a permissive CC-BY 3.0 license.
 * 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.
 * reconstruction (github link) provides utilities to reconstruct models from images.
 * retr3D (github link) is a framework designed to model and manufacture 3D printable parts for the construction of more 3D printers. The intention of this project is to promote 3D printing in developing economies in order to reduce the amount of waste produced, and localize manufacturing, also stimulating the local economy.
 * 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, and particularly the TechDraw Workbench to produce technical documentation. It is intended that users contribute content to this library by forking the repository, and adding their own symbols under a permissive CC-BY 3.0 license.
 * 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 3D printing. This addon is unmaintained since 2014 and no longer works with recent versions of Cura engine.
 * 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 additional extensions, macros, and workbenches into FreeCAD. Since FreeCAD 0.17 this extension is obsolete, as the functionality is included natively in the Addon Manager.
 * WorkFeatures adds a wide range of helper objects such as alignment planes or axes, and tools to help you to position and align objects along those helper objects.