Arch "Ограждение"

From FreeCAD Documentation
Jump to navigation Jump to search
This page is a translated version of the page Arch Fence and the translation is 52% complete.
Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎русский

Arch Fence.svg Ограждение

Системное название
Расположение в меню
Arch → Ограждение
Быстрые клавиши
Представлено в версии
См. также


The Arch Fence is a object that builds a fence by repeating a single fence post and section along a given path.

Arch Fence description example.png


Creating from scratch

  1. Use a workbench of your choice to create a single fence post and a single section.
  2. Create the path the fence should follow using the Sketcher Workbench or Draft Workbench.
  3. Switch back to the Arch Workbench.
  4. Select the section, post and path in exactly that order.
  5. Press the Arch Fence.svg Arch Fence button


For now the tool assumes the following

  1. The Path is drawn on the XY-Plane
  2. Section and Post are drawn at the origin so that they stand upright in front view



  • ДанныеPath: The path the fence should follow
  • ДанныеPost: A single fence post to repeat
  • ДанныеSection: A single section to repeat
  • ДанныеNumber Of Posts: The total number of posts used to build the fence. This is calculated automatically.
  • ДанныеNumber Of Sections: The total number of sections used to build the fence. This is calculated automatically.


  • ВидUse Original Colors: When set to true the fence will use the colors from the original section and post. Otherwise the ShapeColor of the fence will be used to colorize the fence.


  • Arch Fence was introduced in FC v0.19 by user furti.
  • Forum thread discussing Arch Fence functionality


The Fence tool can be used in macros and from the Python console by using the following function:

Fence = buildFence(section, post, path)


import FreeCAD
import Part
import Arch

parts = []

parts.append(Part.makeBox(2000, 50, 30, FreeCAD.Vector(0, 0, 1000 - 30)))
parts.append(Part.makeBox(2000, 50, 30))
parts.append(Part.makeBox(20, 20, 1000 - 60, FreeCAD.Vector(0, 15, 30)))
parts.append(Part.makeBox(20, 20, 1000 - 60, FreeCAD.Vector(1980, 15, 30)))

for i in range(8):
    parts.append(Part.makeBox(20, 20, 1000 - 60, FreeCAD.Vector((2000 / 9 * (i + 1)) - 10, 15, 30))), "Fence_section")
fence_section = FreeCAD.ActiveDocument.Fence_section

sketch = FreeCAD.ActiveDocument.addObject("Sketcher::SketchObject", "Path")
sketch.Placement = FreeCAD.Placement(FreeCAD.Vector(0, 0, 0), FreeCAD.Rotation(0, 0, 0, 1))
sketch.addGeometry(Part.LineSegment(FreeCAD.Vector(0, 0, 0), FreeCAD.Vector(20000, 0, 0)), False)
sketch.addGeometry(Part.LineSegment(FreeCAD.Vector(20000, 0, 0), FreeCAD.Vector(20000, 20000, 0)), False)

post = Part.makeBox(100, 100, 1000, FreeCAD.Vector(0, 0, 0)), "Post")
post = FreeCAD.ActiveDocument.Post

Fence = Arch.buildFence(fence_section, post, sketch)