Arch Rebar Drawing Dimensioning

Please Note: The below work is present in the develop branch of the Reinforcement workbench here

Description
The Reinforcement Drawing Dimensioning tool allows the user to create drawing and dimensioning of reinforcing bars.

This command is part of the Reinforcement Workbench, an external workbench that can be installed with the Addon Manager via the  menu.



Usage
1. Open FreeCAD Model containing reinforcement bars created using Reinforcement Addon.

2. In FreeCAD Python console, copy the below code snippet to generate reinforcement drawing and dimensioning from different views for each Arch Structure element.

Scripting
Arch API, Reinforcement API and FreeCAD Scripting Basics.

The Reinforcement Drawing Dimensioning tool can be used in macros and from the Python console by using the following function:

Create Reinforcement Drawing And Dimensioning
Format: (r, g, b)   r, g, b value should be between 0 to 1, so you may need to divide the value of r, g, b by 255 to get its value between 0 to 1 Make sure r, g, b must be float Example: (0.67, 0.0, 0.0)
 * It returns, a dictionary with structure as key and corresponding reinforcement drawing page as the value.
 * is the list of structural objects to generate their reinforcement drawing. If not provided, structures will be selected from the active document acting as Host for rebar objects.
 * is the list of rebar objects to be included in the drawing. If not provided, rebars objects having Host in structure_list will be selected from the active document.
 * specifies the view of drawing to be generated. It can be "Front", "Rear", "Left", "Right", "Top" or "Bottom".
 * specifies the stroke-width of rebars in drawing SVG.
 * specifies the color style of rebars. Set it to "Automatic" to automatically select rebars color or "Custom" to choose shape color value from variable.
 * specifies the fill color for rebars in drawing SVG.
 * specifies the stroke-width of structure in drawing SVG.
 * specifies the fill style of the structure. Set it to "Automatic" to automatically select structure color or "Custom" to choose structure color value from variable.
 * specifies the fill color for structure in drawing SVG. Format: (r, g, b)
 * specifies the left offset of the drawing view on.
 * specifies the top offset of the drawing view on.
 * specifies the minimum right offset of the drawing view on.
 * specifies the minimum bottom offset of the drawing view on.
 * specifies the maximum width of drawing on.
 * specifies the maximum height of drawing on.
 * is the template file to be used for the reinforcement drawing page.

Example: "%M %C⌀%D,span=%S" Here: %M -> Rebar.Mark %C -> Rebar.Amount %D -> Rebar.Diameter %S -> Rebar span length Format: (r, g, b)   r, g, b value should be between 0 to 1, so you may need to divide the value of r, g, b by 255 to get its value between 0 to 1 Make sure r, g, b must be float
 * specifies if dimensioning needs to be created for rebars in drawing.
 * is the list of rebars to perform dimensioning. Set it to None to dimension all visible rebars in drawing.
 * is the format used for the dimension label.
 * is the font family of dimension label.
 * is the font size of the dimension label.
 * is the stroke-width of dimension line.
 * is the stroke style of dimension line. It can be "Continuous", "Dash", "Dot", "DashDot" or "DashDotDot".
 * is the color of the dimension line.
 * is the color of the dimension label.
 * is the dimension line start symbol, in case of single rebar is visible. It can be "FilledArrow", "Tick", "Dot" or "None".
 * is the dimension line end symbol, in case of single rebar is visible. It can be "FilledArrow", "Tick", "Dot" or "None".
 * is the dimension line start symbol, in case of multiple rebars are visible. It can be "FilledArrow", "Tick", "Dot" or "None".
 * is the dimension line end symbol, in case of multiple rebars are visible. It can be "FilledArrow", "Tick", "Dot" or "None".
 * is the dimension line midpoints symbol. It can be "Tick", "Dot" or "None".
 * specifies the left offset of the dimension from drawing.
 * specifies the right offset of the dimension from drawing.
 * specifies the top offset of the dimension from drawing.
 * specifies the bottom offset of the dimension from drawing.
 * is the increment in the left offset to move each new dimension label away from drawing.
 * is the increment in the right offset to move each new dimension label away from drawing.
 * is the increment in the top offset to move each new dimension label away from drawing.
 * is the increment in the bottom offset to move each new dimension label away from drawing.
 * specifies if dimension lines are to be outside of reinforcement drawing, in case of single rebar is visible.
 * specifies if dimension lines are to be outside of reinforcement drawing, in case of multiple rebars are visible.
 * specifies the dimension label position type, in case of single rebar is visible. It can be "StartOfLine", "MidOfLine" or "EndOfLine".
 * specifies the dimension label position type, in case of multiple rebars are visible. It can be "StartOfLine", "MidOfLine" or "EndOfLine".

Example
= Reinforcement Drawing =

Usage
1. Open FreeCAD Model containing reinforcement bars created using Reinforcement Addon.

2. In FreeCAD Python console, copy the below code snippet to generate reinforcement drawing from different views for each Arch Structure element.

ReinforcementDrawingView Object
A Rebars Drawing SVG View object.

Properties

 * : The structure object acting as a Host for rebars to be included in the drawing.
 * : The list of rebar objects to be included in the drawing.
 * : The reinforcement drawing view to be generated. It can be "Front", "Rear", "Left", "Right", "Top" or "Bottom".
 * : The position type of Reinforcement Drawing on Template. It can be "Automatic" to calculate drawing placement using, , and  OR "Custom" to set placement using  and.
 * : The stroke width of rebars in Reinforcement Drawing SVG.
 * : The color style of rebars in Reinforcement Drawing SVG. Set it to "Automatic" to automatically select rebars color OR "Custom" to choose shape color value from.
 * : The color of rebars in Reinforcement Drawing SVG.
 * : The stroke width of the structure in Reinforcement Drawing SVG.
 * : The color style of structure in Reinforcement Drawing SVG. Set it to "Automatic" to automatically select rebars color, "Custom" to choose shape color value from OR "None" to not fill structure.
 * : The color of structure in Reinforcement Drawing SVG.
 * : The template for the Reinforcement Drawing view.
 * : The width of the Reinforcement Drawing view SVG.
 * : The height of Reinforcement Drawing view SVG.
 * : The left offset of Reinforcement Drawing view on a template.
 * : The top offset of Reinforcement Drawing view on a template.
 * : The minimum right offset of Reinforcement Drawing view on a template.
 * : The minimum bottom offset of Reinforcement Drawing view on a template.
 * : The maximum width of the Reinforcement Drawing view.
 * : The maximum height of the Reinforcement Drawing view.
 * : The list of visible rebar objects in the drawing view.
 * : The left offset for each new ReinforcementDimensioning object.
 * : The right offset for each new ReinforcementDimensioning object.
 * : The top offset for each new ReinforcementDimensioning object.
 * : The bottom offset for each new ReinforcementDimensioning object.

Scripting
Arch API, Reinforcement API and FreeCAD Scripting Basics.

The Reinforcement Drawing functions can be used in macros and from the Python console by using the following functions:

For one structure
Format: (r, g, b)   r, g, b value should be between 0 to 1, so you may need to divide the value of r, g, b by 255 to get its value between 0 to 1 Make sure r, g, b must be float Example: (0.67, 0.0, 0.0)
 * Creates a object for the given structure and rebar objects list.
 * It returns the of type.
 * specifies the view of drawing to be generated. It can be "Front", "Rear", "Left", "Right", "Top" or "Bottom".
 * specifies the stroke-width of rebars in drawing SVG.
 * specifies the color style of rebars. Set it to "Automatic" to automatically select rebars color or "Custom" to choose shape color value from variable.
 * specifies the fill color for rebars in drawing SVG.
 * specifies the stroke-width of structure in drawing SVG.
 * specifies the fill style of the structure. Set it to "Automatic" to automatically select structure color or "Custom" to choose structure color value from variable.
 * specifies the fill color for structure in drawing SVG. Format: (r, g, b)
 * specifies the left offset of the drawing view on.
 * specifies the top offset of the drawing view on.
 * specifies the minimum right offset of the drawing view on.
 * specifies the minimum bottom offset of the drawing view on.
 * specifies the maximum width of drawing on.
 * specifies the maximum height of drawing on.
 * is the template file to be used for the reinforcement drawing page.
 * specifies the left offset of the dimension from drawing.
 * specifies the right offset of the dimension from drawing.
 * specifies the top offset of the dimension from drawing.
 * specifies the bottom offset of the dimension from drawing.

For multiple structures

 * It returns, a dictionary with structure as key and corresponding reinforcement drawing page as the value.
 * is the list of structural objects to generate their reinforcement drawing. If not provided, structures will be selected from the active document acting as Host for rebar objects.
 * is the list of rebar objects to be included in the drawing. If not provided, rebars objects having Host in structure_list will be selected from the active document.

Example
= Reinforcement Dimensioning =

Usage
1. Open FreeCAD Model containing reinforcement bars created using Reinforcement Addon.

2. In FreeCAD Python console, copy the below code snippet to generate reinforcement drawing and dimensioning from different views for each Arch Structure element.

ReinforcementDimensioning Object
A Rebar Dimensioning SVG View object.

Properties
Example: "%M %C⌀%D,span=%S" Here: %M -> Rebar.Mark %C -> Rebar.Amount %D -> Rebar.Diameter %S -> Rebar span length
 * : The parent ReinforcementDrawingView object containing the drawing of Rebar object.
 * : The Rebar object to perform dimensioning.
 * : The WayPoints type of dimension line. It can be "Automatic" (to automatically perform dimensioning of Rebar object) or "Custom" to use to perform dimensioning.
 * : A list of vector points to be used to generate a dimension line.
 * : The position type of dimension text. It can be "StartOfLine", "MidOfLine" or "EndOfLine".
 * : The dimension label format.
 * : The font family of dimension label.
 * : The font size of the dimension label.
 * : The stroke width of the dimension line.
 * : The stroke style of the dimension line. It can be "Continuous", "Dash", "Dot", "DashDot" or "DashDotDot".
 * : The color of the dimension line.
 * : The color of the dimension label.
 * : The start symbol of the dimension line. It can be "FilledArrow", "Tick", "Dot" or "None".
 * : The end symbol of the dimension line. It can be "FilledArrow", "Tick", "Dot" or "None".
 * : The midpoints symbol of the dimension line. It can be "Tick", "Dot" or "None".
 * : The left offset for automated reinforcement dimensioning.
 * : The right offset for automated reinforcement dimensioning.
 * : The top offset for automated reinforcement dimensioning.
 * : The bottom offset for automated reinforcement dimensioning.
 * : The dimension line start symbol, in case of single rebar is visible. It can be "FilledArrow", "Tick", "Dot" or "None". It is used only when is set to "Automatic".
 * : The dimension line end symbol, in case of single rebar is visible. It can be "FilledArrow", "Tick", "Dot" or "None". It is used only when is set to "Automatic".
 * : The dimension line start symbol, in case of multiple rebars are visible. It can be "FilledArrow", "Tick", "Dot" or "None". It is used only when is set to "Automatic".
 * : The dimension line end symbol, in case of multiple rebars are visible. It can be "FilledArrow", "Tick", "Dot" or "None". It is used only when is set to "Automatic".
 * : It specifies if dimension lines are to be outside of reinforcement drawing, in case of single rebar is visible. It is used only when is set to "Automatic".
 * : It specifies if dimension lines are to be outside of reinforcement drawing, in case of multiple rebars are visible. It is used only when is set to "Automatic".
 * : It specifies the dimension label position type, in case of single rebar is visible. It can be "StartOfLine", "MidOfLine" or "EndOfLine". It is used only when is set to "Automatic".
 * : It specifies the dimension label position type, in case of multiple rebars are visible. It can be "StartOfLine", "MidOfLine" or "EndOfLine". It is used only when is set to "Automatic".

Scripting
Arch API, Reinforcement API and FreeCAD Scripting Basics.

The Reinforcement Dimensioning functions can be used in macros and from the Python console by using the following functions:

Create Reinforcement Dimensioning Object
Example: "%M %C⌀%D,span=%S" Here: %M -> Rebar.Mark %C -> Rebar.Amount %D -> Rebar.Diameter %S -> Rebar span length Format: (r, g, b)   r, g, b value should be between 0 to 1, so you may need to divide the value of r, g, b by 255 to get its value between 0 to 1 Make sure r, g, b must be float
 * Creates and returns a object for the given  object.
 * is the object containing a drawing of  object.
 * is the object of type TechDraw::DrawPage used to show.
 * is the format used for the dimension label.
 * is the font family of dimension label.
 * is the font size of the dimension label.
 * is the stroke-width of dimension line.
 * is the stroke style of dimension line. It can be "Continuous", "Dash", "Dot", "DashDot" or "DashDotDot".
 * is the color of the dimension line.
 * is the color of the dimension label.
 * is the dimension line start symbol, in case of single rebar is visible. It can be "FilledArrow", "Tick", "Dot" or "None".
 * is the dimension line end symbol, in case of single rebar is visible. It can be "FilledArrow", "Tick", "Dot" or "None".
 * is the dimension line start symbol, in case of multiple rebars are visible. It can be "FilledArrow", "Tick", "Dot" or "None".
 * is the dimension line end symbol, in case of multiple rebars are visible. It can be "FilledArrow", "Tick", "Dot" or "None".
 * is the dimension line midpoints symbol. It can be "Tick", "Dot" or "None".
 * is the increment in the left offset to move each new dimension label away from drawing.
 * is the increment in the right offset to move each new dimension label away from drawing.
 * is the increment in the top offset to move each new dimension label away from drawing.
 * is the increment in the bottom offset to move each new dimension label away from drawing.
 * specifies if dimension lines are to be outside of reinforcement drawing, in case of single rebar is visible.
 * specifies if dimension lines are to be outside of reinforcement drawing, in case of multiple rebars are visible.
 * specifies the dimension label position type, in case of single rebar is visible. It can be "StartOfLine", "MidOfLine" or "EndOfLine".
 * specifies the dimension label position type, in case of multiple rebars are visible. It can be "StartOfLine", "MidOfLine" or "EndOfLine".