---
GuiCommand:
Name: Arch Roof
MenuLocation: Arch , Roof
Workbenches: Arch_Workbench
Shortcut: **R** **F**
SeeAlso: Arch_Structure, Arch_Wall
---
The Arch Roof tool allows for the creation of a sloped roof from a selected wire. The created roof object is parametric, keeping its relationship with the base object. The principle is that each edge is seen allotting a profile of roof (slope, width, overhang, thickness).
Note: This tool is still in development, and might fail with very complex shapes.
*View from above a building model showing the roof with certain transparency*-
Create a closed wire with following the counter-clockwise direction and select it.
-
Press the Arch Roof button, or press R then F keys
-
The default roof object could have a strange shape, it's because the tool is missing some necessary information.
-
After creating the default roof, double click on the object in the tree view to access and edit all the properties. Angle must be between 0 and 90.
-
Each line corresponds to a roof pane. So you can set the properties you want for each roof pane.
-
To help you, you can set
Angle
orRun
to0
and define aRelative Id
, this makes an automatic calculation to find the data relative to theRelative Id
. -
It works like this:
- If
Angle = 0
andRun = 0
then profile is identical to the relative profile. - If
Angle = 0
thenAngle
is calculated so that the height is the same one as the relative profile. - If
Run = 0
thenRun
is calculated so that the height is the same one as the relative profile.
- If
-
Finally, set an Angle to 90° to make a gable.
-
Note: for better comprehension, please see this youtube clip.
- Roofs share the common properties and behaviors of all Arch Components.
{{TitleProperty|Roof}}
-
Angles|FloatList: The list of angles of the roof segments.
-
Border Length|Length: The total length of the borders of the roof.
-
Face|Integer: The face number of the base object used to build the roof (not used).
-
Flip|Bool: Specifies if the direction of the roof should be flipped.
-
Heights|FloatList: The list of calculated heights of the roof segments.
-
Id Rel|IntegerList: The list of IDs of the relative profiles of the roof segments.
-
Overhang|FloatList: The list of overhangs of the roof segments.
-
Ridge Length|Length: The total length of the ridges and hips of the roof.
-
Runs|FloatList: The list of horizontal length projections of the roof segments.
-
Thickness|FloatList: The list of thicknesses of the roof segments.
See also:
Arch API and FreeCAD Scripting Basics.
The Roof tool can be used in macros and from the Python console by using the following function:
Roof = makeRoof(baseobj=None, facenr=0, angles=[45.,], run=[], idrel=[0,], thickness=[50.,], overhang=[100.,], name="Roof")
- Creates a
Roof
object from the givenbaseobj
, which can be a closed wire or a solid object.- If
baseobj
is a wire, you can provide lists forangles
,run
,idrel
,thickness
, andoverhang
, for each edge in the wire to define the shape of the roof. - The lists are automatically completed to match the number of edges in the wire.
- If
Example:
import FreeCAD as App
import Arch, Draft
doc = App.newDocument()
rect = Draft.makeRectangle(3000, 4000)
doc.recompute()
roof = Arch.makeRoof(rect, angles=[30.,])
p1 = App.Vector(0, 0, 0)
p2 = App.Vector(1000, 1000, 0)
p3 = App.Vector(0, 2000, 0)
wire = Draft.make_wire([p1, p2, p3], closed=True)
doc.recompute()
roof1 = Arch.makeRoof(wire)
doc.recompute()
⏵ documentation index > Arch > Arch Roof