Jump to navigation Jump to search
|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 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: 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 of 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()