|Arch → Roof|
|Introduced in version|
|Arch Structure, Arch Wall|
The Roof tool allows you to create 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).
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
How to use
- Create a wire with following the counterclockwise direction and select it.
- Press the button, or press then keys
- The default roof object could have a strange shape, it's because the tool have not all the needed informations.
- 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 correspond to a roof pane. So you can set properties you want for each roof pane.
- To help you, you can set Angle or Run to 0 and defined a Relative Id, this make automatic calculs to find the data relative to the relative Id.
- It work like this :
- If Angle = 0 and Run = 0 then profile is identical to the relative profile.
- If Angle = 0 then angle is calculated so that the height is the same one as the relative profile.
- If Run = 0 then Run is calculated so that the height is the same one as the relative profile.
- At the end, set an angle to 90° to make a gable.
- Also you can check this video : https://www.youtube.com/watch?v=4Urwru71dVk
- Roofs share the common properties and behaviours of all Arch Components
- DATAAngles: List of the slope angle of the roof pane (an angle for each edge in the wire).
- DATARuns: List of the width of the roof pane (a run for each edge in the wire).
- DATAIdRel: List of relation Id The slope angle of the roof
- DATAThickness: List of thickness of the roof pane. (a thickness for each edge in the wire).
- DATAOverhang: List of the overhang of the roof pane (an overhang for each edge in the wire).
- DATAFace: The face index of the base object to be used #Not really used
Roof = makeRoof(baseobj=None, facenr=0, angles=[45.,], run=, idrel=[0,], thickness=[50.,], overhang=[100.,], name="Roof")
- Creates a
Roofobject from the given
baseobj, which can be a closed wire or a solid object.
baseobjis a wire, you can provide lists for
overhang, 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.
import FreeCAD, Arch, Draft Rect = Draft.makeRectangle(3000, 4000) Roof = Arch.makeRoof(Rect, angles=[30.,]) FreeCAD.ActiveDocument.recompute() p1 = FreeCAD.Vector(0, 0, 0) p2 = FreeCAD.Vector(1000, 1000, 0) p3 = FreeCAD.Vector(0, 2000, 0) Wire = Draft.makeWire([p1, p2, p3], closed=True) Roof2 = Arch.makeRoof(Wire) FreeCAD.ActiveDocument.recompute()