Skip to content

Latest commit

 

History

History
116 lines (70 loc) · 4.75 KB

Arch_Pipe.md

File metadata and controls

116 lines (70 loc) · 4.75 KB
Error in user YAML: (<unknown>): did not find expected alphabetic or numeric character while scanning an alias at line 5 column 14
---
 GuiCommand:
   Name: Arch Pipe
   MenuLocation: Arch , Pipe Tools , Pipe
   Workbenches: Arch_Workbench
   Shortcut: **P** **I**
   Version: 0.17
   SeeAlso: Arch_PipeConnector, Arch_Equipment
---

Arch Pipe

Description

This tool allows to create pipes from scratch, or from selected objects. The selected objects must be Part-based (Draft, Sketch, etc..) and contain one and only one open Wire.

Usage

  1. Optionally, select a linear Part shape such as a Draft Line, a Draft Wire or an open Sketch.
  2. Invoke this command using several methods:
    • Pressing the Arch Pipe button on the toolbar.
    • Pressing the P then I keyboard shortcut.
    • Pressing the Arch → Pipe Tools → Pipe entry from the top menu.

Options

Properties

  • Length: Sets the length of this pipe, when it is not based on a wire

  • Diameter: The diameter of this pipe, when it is not based on a profile

  • Base: The base wire of this pipe, if any

  • Profile: The base profile of this pipe. If not given, the pipe is cylindrical.

Typical workflow

  • Start by placing sanitary/hydraulic appliance items (below is an imported step file). You turn these objects into Arch Equipments by selecting them, and pressing the Arch Equipment button.

  • Arch Equipments now have a new SnapPoints property, which is a list of 3D vectors. This allows you to add custom snap points, to which you can snap when the new Draft Special snap button is turned on. Currently that property is only available to Python, though. In the case above I added a new snap point at the exit of the WC appliance. The vectors inside SnapPoints appear on the model as white dots:

FreeCAD.ActiveDocument.Equipment.SnapPoints=[FreeCAD.Vector(0,0,100)]

  • With the new "Snap Special" Draft Snap, you can now snap to these custom points:

  • Now we can draw our piping using Draft Lines, Draft Wires, or Sketches. The best way, though, is using only Draft Lines:

  • There is now a new Draft Slope tool that allows to change the slope of Draft lines, to, for example, 5% (0.05). So we can quickly give our waste lines a correct slope. Only z coordinates are change by this tool, so we only need to snap them back to each other, the top projection will stay unchanged.

  • We now only have to select all our lines, and press the Arch Pipe button. Arch Pipe works with any Part-based object that contains one and only one open wire.

  • We can now create connections by selecting 2 or 3 coincident tubes, and press the Arch PipeConnector button. If 3 pipes are selected, two of them must be aligned in order to create a tee element:

  • Changing the connectors radius doesn't change the length of the underlying base line, only the resulting tube (by changing their OffsetStart or OffsetEnd property). So you can still draw your line layout with only straight lines, without the need to care about curves and radius.

It is also possible to create Arch Pipes without a base line, in this case use its "Length" property to define the length.

Scripting

See also:

Arch API and FreeCAD Scripting Basics.

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

Pipe = makePipe(baseobj=None, diameter=0, length=0, placement=None, name="Pipe")
  • Creates a Pipe object from the given baseobj and diameter.

    `baseobj`
    
    is a [Draft Line](Draft_Line.md) or [Draft Wire](Draft_Wire.md).
    
    • If baseobj is omitted, a straight pipe can be created with just the diameter and the length in the Z direction.
  • If a placement is given, it is used.

import Draft, Arch

p1 = FreeCAD.Vector(1000, 0, 0)
p2 = FreeCAD.Vector(2500, 200, 0)
p3 = FreeCAD.Vector(3100, 1000, 0)
p4 = FreeCAD.Vector(3500, 500, 0)
Line = Draft.makeWire([p1, p2, p3, p4])

Pipe = Arch.makePipe(Line, 200)
FreeCAD.ActiveDocument.recompute()

Pipe2 = Arch.makePipe(diameter=120, length=3000)
FreeCAD.ActiveDocument.recompute()

documentation index > Arch > Arch Pipe