---
GuiCommand:
Name: Arch Frame
MenuLocation: Arch , Frame
Workbenches: Arch_Workbench
Shortcut: **F** **R**
SeeAlso: Arch_Wall, Arch_Structure
---
The Arch Frame tool is used to build all kinds of frame objects based on a profile and a layout. The profile is extruded along the edges of the layout, which can be any 2D object such as a sketch, or a Draft object. It is especially useful to create railings, or frame walls. Frame objects can then easily be turned into wall or structure objects.
*Frame object created from a [Draft OrthoArray](Draft_OrthoArray.md) of a [Draft Line](Draft_Line.md), using a [Draft Circle](Draft_Circle.md) as profile*- Create a layout object and a profile object, for example with the Draft Workbench or the Sketcher Workbench.
- Select the layout object first, then, with Ctrl pressed, select the profile object.
- Press the Arch Frame button, or press F then R keys.
- Frames share the common properties and behaviours of all Arch Components
- The frame object can be placed at a certain distance from the layout object, by setting its Offset property
- The profile will be copied at the base of each edge of the layout object, then extruded along it. You can control how the profile is placed at the base of each edge with the Align and Rotation properties.
-
Base: The layout this frame is based on.
-
Profile: The profile this frame is based on.
-
Align: Specifies if the profile must be rotated to have its normal axis aligned with each edge.
-
Offset: An optional distance between the layout object and the frame object.
-
Rotation: The rotation of the profile around its extrusion axis.
See also:
Arch API and FreeCAD Scripting Basics.
The Frame tool can be used in macros and from the Python console by using the following function:
Frame = makeFrame(baseobj, profile)
-
`baseobj` is any object containing wires, like a [Draft Wire](Draft_Wire.md), or a [Draft OrthoArray](Draft_OrthoArray.md) with a collection of them.
-
profile
is an extrudable 2D object containing faces or closed wires.
-
Example:
import Draft, Arch
Line = Draft.makeLine(FreeCAD.Vector(0, 0, 0), FreeCAD.Vector(0, 0, 2000))
baseobj = Draft.makeArray(Line, FreeCAD.Vector(1000, 0, 0), FreeCAD.Vector(0, 1, 0), 6, 1)
profile = Draft.makeCircle(200)
Frame = Arch.makeFrame(baseobj, profile)
FreeCAD.ActiveDocument.recompute()
⏵ documentation index > Arch > Arch Frame