Arch Roof

From FreeCAD Documentation
Revision as of 08:54, 4 March 2024 by Roy 043 (talk | contribs)

Arch Roof

Menu location
Arch → Roof
Workbenches
Arch
Default shortcut
R F
Introduced in version
-
See also
Arch Structure, Arch Wall

Description

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

Usage

  1. Create a closed wire with following the counter-clockwise direction and select it.
  2. Press the Arch Roof button, or press R then F keys
  3. The default roof object could have a strange shape, it's because the tool is missing some necessary information.
  4. 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.
  5. Each line corresponds to a roof pane. So you can set the properties you want for each roof pane.
  6. To help you, you can set Angle or Run to 0 and define a Relative Id, this makes an automatic calculation to find the data relative to the Relative Id.
  7. It works like this:
    1. If Angle = 0 and Run = 0 then profile is identical to the relative profile.
    2. If Angle = 0 then Angle is calculated so that the height is the same one as the relative profile.
    3. If Run = 0 then Run is calculated so that the height is the same one as the relative profile.
  8. Finally, set an Angle to 90° to make a gable.
  9. Note: for better comprehension, please see this youtube clip.

Usage (solid base)

If your roof has a complex shape (e.g. contains pitched windows or other non-standard features) you can create a roof object from existing solid object. Sketcher allows you to define the geometry of your roof accurately.

This documentation is not considered to be about workflow for creating such solids: for that goal you can use various FreeCAD workbenches (Part, Sketcher etc).

In order to create a solid-based ArchRoof, you should select a base object and call Arch Roof.

In current implementation, wall subtraction for solid-based roof is not supported out of the box: you need to do some manual work.

Shape that is used as subtraction object is called subvolume. By default, ArchRoof uses base object as subvolume.

So, if you try to subtract roof from your walls you can see that walls are not subtracted properly, because only base shape is subtracted:

To fix this point, you need to define your own subvolume. Most probably, this shape looks like extruding your roof by z-plane up.

Example is provided in the picture below:

You need to define this component by yourself. After that, remove this component from your walls using Arch Remove from the top menu.

And your walls will be subtracted properly:

Functional, introduced in version 0.22, allows us to override default subvolume object (new property is added to ArchRoof). If field is set, it has a priority over the default implementation. You can set this field directly to your roof object and subtract the only one object - the roof.

See also: freecad forum: sketch based roof and subvolume field pull request

Options

Properties

Data

Roof

  • 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.
  • DataSubvolume (Link): The volume to subtract. If specified it is used instead of the auto-generated subvolume. introduced in version 0.22
  • DataThickness (FloatList): The list of thicknesses of the roof segments.

Scripting

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 given baseobj, which can be a closed wire or a solid object.
    • If baseobj is a wire, you can provide lists for angles, run, idrel, thickness, and 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.

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()