Draft Offset
Draft Offset |
Menu location |
---|
Draft → Offset |
Workbenches |
Draft, Arch |
Default shortcut |
O S |
Introduced in version |
- |
See also |
Draft Scale, Part 2D Offset |
Description
The Offset tool moves the selected object by a given distance (offset) perpendicular to itself.
Typically this tool is used in copy mode to create offset copies of a base wire while leaving this wire in the same place. The offset copies are scaled versions of the original object. To create other scaled copies use Draft Scale. To produce exact copies shifted a distance use Draft Move.
Offsetting a wire a certain distance from one of its edges
How to use
- Select the object that you wish to offset.
- Press the Draft Offset button, or press O then S keys. If no object is selected, you will be invited to select one.
- Click a point on the 3D view, or type in a distance.
The distance used to create the offset is perpendicular to one of the edges of the original shape, depending on the position of the pointer. If the pointer is moved closer to another edge, this edge now becomes the reference for the distance. Hold the Shift key to keep the current reference edge despite moving the pointer closer to other edges.
Options
- Press P or click the checkbox to toggle copy mode. If copy mode is on, the Offset tool will keep the original shape in its place but will make a scaled copy at the chosen point.
- Hold Alt while picking the point to also toggle copy mode. Keeping Alt pressed will allow you to continue placing offset copies; release Alt to finish the operation and see all offset shapes.
- Click the "OCC-style" checkbox to toggle OCC mode. This will create an offset from both sides of an line segment, which will produce a specially closed shape with rounded edges at the ends of the segments.
- Note: with this style the original segments will be removed, so use copy mode to preserve the original edges.
- Hold Ctrl while offsetting to force snapping your point to the nearest snap location, independently of the distance.
- Hold Shift to keep the offset distance referred to the current segment, and avoid picking another reference.
- Press Esc or the Close button to abort the current command; offset copies already placed will remain.
Scripting
See also: Draft API and FreeCAD Scripting Basics.
The Offset tool can be used in macros and from the Python console by using the following function:
Offsetobj = offset(obj, delta, copy=False, bind=False, sym=False, occ=False)
- Offsets the given
obj
wire by applying the givendelta
, defined as a vector, to its first vertex. - If
copy
isTrue
another object is created instead of offsetting the original object. - If
bind
isTrue
, and provided the wire object is open, the original and the offset wire will be tied at their endpoints, forming a face.- If
sym
isTrue
,bind
must beTrue
as well, and the offset is made on both sides of the wire, the total width being the length of the given vector.
- If
- If
occ
isTrue
, it will use OCC-style offsetting: it will offset from both sides, then tie the new wires together, and round the corners. Offsetobj
is returned with the original offset object, or with the new copy.
Example:
import FreeCAD, Draft
p1 = FreeCAD.Vector(0, 0, 0)
p2 = FreeCAD.Vector(1500, 2000, 0)
p3 = FreeCAD.Vector(4000, 0, 0)
Wire = Draft.makeWire([p1, p2, p3])
vector = FreeCAD.Vector(0, 500, 0)
Offset_1 = Draft.offset(Wire, vector, copy=True)
Offset_2 = Draft.offset(Wire, 3*vector, copy=True)
Offset_3 = Draft.offset(Wire, 6*vector, copy=True)
Offset_4 = Draft.offset(Wire, 9*vector, copy=True)
Offset_5 = Draft.offset(Wire, 1.5*vector, copy=True, occ=True)
- Drafting: Line, Polyline, Fillet, Arc, Arc by 3 points, Circle, Ellipse, Rectangle, Polygon, B-spline, Cubic Bézier curve, Bézier curve, Point, Facebinder, ShapeString, Hatch
- Annotation: Text, Dimension, Label, Annotation styles, Annotation scale
- Modification: Move, Rotate, Scale, Mirror, Offset, Trimex, Stretch, Clone, Array, Polar array, Circular array, Path array, Path link array, Point array, Point link array, Edit, Subelement highlight, Join, Split, Upgrade, Downgrade, Wire to B-spline, Draft to sketch, Set slope, Flip dimension, Shape 2D view
- Draft Tray: Select plane, Set style, Toggle construction mode, AutoGroup
- Snapping: Snap lock, Snap endpoint, Snap midpoint, Snap center, Snap angle, Snap intersection, Snap perpendicular, Snap extension, Snap parallel, Snap special, Snap near, Snap ortho, Snap grid, Snap working plane, Snap dimensions, Toggle grid
- Miscellaneous: Apply current style, Layer, Manage layers, Add a new named group, Move to group, Select group, Add to construction group, Toggle normal/wireframe display, Create working plane proxy, Heal, Show snap toolbar
- Additional: Constraining, Pattern, Preferences, Import Export Preferences, DXF/DWG, SVG, OCA, DAT
- Context menu:
- Layer container: Merge layer duplicates, Add new layer
- Layer: Activate this layer, Select layer contents
- Text: Open hyperlinks
- Wire: Flatten
- Working plane proxy: Write camera position, Write objects state
- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Assembly, BIM, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework
- Hubs: User hub, Power users hub, Developer hub