|Arch → Roof|
|Introduced in version|
|Arch Structure, Arch Wall|
Thetool 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 button, or press then 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
0and define a
Relative Id, this makes an automatic calculation to find the data relative to the
- It works like this:
Angle = 0and
Run = 0then profile is identical to the relative profile.
Angle = 0then
Angleis calculated so that the height is the same one as the relative profile.
Run = 0then
Runis calculated so that the height is the same one as the relative profile.
- 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.
- DataAngles (
FloatList): The list of angles of the roof segments.
- DataBorder Length (
Length): The total length of the borders of the roof.
- DataFace (
Integer): The face number of the base object used to build the roof (not used).
- DataFlip (
Bool): Specifies if the direction of the roof should be flipped.
- DataHeights (
FloatList): The list of calculated heights of the roof segments.
- DataId Rel (
IntegerList): The list of IDs of the relative profiles of the roof segments.
- DataOverhang (
FloatList): The list of overhangs of the roof segments.
- DataRidge Length (
Length): The total length of the ridges and hips of the roof.
- DataRuns (
FloatList): The list of horizontal length projections of the roof segments.
- DataThickness (
FloatList): The list of thicknesses of the roof segments.
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 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()