FreeCAD Logo FreeCAD 1.0
  • English Afrikaans Arabic Belarusian Catalan Czech German Greek Spanish Spanish Basque Finnish Filipino French Galician Croatian Hungarian Indonesian Italian Japanese Kabyle Korean Lithuanian Dutch Norwegian Bokmal Polish Portuguese Portuguese Romanian Russian Slovak Slovenian Serbian Swedish Turkish Ukrainian Valencian Vietnamese Chinese Chinese
  • Features
  • Download
  • Blog
  • Documentation
    Documentation index Getting started Users documentation The FreeCAD manual Workbenches documentation Python coding documentation C++ coding documentation Tutorials Frequently asked questions Privacy policy About FreeCAD
  • Contribute
    How to help Sponsor Report a bug Make a pull request Jobs and funding Contribution guidelines Developers handbook Translations
  • Community
    Code of conduct Forum The FPA GitHub GitLab Codeberg Mastodon Matrix IRC IRC via Webchat Gitter Discord Reddit Twitter Facebook LinkedIn Calendar
  • ♥ Donate

Donate

$
SEPA Information
Please set up your SEPA bank transfer to:
Beneficiary: The FreeCAD project association
IBAN: BE04 0019 2896 4531
BIC/SWIFT: GEBABEBBXXX
Bank agency: BNP Paribas Fortis
Address: Rue de la Station 64, 1360 Perwez, Belgium

While Stripe doesn't support monthly donations, you can still become a sponsor! Simply make a one-time donation equivalent to 12 months of support, and you'll gain access to the corresponding sponsoring tier. It's an easy and flexible way to contribute.

If you are not sure or not able to commit to a regular donation, but still want to help the project, you can do a one-time donation, of any amount.

Choose freely the amount you wish to donate one time only.

You can support FreeCAD by sponsoring it as an individual or organization through various platforms. Sponsorship provides a steady income for developers, allowing the FPA to plan ahead and enabling greater investment in FreeCAD. To encourage sponsorship, we offer different tiers, and unless you choose to remain anonymous, your name or company logo will be featured on our website accordingly.

from 1 USD / 1 EUR per month. You will not have your name displayed here, but you will have helped the project a lot anyway. Together, normal sponsors maintain the project on its feet as much as the bigger sponsors.

from 25 USD / 25 EUR per month. Your name or company name is displayed on this page.

from 100 USD / 100 EUR per month. Your name or company name is displayed on this page, with a link to your website, and a one-line description text.

from 200 USD / 200 EUR per month. Your name or company name and logo displayed on this page, with a link to your website and a custom description text. Companies that have helped FreeCAD early on also appear under Gold sponsors.

Instead of donating each month, you might find it more comfortable to make a one-time donation that, when divided by twelve, would give you right to enter a sponsoring tier. Don't hesitate to do so!

Choose freely the amount you wish to donate each month.

Please inform your forum name or twitter handle as a notein your transfer, or reach to us, so we can give you proper credits!


GuiCommand: Name: Arch Roof MenuLocation: 3D/BIM , Roof Workbenches: BIM_Workbench Shortcut: R F SeeAlso:

Arch Roof

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

  1. Create a closed wire with following the counter-clockwise direction and select it.

    :

  2. Press the 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 custom solid object using various other FreeCAD workbenches (wiki-test2.php?gitpage=Part, Sketcher etc.). And then use this solid as the Base object of your roof:

  1. Select the solid base object.
  2. Press the Arch Roof button, or press R then F keys.

Subtracting a roof

Roofs have an automatically generated subtraction volume ((v1.0) for roofs with a solid base). When a roof is removed from the walls of a building, both the roof itself as well as everything above it is subtracted from the walls.

(v1.0)

: It is possible to override the automatic subtraction volume by setting the Subvolume property of the roof to a custom solid object.

*Solid-based roof before (1st image) and after (2nd image) [removing](wiki-test2.php?gitpage=Arch_Remove) it from walls.
The 3rd image shows the generated subtraction volume.*

Options

  • Roofs share the common properties and behaviors of all Arch Components.

Properties

Data

{{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.

  • Subvolume|Link: The volume to subtract. If specified it is used instead of the auto-generated subvolume. (v1.0)

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

⏵ documentation index > BIM > Arch Roof

This page is retrieved from https://github.com/FreeCAD/FreeCAD-documentation/blob/main/wiki/Arch_Roof.md

Get in touch!
Forum GitHub Mastodon Matrix IRC Gitter.im Discord Reddit Twitter Facebook LinkedIn

© The FreeCAD Team. Homepage image credits (top to bottom): ppemawm, r-frank, epileftric, regis, rider_mortagnais, bejant.

This project is supported by: , KiCad Services Corp. and other sponsors

GitHubImprove this page on GitHub