Arch Roof: Difference between revisions

From FreeCAD Documentation
(image, </syntaxhighlight>)
m ((Vertical Docnav))
(30 intermediate revisions by 6 users not shown)
Line 1: Line 1:
<languages/>
<translate>
<translate>
<!--T:1-->
<!--T:30-->
{{docnav
{{GuiCommand|Name=Arch Roof|Workbenches=[[Arch Module|Arch]]|MenuLocation=Arch -> Roof|Shortcut=R F}}
|[[Arch_Grid|Grid]]
|[[Arch_Space|Space]]
|[[Arch_Module|Arch]]
|IconL=Arch_Grid.svg
|IconC=Workbench_Arch.svg
|IconR=Arch_Space.svg
}}


==Description== <!--T:2-->
<!--T:13-->
{{GuiCommand
|Name=Arch Roof
|MenuLocation=Arch → Roof
|Workbenches=[[Arch Module|Arch]]
|Shortcut=R F
|SeeAlso=[[Arch Structure]], [[Arch Wall]]
}}


<!--T:3-->
==Description== <!--T:14-->
The Roof tool allows you to create a sloped roof from a selected face. Any face of any shape-based object can be used, and the created roof object is parametric, keeping its relationship with the base object. Please note that this tool is still in development, and might fail with very complex shapes.


<!--T:15-->
[[Image:Arch Roof example.jpg|600px]]
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).


==How to use== <!--T:4-->
<!--T:29-->
This tool is still in development, and might fail with very complex shapes.


</translate>
<!--T:5-->
[[Image:RoofExample.png|600px]]
# Select an existing face
<translate>
# Press the {{KEY|[[Image:Arch Roof.png|16px]] [[Arch Roof]]}} button, or press {{KEY|R}} then {{KEY|F}} keys
<!--T:16-->
{{Caption|View from above a building model showing the roof with certain transparency}}


==Properties== <!--T:6-->
==How to use== <!--T:17-->


<!--T:7-->
<!--T:18-->
# Create a wire with following the counterclockwise direction and select it.
* {{PropertyData|Angle}}: The slope angle of the roof
#*[[Image:CounterclockwiseWire.png|600px]]
* {{PropertyData|Face}}: The face index of the base object to be used
# Press the {{Button|[[Image:Arch Roof.svg|16px]] [[Arch Roof]]}} button, or press {{KEY|R}} then {{KEY|F}} 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.
#*[[File:RoofTable.png]]
# 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.
#*[[Image:RoofProfil.png|600px]]
# '''Also you can check this video''' : https://www.youtube.com/watch?v=4Urwru71dVk


==Scripting== <!--T:8-->
==Options== <!--T:26-->


<!--T:9-->
<!--T:27-->
* Roofs share the common properties and behaviours of all [[Arch Component|Arch Components]]
The Roof tool can by used in [[macros]] and from the python console by using the following function:

==Properties== <!--T:20-->

<!--T:21-->
* {{PropertyData|Angles}}: List of the slope angle of the roof pane (an angle for each edge in the wire).
* {{PropertyData|Runs}}: List of the width of the roof pane (a run for each edge in the wire).
* {{PropertyData|IdRel}}: List of relation Id The slope angle of the roof
* {{PropertyData|Thickness}}: List of thickness of the roof pane. (a thickness for each edge in the wire).
* {{PropertyData|Overhang}}: List of the overhang of the roof pane (an overhang for each edge in the wire).
* {{PropertyData|Face}}: The face index of the base object to be used #Not really used

==Scripting== <!--T:22-->
{{Emphasis|See also:}} [[Arch API]] and [[FreeCAD Scripting Basics]].

<!--T:23-->
The Roof tool can be used in [[macros]] and from the [[Python]] console by using the following function:
</translate>
</translate>
{{Code|code=
<syntaxhighlight>
Roof = makeRoof(baseobj=None, facenr=0, angles=[45.,], run=[], idrel=[0,], thickness=[50.,], overhang=[100.,], name="Roof")
makeRoof (baseobj,[facenr],[angle],[name])
}}
</syntaxhighlight>
<translate>
<translate>
<!--T:10-->
:Makes a roof based on a face from an existing object. You can provide the number of the face to build the roof on (default = 1), the angle in degrees (default=45) and a name (default = roof).


<!--T:11-->
<!--T:24-->
* Creates a {{incode|Roof}} object from the given {{incode|baseobj}}, which can be a closed wire or a solid object.
** If {{incode|baseobj}} is a wire, you can provide lists for {{incode|angles}}, {{incode|run}}, {{incode|idrel}}, {{incode|thickness}}, and {{incode|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.

<!--T:25-->
Example:
Example:
</translate>
</translate>
{{Code|code=
<syntaxhighlight>
import Arch, Draft
import FreeCAD, Arch, Draft

rect = Draft.makeRectangle(2,4)
Rect = Draft.makeRectangle(3000, 4000)
Arch.makeRoof(rect,angle=30)
Roof = Arch.makeRoof(Rect, angles=[30.,])
</syntaxhighlight>
FreeCAD.ActiveDocument.recompute()
<languages/>

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

<translate>
<!--T:28-->
{{docnav
|[[Arch_Grid|Grid]]
|[[Arch_Space|Space]]
|[[Arch_Module|Arch]]
|IconL=Arch_Grid.svg
|IconC=Workbench_Arch.svg
|IconR=Arch_Space.svg
}}

<!--T:31-->
{{Arch Tools navi}}

<!--T:32-->
{{Userdocnavi}}
</translate>

Revision as of 18:01, 6 December 2019

Arch Roof

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

Description

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

  1. Create a wire with following the counterclockwise 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 have not all the needed informations.
  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 correspond to a roof pane. So you can set properties you want for each roof pane.
  6. 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.
  7. It work 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. At the end, set an angle to 90° to make a gable.
  9. Also you can check this video : https://www.youtube.com/watch?v=4Urwru71dVk

Options

Properties

  • 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

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