Std AddonMgr
|
Menu location
|
Tools → Addon manager
|
Workbenches
|
All
|
Default shortcut
|
None
|
Introduced in version
|
0.17
|
See also
|
External workbenches, Macros
|
|
Description
The Std AddonMgr command opens the Addon manager. With the Addon manager you can install and manage external workbenches, macros, and preference packs provided by the FreeCAD community. By default the available addons are taken from two repositories, FreeCAD-addons and from the Macros recipes page. If GitPython and git are installed on your system, additional macros will be loaded from FreeCAD-macros. Custom repositories can be added in the Addon manager preferences.
Due to changes to the GitHub platform in the year 2020 the Addon manager no longer works if you use FreeCAD version 0.17 or earlier. You need to upgrade to version 0.18.5 or later. Alternatively you can install addons manually, see Notes below.
Usage
- Select the Tools →
Addon manager option from the menu.
- If you are using the Addon manager for the first time, a dialog box will open warning you that the addons in the Addon manager are not officially part of FreeCAD. It also presents several options related to the Addon manager's data usage. Adjust those options to your liking and press the OK button to confirm and continue.
- The Addon manager dialog box opens. For more information see Options.
- If you have installed or updated a workbench a new dialog box will open informing you that you have to restart FreeCAD for the changes to take effect.
Options
- The Addon manager provides two view layouts: "Condensed" and "Expanded". In "Condensed" view, each addon takes a single line, and its description is truncated to fit the available space. "Expanded" shows additional details, including more of the description text as well as maintainer information, more installation details, etc.
- Three different types of addons are supported: workbenches, macros, and preference packs. You can choose to show just one type, or all of them in a single list.
- The list can be limited to show just installed packages, just packages with available updates, or just packages that are not yet installed.
- The list can be filtered, searching for a keyword in the title, description, and tags (description and tags must be specified by the addon developer in their addon's metadata). The filter can even be a regular expression, for fine-grained control of the exact search term.
- The expanded view shows available version information, description, maintainer information, and installation version information, for packages that provide a package metadata file (or for macros with embedded metadata).
- Addon data is cached locally, with a variable cache update frequency set in the user preferences.
- At any time you can choose to manually update your local cache to see the latest updates available for each addon.
- Update checks may be set up to be automatic, or done manually via a button click (configured in user preferences). If GitPython and git are installed on your system then update information is fetched using git. If not, then update information is obtained from any present metadata file.
Clicking on an addon in this view brings up the addon's Details page:
The details page shows buttons allowing installing, uninstalling, updating, and temporarily disabling an addon. For installed addons it lists the currently installed version and the installation date, and whether that is the most recent version available. Below is an embedded web browser window showing the addon's README page (for workbenches and preference packs), or Wiki page (for macros).
Preferences
The preferences for the Addon manager can be found in the Preferences Editor. introduced in version 0.20
Sorting by score
introduced in version 1.0
The Addon Manager supports sorting by a number of different criteria. Most of these are downloaded directly from FreeCAD's servers (which caches them from GitHub and the FreeCAD Wiki) but one, "Score," is not provided by FreeCAD at all, and only appears as an option if the Score Source URL setting is provided in the Preferences.
The Score Source URL is a path to a remote JSON-formatted document listing addons and a "score" of some kind. Score can be calculated in any way the data provider likes, but should be an integer value, with higher scores being "better" in some sense. Any addon not listed is assigned a score of zero internally. The format of the file is a single JSON dictionary where the key is the addon URL (for workbenches and preference packs) or the name of the macro (for macros). See this data source for an example (note the score there is simply the length of the addon's description, and is intended only for testing and demonstration purposes).
Notes
- The use of addons is not restricted to the FreeCAD version they were installed from. You will also be able to use them in any other FreeCAD version, supported by the addon, that you may have on your system.
- The addons available in the Addon manager are not part of the official FreeCAD program and are not supported by the core FreeCAD development team. You should read the provided information carefully to make sure you know what you are installing.
- Bug reports and feature requests should be made directly to the creator of the addon by visiting the indicated website. Many addon developers are regular users of the FreeCAD forum, and can also be contacted there.
- If the GitPython package is installed on your computer the Addon manager will use it, making downloads faster.
- You can also install addons manually. See How to install additional workbenches and How to install macros.
Information for addon developers
See Addon.
Scripting
introduced in version 0.21
Some features of the Addon manager are designed for access via FreeCAD's Python API. In particular an addon can be installed, updated, and removed via the Python interface. Most uses of this API require you to create an object with at least three attributes: name
, branch
and url
. For example:
class MyAddonClass:
def __init__(self):
self.name = "TestAddon"
self.url = "https://github.com/Me/MyTestAddon"
self.branch = "main"
my_addon = MyAddonClass()
Your object my_addon
is now ready for use with the Addon manager API.
Commandline (non-GUI) use
If your code needs to install or update an addon synchronously (e.g. without a GUI) the code can be very simple:
from addonmanager_installer import AddonInstaller
installer = AddonInstaller(my_addon)
installer.run()
Note that this code blocks until complete, so you shouldn't run it on the main GUI thread. To the Addon manager, "install" and "update" are the same call: if this addon is already installed, and git is available, it will be updated via "git pull". If it is not installed, or was installed via a non-git installation method, it is downloaded from scratch (using git if available).
To uninstall, use:
from addonmanager_uninstaller import AddonUninstaller
uninstaller = AddonUninstaller(my_addon)
uninstaller.run()
GUI use
If you plan on your code running in a GUI, or supporting running in the full version of FreeCAD, it's best to run your installation in a separate non-GUI thread, so the GUI remains responsive. To do this, first check to see if the GUI is running, and if it is, spawn a QThread
(don't try to spawn a QThread
if the GUI is not up: they require an active event loop to function).
from PySide import QtCore
from addonmanager_installer import AddonInstaller
worker_thread = QtCore.QThread()
installer = AddonInstaller(my_addon)
installer.moveToThread(worker_thread)
installer.success.connect(installation_succeeded)
installer.failure.connect(installation_failed)
installer.finished.connect(worker_thread.quit)
worker_thread.started.connect(installer.run)
worker_thread.start() # Returns immediately
Then define the functions installation_succeeded
and installation_failed
to be run in each case. For uninstallation you can use the same technique, though it is usually much faster and will not block the GUI for very long, so in general it's safe to use the uninstaller directly, as shown above.
Std Base
- File: New, Open, Open Recent, Close, Close All, Save, Save As, Save a Copy, Save All, Revert, Import, Export,Merge project, Document information, Print, Print preview, Export PDF, Exit
- Edit: Undo, Redo, Cut, Copy, Paste, Duplicate selection, Refresh, Box selection, Box element selection, Select All, Delete, Send to Python Console, Placement, Transform, Alignment, Toggle Edit mode, Properties, Edit mode, Preferences
- View:
- Miscellaneous: Create new view, Orthographic view, Perspective view, Fullscreen, Bounding box, Toggle axis cross, Clipping plane, Persistent section cut, Texture mapping, Toggle navigation/Edit mode, Material, Appearance, Random color, Color per face, Toggle transparency, Workbench, Status bar
- Standard views: Fit all, Fit selection, Align to selection, Isometric, Dimetric, Trimetric, Home, Front, Top, Right, Rear, Bottom, Left, Rotate Left, Rotate Right, Store working view, Recall working view
- Freeze display: Save views, Load views, Freeze view, Clear views
- Draw style: As is, Points, Wireframe, Hidden line, No shading, Shaded, Flat lines
- Stereo: Stereo red/cyan, Stereo quad buffer, Stereo Interleaved Rows, Stereo Interleaved Columns, Stereo Off, Issue camera position
- Zoom: Zoom In, Zoom Out, Box zoom
- Document window: Docked, Undocked, Fullscreen
- Visibility: Toggle visibility, Show selection, Hide selection, Select visible objects, Toggle all objects, Show all objects, Hide all objects, Toggle selectability
- Toolbars: File, Edit, Clipboard, Workbench, Macro, View, Individual views, Structure, Help, Lock toolbars
- Panels: Tree view, Property view, Model, Selection view, Python console, Report view, Tasks, DAG view
- Dock window overlay: Toggle overlay for all, Toggle transparent for all, Toggle overlay, Toggle transparent, Bypass mouse events in docked overlay windows, Toggle left, Toggle right, Toggle top, Toggle bottom
- Link navigation: Go to linked object, Go to the deepest linked object, Select all links
- Tree view actions: Sync view, Sync selection, Sync placement, Pre-selection, Record selection, Single document, Multi document, Collapse/Expand, Initiate dragging, Go to selection, Selection back, Selection forward
- Tools: Edit parameters, Save image, Load image, Scene inspector, Dependency graph, Export dependency graph, Document utility, Add text document, View turntable, Units converter, Customize, Addon manager, Measure
- Help: Help, FreeCAD Website, Donate, Users documentation, Python scripting documentation, Automatic Python modules documentation, FreeCAD Forum, FreeCAD FAQ, Report a bug, About FreeCAD, What's This, Start
- Additional:
- Miscellaneous: Create part, Create group, Make link, Make sub-link, Replace with link, Unlink, Import links, Import all links, Make link group, Create a variable set, Select all instances, Toggle freeze
- Expression actions: Copy selected, Copy active document, Copy all documents, Paste
- Selection filter: Vertex selection, Edge selection, Face selection, All selection filters cleared
User documentation
- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Assembly, BIM, CAM, Draft, FEM, Inspection, Material, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework