This page gives common guidelines on the best practices to be followed when writing or updating FreeCAD documentation.

It also has the goal to bring together the threads that are dispersed in the forum and try to make order, being a single point of reference for FreeCAD documentation discussion and brainstorming, to better organize the wiki.

Before Starting

Editing wiki pages is easy. Before starting editing FreeCAD wiki pages, be sure to be familiar with the Wiki editing basics.

General Guidelines

Concise Descriptions

When describing FreeCAD functionality try to be concise and to the point. Also, please describe what FreeCAD does, NOT what FreeCAD does not do. There might be exceptions for justifying why FreeCAD does not support a certain functionality, in case for instance there is a different philosophy or way to achieve the result with respect to traditional CAD systems, but these cases must be the exception.

Centralized Information

Ideally, you should try to avoid duplicating the same information in different places. While it is simple to copy & paste some text, it will eventually lead to misaligned information when a page is updated and the other not. You should insert the information in one place only, and make reference to this single point.

A possible solution for the above problem is the use of templates and transclusions (see Templates and transcluding pages if you are not familiar with this concept), but their usage for this goal is strongly discouraged. The reason is that in the printed manual created from the Wiki help you will have the same information printed over and over again; but even a reader using the Wiki can be confused by finding the same text in different pages. In case you need the same explanations in more than one point of the documentation, please consider creating a new page topic, and make explicit references (links) to this page.


Templates are heavily used, instead, for styling the text. For instance, there is a template for styling menu commands, like File->Save, another template to style keys to be pressed, like SHIFT, etc.. This allows to have a consistent look and feel of the documentation, as well as to be able to update the style by simply changing the template. Please get familiar with the templates used in FreeCAD Wiki Help documentation before writing help pages.


Working by examples will help you keep the right track, and be ahead on the learning curve. So even if reading the following sections is highly recommended, you can quickly get familiar with the structure and style of FreeCAD wiki looking at the following pages, that can be considered reference for best style practices of FreeCAD documentation.

If you are consistent with this look & feel, you won't be far from a correct FreeCAD documentation page, and your contribution will blend more easily in the wiki.



You should normally not use a =header= for a page, since the page title is automatically added.

The User's hub provides a Table of Contents. This is used as the main reference for (automatically) building the offline help you can reach from FreeCAD, as well as the offline pdf documentation. The Template:Docnav, which is used to link a page with the previous and the next page of the same section (see #Templates section below for a list of all templates, including Docnav) should be aligned with the structure in the Table of Contents.

Page Names

Page names should be short, and every word should begin with a capital letter, unless they are articles, prepositions, conjunctions (e.g. 'of', 'on', 'and')

Bad name

Working with architecture walls

Good name

Arch Wall

Workbench pages must have the format XYZ Workbench, where XYZ is the name of the referred workbench.

Pages describing the tools of a workbench must have the format XYZ MyTool, where MyTool is the name of the specific tool.


You should use the original link name for the links whenever possible. This clarifies the referenced chapter in printed / pdf documentation. You must anyway avoid the usage of non-meaningful words for the link.

Bad link

For more information on this topic, click here.

So-so link

For more information on this topic, refer to drafting 2D objects.

Good link

For more information on this topic, see how to draft 2D objects in the Draft Workbench.

Workbench pages

Every page of a workbench should start with:

  • the name of the workbench
  • an image of (an example) of the look of the workbench. Not necessary to show a model (see anyway the #Screen capture section for rules), but the menu and toolbar should be visible, in their default position
  • a description of what the workbench is used for

Command (tool) pages

The command pages describing workbench tools should not be too long, they should only explain what a command can do and what it can't, and how to use it. You should keep pictures to a minimum, and not give too many examples - tutorials is where we should go in step-by-step details.

Restrictions should be documented right in the command page itself rather than elsewhere, possibly under a "restrictions" chapter.

Please refer to the Gui Command page for specific indications on Gui Command rules (naming, documenting, etc.).


Good tutorial examples are available at FreeCAD tutorial - Unofficial tutorial blog. Though they are not styled as FreeCAD wiki pages, they are a valid example of how a written tutorial should look like.



You should avoid colloquial generic expressions as 'a couple'. Please re-phrase as 'some' if indeterminate, or with the correct cardinality.


Try to avoid repetitions to keep descriptions short.

Bad description

Part Design Workbench: the Part Design Workbench is a workbench for part design that aims to provide tools for modelling complex solid parts.

Good description

Part Design Workbench: aims to provide tools for modelling complex solid parts.



Styling of FreeCAD Wiki pages is mainly achieved through the usage of templates. The table here below reports the templates that should be used in FreeCAD Wiki pages. Please use the templates listed below as much as possible, since these allows to re-style the whole Wiki in one shot by updating the template, and is the preferred method in the Wiki. For special cases only you can resort to direct HTML tags.

Remark: you can see the complete list of defined templates accessing Special:PrefixIndex/Template:. However, not all the templates defined here are used for styling the text, and others are deprecated. Please refer to the table below for the list of templates you should use when documenting FreeCAD in the Wiki.

Template Appearance Description
Emphasis emphasis Text to emphasize
KEY ALT Show a keyboard key
FALSE FALSE False value (e.g. of a property)
TRUE TRUE False value (e.g. of a property)
MenuCommand File->Save GUI menu text
FileName File name Names of files or directories
import FreeCAD 
Style source code. Default language is Python, other languages can be specified.
SystemInput Type this text User typed input text
SystemOutput Output text Text output from the system
Variable TYPEMyAttribute Value or parameter, optionally with a type
Optional [InsertThis..OrNot] Optional text or value
Choice { This | That } Choice of values from which one is used
Prettytable this table Create tables
Clear Clear columns. Follow the hyperlink for a detailed explanation. Often used to stop text from flowing next to unrelated images.
Fake heading
Heading that will not be included in the automatic TOC
GuiCommand See example GuiCommand model Main template for creating right side box for documenting GuiCommands
Macro See example Macro FlattenWire Main template for creating right side box for documenting macros
PropertyView VIEWColor Show a View property
PropertyData DATAPosition Show a Data property
Properties Title / TitleProperty Base Title for a property group. Will not be included in the automatic TOC.
PropertyTasks / TasksTag TASKS Tasks Argument for Tasks
TitleTasks ===Tasks Title=== Title for Tasks
Docnav Used to create the 'next', 'previous' and 'index' links (usually at the bottom of a page)
Version available in version 0.13 Indicate that a feature is available only starting with a specific FreeCAD version
Important Message
Used to highlight very important messages. Use sparingly.
Softredirect Use it instead of the normal redirect, when you are redirecting to a special page (such as Media: or Category:), in which cases the normal redirect is disabled.

This documentation is not finished. Please help and contribute documentation.

See Draft ShapeString for good documented Command. Gui Command gives an overview over commands. And see List of Commands for other commands.

Go to Help FreeCAD to contribute.

Marks work in progress on a documentation page.
Cry "Havoc" and let slip the dogs of war.
William ShakespeareJulius Caesar, act III, scene I
Quote for citations.
Click Deprecated Superimpose an invisible link on an image. You should use the native Wiki picture inclusion method instead.
DASH Deprecated Text box type code, colorful background. You should use the style you obtain starting the source line with a space.
Disambig Deprecated Not used.
Information Deprecated Not used. A standardized table providing complete information about the file, including description of what it shows and how it was made, copyright status and source.
Languages Deprecated Obsolete with the new wiki, translations and languages are managed via a dedicated tool.
Message Deprecated For not very important messages. Not used.
Powerdocnavi, Devdocnavi, Userdocnavi Deprecated Bottom page navigation. Not to be used, redundant.
Screenshot Deprecated See #Screen capture instead.

To have a global view on the chromatic aspect, see Basic Graphic Template.


Code must be styled using the Code template.

Code description should follow the text box generated by the Code template, so that the description is structured according to the content. Accentuation should be strictly used only on the word or lines that must be accentuated.

Example of bad code description

makeAngularDimension (center,[angle1,angle2],p3): creates an angular Dimension from the given center,
 with the given list of angles, passing through p3. Returns the newly created object. 

Example of good code description

makeAngularDimension (center,[angle1,angle2],p3) 
  • Creates an angular Dimension from the given center, with the given list of angles, passing through p3.
  • Returns the newly created object.

Graphics content


Avoid thumbnails whenever possible. Pictures should be shown in their original size, to avoid the need for the user to continuously navigate back and forth between different pages. Most important even, in the automatically generated printed manual (e.g. pdf version), thumbnails may not be readable. Thumbnails should be used only as last resource.

For the same reason, you should avoid animated pictures (i.e. gif). Animation should be reserved for tutorials not intended to be read as static content (e.g. video).

Pictures must be uploaded through the Special:Upload page.

Screen capture

Recommended size for screen captures, to avoid any resizing when showing the picture, should be:

  • native 400x200 (or width=400 and height<=200), for Gui Command pages, to allow the picture to fit in the left part of the page, and for other standard snapshots
  • native 600x400 (or width=600 and height<=400), for Gui Command pages, when you really need a bigger picture, and still allow the picture to fit in the left part of the page, and for other standard snapshots
  • native 1024x768 (or width=1024 and height<=768), only for full screen images
  • Smaller sizes are possible when showing details, however use native resolution, not resizing or thumbnails, unless you have a very good reason to do so.
  • Avoid larger resolutions, as they won't be much portable to any kind of display or in printed (pdf) documentation.

If possible, you shouldn't depend too much on any OS. While of course achieving 100% independency from the underlying OS is not possible, you should use visual defaults whenever possible.


To ease documentation translations, if you put a screenshot showing the interface, you should not show the 3D model view in the same screenshot. In this way, the translator will not have to hunt for the model used to create the screenshot, and can simply take a screenshot of the localized interface. If there are drop down menus in the taskbar, the options should be listed in the text content.

If your screen capture contains text (e.g. a menu), use the same resolution of the original interface item in FreeCAD. This avoids to have images containing very large or very small text, and keeps the same look and feel of the FreeCAD native interface.

Good picture text dimension

Partdesign revolution parameters.png

Bad picture text dimension

Partdesign revolution parameters.png

In this picture, note that the text dimension is acceptable, but there still are visual artifacts due to rescaling (the original width is 307px, rescaled to 190px) You should use native resolution to avoid visual artifacts due to rescaling.

Icons and graphics

Refer to this page for ready-to-use Artwork and Icon creation rules.


The following pages contain models for FreeCAD documentation.


As per general consensus, the reference page is the English page, that should be created first. Moreover, if you want to change or add content in a page, you should do it in the the English page first, and only once the update is completed, port the modification to the translated page.

The FreeCAD wiki supports a Translation plugin which allows to manage translations between pages.

For details on translation, see FreeCAD Wiki Translation Process under Localisation.

Other useful resources are:

Some tips for translators

Setting Docnav

See this link in the forum:

Using special pages

  • Orphaned pages list those pages that are not linked from or transcluded into other pages in FreeCAD Documentation. These pages are not accessible via links (no one sees them). If you find in your native language, try to create the connection that exists in the English page, otherwise no one can read them.
  • Uncategorized pages pages without category. They do not appear when you browse the categories. Assign a category.
  • Wanted pages pages that are called, but that do not exist. Red link in the texts. Deprecated and very annoying.
  • Others Wanted (files and templates)
  • Wanted categories they exist always, not only has been edited text. Skip.
  • Categories allow you to compare the number of pages of a given type of the original version with those translated into the specified language.
  • List of redirects allows you to control the correct redirection pages. If there are any red links, something does not work well. Investigate. Light blue links lead to pages outside the site, no problem.
  • Recent changes track the most recent changes to the wiki.
  • Language statistics shows translation statistics for all message groups for a language. Shows the parts not translated in a given language, only for those pages marked for translation. To see what has not been translated, set the language code and press Show statistic. It also contains the link to see what has been recently translated into that language. Note: If entering code en pages appear, it is likely that the original page contains markup errors (Sidebar apart).
  • Page translation allows you to see all the pages marked for translation, but also the updated and unmarked pages. Only administrators can mark pages for translation.
  • Category:Pages to delete: list of pages to be deleted, created by mistake or unnecessary.


At the page WikiRobots you can find instructions on how to set-up and use robots to automate repetitive tasks on the FreeCAD Wiki.


The Forum provides a dedicated section for discussing documentation wiki topics. Direct your questions there.


All that follows from now on is only for open discussion. You can stop reading here if you don't intend to brainstorm modifications of the FreeCAD WikiPages style rules. You can anyway post and discuss any Wiki-related topic on the [Forum]. Contributions are welcome.

Workflow, Roadmap

Organize pages in the wiki

Content and Appearance:

    • Renato: width of the page, now much space is unused (only for monitor 16:10)
    • Renato: white background, text more readable
    • Renato: links to similar commands, similar tools, scripts, examples, discussions, insights, forum, other... On all pages or only on some pages?


I think the things like this are also templates? {{PartDesign Tools}} This template contains headlines, icons, short textual description, long textual description, list elements. May be easier to handle when splitted in pieces (at least: icon list, description list, "full featured": array of someWorkbenchTools[icon|description,{2-4}]...) ?

  • Basic Template that would be useful
Template Note Note


useful? as Message?
alert useful? as VeryImportantMessage?
idea useful?
shortcut as KEY?

Template Appearance Description
Clear ok Template for clearing columns
Click rarely used superimpose an invisible link on an image
DASH rarely used text box type code, colorful background
Disambig not used
Docnav ok
FALSE color or black and gray? FALSE FALSE FALSE False False False False False False
Gui Command ok the main anchor on documenting GuiCommands
MenuCommand File->Save Text that is displayed in a GUI command menu
Information not used A standardized table providing complete information about the file, including description of what it shows and how it was made, copyright status and source.
KEY ALT Show a keyboard key
Languages ok obsolete with the new wiki
Macro ok, used the main anchor on documenting macros
Message rarely used for message not very important
VeryImportantMessage ok, used for message very important
Prettytable used for this table could have different colors
PropertyView background green or gray? VIEW Property View Property
Properties Title spelling. color or black and gray? Base
PropertyTasks color or black and gray? TASKS Length Renato: serve but too many disturbing reading
Screenshot link {{{2}}} - see more screenshots
Softredirect Use it instead of the normal redirect, when you are redirecting to a special page (such as Media: or Category:), in which cases the normal redirect is disabled.
TasksTag color or black and gray? TASKS Text
TRUE color or black and gray? TRUE
UnfinishedDocu ok mark not finished documentation.
Version FreeCAD version, small text

  • Other Template
* PartDesignTools
* _______________


  • Reflect on requests for help made ​​in the forum and use the given examples (if it is required an aid often means that the manual is not exhaustive, in the forum there are good examples, but hard to find)
    • Renato: Insert a link on the document page or insert the example or insert nothing?
      • Ralf: insert link(s) always in a field/area which is always there on every page. If there is nothing to link, there should be a text in this area as "There is currently no link to forum examples."
      • Ralf #2 examples: no examples at pages which are describing more than exactly the use of (probably mostly) a tool. If there would be examples (at different pages) which differ in various ways and are not comparable are confusing.
      • Ralf #3 examples: But beside of existing examples: defining a "standard model" (or some of them if needed for fairly different tasks as p.e. Part-Design vs. Arch) for really every example would promise a lot of advantages. The first one: if one like to try an example the related model file is available right there with the next click. Whatever the "standard model" could be - the most important condition it have to be usable for all examples/task from to simplest up to the most complex (FEM,assembly?!)
      • May be such an standard model and his incarnations could be also a kind of a "figurehead" for FC.
      • Ediloren (talk) 18:01, 3 September 2013 (CEST) : looks like a good idea but not too practical; I expect that the burden of adding examples for everything would be very high. I would prefer to resort on tutorials, videos, and forum unless somebody has really the time and commitment to follow this part (me not, sorry :) )

Some useful examples taken from the forum

Documentation structure:

  • Links between pages (tree and hierarchy linear, orderly, full)
    • Renato: If there is an index the docnav does not serves.
  • Page titles descriptive
    • Renato: Translated or not translated? With the new translator seems outdated
  • Structure of the documentation (depending on the type of user and the type of documentation). Group some things? - If possible in any way: group everything to maximal seven (7) entrys (per group)(Ralf).:
    • Reference (needs indicate precise criteria) (Ralf: for me for advanced users/using, #3)
    • How to (Ralf: additional, #4)
    • Tutorial (Ralf: additional, #5)
      • External links
    • Themed (Ralf: 1st thing / start point while using the documentation? - for me #1)
    • examples - in relevant cases - the most basic example for using the tool / workbench /feature (is that possible with complex tools?) ; may be one "standard" example case for the most examples, if possible (so the fcstd file can be supplied and re-used for a lot of uses) for me #2 or to #1
    • linear (all, as now)
    • structured with sub-structures (very clear if there are no more than 5..7 entrys per structure layer)
    • task - specific (features is other than transform than handle mouse etc.)
    • FAQ
    • Books
    • Plugins
    • Macro

Documentation schemes

See Documentation schemes


  • fcstd file
  • pics, images
  • icons (there are almost all)
  • "Show your FreeCAD projects here!" archives

Who are the users:

  • New users FreeCAD:
    • Users without CAD experience -> not the job of the FreeCAD doc to teach them CAD - the job to teach them how to use FreeCAD? Renato: I think that FreeCAD is currently the only free CAD program with a professional approach. Many people exactly look for this to begin.
    • Users with CAD experience (2D/3D/parametric); users with 3D experience - no CAD
    • Users who know how to program (version?)
  • Users who know FreeCAD:
    • Users
    • Advanced users
    • Developers

What the users needs:

  • According to the category of the previous point they need different things (to be determined).
  • Renato: In my opinion the beginners to FreeCAD (or to CAD?) needs:
    • find the information immediately + Ralf: in the expected, consistent way
    • know what are the workbenches, when and how to use them, + Ralf: is this one workbench all I need or do I need more than one?
    • the commands that are available, + Ralf: in the workbench - for the task - all
    • the workflow to use, - Ralf: workflow sounds specific - may be the most basic way to use this - may be especially for tools there could be more than page per tool (as above: basic for beginners, extended use for advanced users)
    • ....


  • Consistent (the reference page is the English page, see the various discussions regarding the rules in the forum)
  • Updated (how?) + Ralf: 1st: Version, 2nd: frozen state of doc page - "this is the actual version of the documentation of ... for FC version xxx"; 3rd linked archiv pages of other versions (and maybe other frozen states), all with corresponding "tags" / marks
    • Use a document type that including at least one complete section of the manual (not just one page at a time). Comparable off line with an previous version. With "Recent changes" is difficult to follow all the changes, when they are frequent.
  • FCSTD files for Documentation (wandererfan wrote: It would be nice to have a repository for the fcstd files +Ralf and it would be very helpful - used to generate screenshots, etc. Then the 2nd author/translator could just open the fcstd with a different locale to generate the new screenshot. This would also for standardization of background colours, font sizes, etc. )
  • Renato. My personal:

- The wiki, is the best way to create documentation FreeCAD? Would not it be better to reserve it for some issues and create a comprehensive manual for each version?
- About updates, this is a crucial point, I've seen that you do not like docboock, and I do not intend to return to this theme, but docboock allows translators to easily work on documents. Allows you to download the entire document and compare it with the previous one. With this way changes are made always and only in the original document. Then the translators periodically (even daily if they want) downloading the document and compares with an earlier version and update it indicating the upgrade version. I've experienced that this procedure is very good. Can I do a similar thing with the wiki? In this way there is no need to continuously monitor Recent Changes and updates are easier to control.

Some notes taken from the forum

yorikvanhavre wrote: Actually we could do a little brainstorming, see things that should be changed on the wiki... I already thought of a couple of things: - a new wiki homepage with a clear view of the contents - better formatting of the 3 principal sections, for user (basically the command pages), for power users (everything about python) and the higher-level stuff (compiling, etc) - more professional aspect of the wiki pages - build a better and more strict model for command pages - find a good system to handle translations

gdo wrote: But maybe a survey to freecad users could help to understand precisely what is the beginners needs.

Ralf wrote: Even for the ones who are trying FreeCAD the first times, it's essential to find a consistent documentation otherwise they weren't motivated to give even some first tries.

And many more ... dispersed and mixed in:

Examples of CAD documentation

Ralf: good: you can see where you are ; bad: a huge lot of entrys in the navigation / summary at left - the opposite of structured; sorry: pieces of the forum at the documentation page: what is the documentation page good for than? (but the link to the forum / forum search - ok.)
Ralf: thumbs up. clear, well structured. sometimes long but I don't know how to avoid that at some themes. Maybe the tree structure layers could be separated in two directions at the page for more place for the content. They have "last updates" I prefer "this version of the documentation is xxx and depend the program version xxy"

Reported by wandererfan
guidelines for wiki authors:
Manual TOC:

Reported by Ralf:

For the Italian translation also:

Next actions

  1. gather ideas
  2. build Table of Contents
  3. build good models (in the template created by Wandererfan)
  4. edit the master page in English (updated until a new FreeCAD version is released then freeze the document in pdf or doc or other)
  5. translate (updated until a new FreeCAD version is released then freeze)
  6. continue to develop the documentation for the new version of FreeCAD (repeats 4)
  7. continue to develop the translation for the new version of FreeCAD (repeats 5)

Terminology - Naming policy


See Glossary

Other languages

proposal to create the page:

Start Center

When you start FreeCAD for the first time, you are presented with the start center:


The Start Center allows you to quickly jump to one of the most common workbenches, open one of the recent files, or see the latest news from the FreeCAD world. You can change the default workbench in the preferences.

Use this part of Getting started then add more information

Sandbox Macros recipes




  • Rectellipse
  • Circle 3 Points
  • Draft Circle 3 Points
  • Draft Circle 3 Points 3D
  • Ellipse Center+2Points
  • Line Length
  • Circle
  • Triangle AH
  • Bounding Box
  • Involute Gear
  • Wire XYZ
  • Helix Variable
  • Repro Wire
  • Apothem Based Prism GUI


  • Make Cube


  • Solid Sweep
  • Screw Maker 1_2
  • Parts Library
  • Stairs
  • Gear


  • Arch Axis System Repartition
  • Work Features


  • Geodesic Dome
  • Airfoil Import & Scale
  • Texture
  • Circular Text
  • Geneva Wheel
  • Geneva Wheel GUI
  • Cabinets 32
  • Half-Hull



  • Cut Line
  • Cut Circle
  • Repro Wire





  • Array Copy
  • Flatten Wire
  • Mesh To Part
  • Joint Wire
  • Remove History
  • Super Wire
  • Heal Arcs
  • Face to Sketch
  • Edges to Arc
  • Clone Convert
  • Faces from DXF

3D View operations

  • Rotate View
  • View Rotation
  • Texture Objects
  • Mouse Cross
  • Align View to Face
  • Align Object to View
  • Align Face Object to View
  • Camera
  • Select Visible


  • Sheet Metal Unfolder
  • Unroll Ruled Surface
  • Unfold Box
  • Geneva Wheel GUI
  • Apothem Based Prism GUI



  • Message Box
  • Info
  • Info Linux
  • Info Glass
  • Delta XYZ
  • Center Face
  • Object Info
  • Macro Menu
  • Dump Objects
  • Highlight Common
  • Highlight Difference
  • Select Visible


  • Work Features


  • Force Recompute
  • Remove History
  • 3D Printer Slicer
  • Shake Sketch
  • Replace Part
  • Manage Navigation Style
  • Toggle Views Visibility
  • Python Assistant Window
  • Build Utility
  • Global Variable Watcher
  • Property Memo
  • Plugin Manager


  • Airfoil Import & Scale
  • Faces from DXF
  • Export to Kerkythea

Mathematical functions

  • 3D Parametric Curve
  • Draw 2D Function
  • Draw Parametric 2D Function


  • Crank Simul
  • Spring
  • Hinge
  • Assembly
  • Animated Constrain
  • Assemblage Imprimate 3D



  • Arch Axis System Repartition


  • Export to Kerkythea


  • GMSH


  • Automatic Drawing
  • Corner Shapes Wizard
  • Cartouche
  • Cartouche Full
  • Cartouche 2
  • Get Normal Vector of Face

Workbenches experimental

  • Lattice
  • DDim


Geometries Solids Shapes Support Other
  • Rectellipse
  • Circle 3 Points
  • Draft Circle 3 Points
  • Draft Circle 3 Points 3D
  • Ellipse Center+2Points
  • Line Length
  • Circle
  • Triangle AH
  • Bounding Box
  • Involute Gear
  • Wire XYZ
  • Helix Variable
  • Repro Wire
  • Apothem Based Prism GUI
  • Make Cube
  • Solid Sweep
  • Screw Maker 1_2
  • Parts Library
  • Stairs
  • Gear
  • Arch Axis System Repartition
  • Work Features
  • Geodesic Dome
  • Airfoil Import & Scale
  • Texture
  • Circular Text
  • Geneva Wheel
  • Geneva Wheel GUI
  • Cabinets 32
  • Half-Hull

Sandbox for Macro Dimensions

Text-x-python.png Dimensions

Macros recipes
How to install macros
How to customize toolbars


Macro for easy add dimension to Draft ... objects ...


How to install

  • Copy and paste the code into a macro (see Ho to install macro)
  • Save with a meaningful name (for me "dm")


  • In FreeCAD Python Console digit "import dm" -> Return
  • In FreeCAD Python Console digit "dm.showup()" -> Return
  • set path for .ttf
    • in its latest tested version, the path must be defined on line 1112, replacing path = "/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-B.ttf"
  • set other options


  • Auto: Vertical + parallel. Point1 and point2 you click decide the string, and the point3 decide direction and the position.
  • 2Point: The string is the distance of the point1 and point2. Point3 decide the position of the string.
  • Vertical: Just like auto, but the direction must be vertical.
  • Parallel: Just like auto, but the direction must be parallel.
  • Orthogonal:
  • Angle: To click line1 and line2. They will decide a angle. And last point decide the position of the string.
  • Custom: Mmake a String what you enter. Point1 is the start. point2 is the end.
  • Del obj: It can delete the dimension you make. Just click it and what you clicked will be deleted.

Limitations and things to improve

  • When lines are moved, the dimensions do not follow the design
  • parallel functions as "orthogonal" (to me) solved, parallel has been removed
  • path for .ttf is lost when exit, or Freecad is closed solved, now the path is set in the code
  • It can not be paused, but it is always active, or exit
  • It works only in the xy plane, or planes parallel to the xy
  • When you break a dimension, disappear all properties


  • download from the forum, here it is not accepted
  • if it is present, remove the line 9 "import GSDraftGeomUtils"


Other similar instruments

Sandbox for PartDesign Fillet

Some considerations about Part Design Fillet.

Fillet is a useful tool, very agile for certain operations, but subject to certain limitations.

The examples are based on a cube 10x10x20.

First case. Fillet on an edge.


In appearance this tool acts on an edge, but in reality creates a curved surface that joins two other surfaces. Therefore it uses two faces as references, for example the side face and the upper face of a cube. At the edge that separates them can be applied a rounding with a radius equal to the limit dimension of the smaller face less a "residual safety value" of 0.0001 (according to the value of decimal set). The "security value" serves to maintain existing a small surface, in this case large 0.0001.


When one of the two surfaces that are connected disappears completing the operation fails because it lacks one of the references used by the function, and the result is unpredictable.

Second case. Fillet applied on two opposite edges of the same face.


In this case, there is not a limit radius, but the limit is (R1 + R2 <thickness-0.0001). The limit is valid if R1 or R2 are not superior to others thicknesses involved in the operation (eg. The height of the cube). The "residual safety value" is positioned at the junction of the fillets.

Imm4.png Imm5.png

It is recommended to use this function only when modeling is ended, to eliminate "sharp corners", and instead use alternative tools to produce the model.

Alternative methods of rounding.

A simple method to create the rounded surfaces in a continuous manner, without the "surface residue" is, for example, to create a "cleaner" sketch on the front face as in this figure


and then apply a Pocket -> Through all. It returns a completely clean solid, without any interruption of the rounding surface. Adequately shaping the sketch you can create any profile, even eccentric.


Even the Boolean operations allow to obtain the same result, but the dependence of the elements is different.

Since version 0.16_pre 6692 FreeCAD has been equipped with an extra check if fillet and chamfer operation returns valid shape.




Lines created by a PartDesign Fillet can not be selected for an additional fillet or a chamfer.

PartDesign Chamfer has the same behavior.

Lines created by a Chamfer can be selected for an additional chamfer or fillet.

PartDesign fillet and chamfer on tangent edges..........

Part .......... many things are similar.

Available translations of this page: {{|}} {{|}}