TechDraw LengthDimension

Description
The Dimension Length tool adds a linear dimension to a View. The dimension may be between the distance between two vertices, the length of one edge or the distance between 2 edges. The distance will initially be the projected distance (ie as shown on the drawing), but this may be changed to the actual 3D distance using the tool.



Usage

 * 1) Select the points or edge which define your measurement.
 * 2) Press the  button
 * 3) A dimension will be added to the View.  The dimension may be dragged to the desired position.

Limitations
Dimension objects are vulnerable to the "topological naming problem". This means that if you modify the 3D geometry the faces and edges of the model may be renamed internally; if a dimension is attached to an edge that is then modified, the dimension may break. In general, it is not possible to keep the projected 2D dimensions synchronized with the actual 3D objects.

Therefore, it is recommended that dimensions be added when the 3D model is no longer being modified.

Workaround
If you want to keep a TechDraw view with dimensions that won't break, you need to dimension an object that won't change.
 * Select the object that you want to project, then switch to the [[Image:Workbench_Part.svg|24px]] Part Workbench and use . This will create a single object that is not parametric, that is, no longer editable.
 * Select this copy, then use TechDraw View, and add the desired dimensions.
 * If the original 3D model is modified, the modifications won't affect the simple copy, nor the dimensions in the TechDraw view.

See Landmark Dimensions for another approach to circumventing the topological naming issue.

Data

 * : Horizontal position of the dimension text relative to the View.
 * : Vertical position of the dimension text relative to the View.
 * : Length,radius,diameter, etc. Not normally manipulated by the end user.
 * : - based on 3D geometry or "Projected" - based on the drawing. Not normally manipulated directly by the end user.
 * : Specifies a theoretically exact (or basic) dimension.
 * - a common dimension by default, possibly with tolerances.
 * - a theoretical value. As such, it shall not bear any tolerances. Marked by a frame around the value.


 * : The amount by which the piece may be larger than the Dimension shown.
 * : The amount by which the piece may be smaller than the Dimension shown.
 * : Marks whether the dimension represents a common or an inverted value.
 * - the ordinary value is used. For length it is a positive number, for angle the oblique value (0° - 180°).
 * - the inverted value is used. For length a negative number, for angle the reflex value (180° - 360°).


 * : Allows additional text to be added to the dimension text.
 * Dimension value will replace the  part of text (or any other valid format specifier - see printf).


 * : Specifies, whether treat FormatSpec as a template or an actual text.
 * - replace the format specifier with the actual dimensional value.
 * - ignore the dimensional value and display exactly FormatSpec as value.

View

 * : Sets whether the dimension is visible. - visible,  - hidden.


 * : The name of the font to use for the dimension text.
 * : Dimension text size in mm.
 * : Dimension line weight.
 * : Color for lines and text.
 * : Specifies the standard (and the style of it) according to which the dimension is drawn:
 * - drawn according to ISO 129.1 (international standard), text is rotated to be parallel with the dimension line tangent.
 * - drawn in compliance with ISO-129.1, text is always horizontal, above the shortest possible reference line.
 * - drawn according to ASME Y14.5M (US standard), text is horizontal, inserted in a break within the dimension line or arc.
 * - drawn in compliance with ASME Y14.5M, text is horizontal, short reference line is attached to one side's vertical center.


 * : Rather universal property specifying how much space the dimension drawing may take up:
 * - no lines or arrows are drawn, only the bare dimension value is displayed.
 * - for lengths and angles a single headed line connecting the dimensional value and the end point's virtual extension line is drawn. The extension line itself is not added.
 * Diameters are rendered following  extent, radii following   extent.
 * - for lengths and angles a double headed line (or arc) connecting the start and end point's virtual extension lines is drawn, though the extension lines themselves are not added.
 * Diameters are drawn with a minimal single headed line from dimensional value to the closest point on circle, radii as with  extent.
 * - for lengths and angles a single headed line connecting the dimensional value and the end point's extension line is drawn along with the extension line itself.
 * Diameters are drawn with a single headed line from the center to the closest point on circle, radii with a minimal single headed line from dimensional value to the closest arc point.
 * - the default value. For lengths and angles a double headed line (or arc) connecting the start and end point's extension lines is drawn, the extension lines themselves as well.
 * Diameters are drawn as double headed lines striking the center and connecting the closest and farthest points on the circle.
 * Radii are drawn as a single headed line from center to the closest arc point.
 * - Only diameters support this value, rendering them in a horizontal or vertical length-like way. Other dimension types are rendered as with  extent.


 * : By default the value inside the dimension line/arc means the arrows pointing outwards. If placed outside the dimension line/arc, the arrows point inwards the dimension line/arc.
 * - Let the direction of arrows to be selected automatically according to the rule above.
 * - Override the automatically chosen direction and force the opposite one.

Standard and Style
For a quick preview and presentation of the 4 basic Standard And Style differences, please see the picture below (from https://forum.freecadweb.org/viewtopic.php?f=35&t=39571):



Scripting
TechDraw API and FreeCAD Scripting Basics.

The Dimension Length tool can be used in macros and from the Python console by using the following functions: