Draft Offset/en: Difference between revisions
No edit summary |
(Updating to match new version of source page) |
||
(27 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
|||
{{GuiCommand/en|Name=Draft Offset|Workbenches=[[Draft Module|Draft]], [[Arch Module|Arch]]|MenuLocation=Draft -> Offset|Shortcut=O S}} |
|||
{{Docnav |
|||
|[[Draft_Mirror|Mirror]] |
|||
|[[Draft_Trimex|Trimex]] |
|||
|[[Draft_Workbench|Draft]] |
|||
|IconL=Draft_Mirror.svg |
|||
|IconR=Draft_Trimex.svg |
|||
|IconC=Workbench_Draft.svg |
|||
}} |
|||
{{GuiCommand |
|||
|Name=Draft Offset |
|||
|MenuLocation=Modification → Offset |
|||
|Workbenches=[[Draft_Workbench|Draft]], [[Arch_Workbench|Arch]] |
|||
|Shortcut={{KEY|O}} {{KEY|S}} |
|||
|SeeAlso=[[Part_Offset2D|Part Offset2D]] |
|||
}} |
|||
==Description== |
==Description== |
||
The Offset |
The [[Image:Draft_Offset.svg|24px]] '''Draft Offset''' command offsets each segment of a selected object over a given distance, or creates an offset copy of the selected object. |
||
[[Image:Draft_Offset_example.jpg|400px]] |
[[Image:Draft_Offset_example.jpg|400px]] |
||
{{Caption|Offsetting a Draft Wire}} |
|||
== |
==Usage== |
||
See also: [[Draft_Snap|Draft Snap]] and [[Draft_Constrain|Draft Constrain]]. |
|||
# Select objects you wish to offset |
|||
# Press the {{KEY|[[Image:Draft Offset.png|16px]] [[Draft Offset]]}} button, or press {{KEY|O}} then {{KEY|S}} keys |
|||
# Optionally select one object. The object must lie on the current [[Draft_SelectPlane|Draft working plane]]. |
|||
# Click a point on the 3D view, or type a distance. |
|||
# There are several ways to invoke the command: |
|||
#* Press the {{Button|[[Image:Draft_Offset.svg|16px]] [[Draft_Offset|Offset]]}} button. |
|||
#* Select the {{MenuCommand|Modification → [[Image:Draft_Offset.svg|16px]] Offset}} option from the menu. |
|||
#* Use the keyboard shortcut: {{KEY|O}} then {{KEY|S}}. |
|||
# If you have not yet selected an object: select an object in the [[3D_view|3D view]]. |
|||
# The {{MenuCommand|Offset}} task panel opens. See [[#Options|Options]] for more information. |
|||
# To define the offset distance do one of the following: |
|||
#* Pick a point in the [[3D_view|3D view]]. |
|||
#* Enter a numerical value: |
|||
#*# Make sure the pointer is on the correct side of the object in the [[3D_view|3D view]]. |
|||
#*# Do not move the pointer out of the [[3D_view|3D view]]. |
|||
#*# Enter a {{MenuCommand|Distance}}. |
|||
#*# Press {{KEY|Enter}} to finish the command. |
|||
==Options== |
==Options== |
||
The single character keyboard shortcuts available in the task panel can be changed. See [[Draft_Preferences|Draft Preferences]]. The shortcuts mentioned here are the default shortcuts (for version 0.22). |
|||
* Press {{KEY|T}} or click the checkbox to check/uncheck the {{KEY|'''Continue'''}} button. If continue mode is on, the Offset tool will restart after you finish or close it, allowing you to offset or copy the objects another time without pressing the Offset button again. |
|||
* Pressing {{KEY|ALT}} or {{KEY|C}} or clicking the {{KEY|'''Copy'''}} button will make a copy of the objects, instead of moving them. If you keep {{KEY|ALT}} pressed after clicking the second point, you will be able to place more copies, until you release the {{KEY|ALT}} key. |
|||
* If the {{MenuCommand|OCC-style offset}} checkbox is checked a special offset style is used: open [[Draft_Wire|Draft Wires]] are offset on both sides, and new edges are connected with rounded corners. This only works for planar objects with at least two edges. Note that with this style a new non-parametric object is created, and if copy mode is off the original object is deleted. |
|||
* Press {{KEY|CTRL}} while drawing to force [[Draft_Snap|snapping]] your point to the nearest snap location, independently of the distance. |
|||
* |
* Press {{KEY|C}} or click the {{MenuCommand|Copy}} checkbox to toggle copy mode. If copy mode is on, the command will create an offset copy instead of offsetting the original object. |
||
* Holding down {{KEY|Alt}} before picking points in the [[3D_view|3D view]] will also toggle copy mode. While {{KEY|Alt}} is held down multiple offset points can be picked. Release {{KEY|Alt}} to finish the command and see the created copies. |
|||
* Press {{KEY|ESC}} or the {{KEY|'''Cancel'''}} button to abort the current command. |
|||
* Hold down {{KEY|Shift}} to keep the offset distance linked to the current segment. |
|||
* Press {{KEY|S}} to switch [[Draft_Snap|Draft snapping]] on or off. |
|||
* Press {{KEY|Esc}} or the {{Button|Close}} button to abort the command. |
|||
==Notes== |
|||
* To create an offset version of a [[Draft_BSpline|Draft BSpline]] its points are offset individually, and from the new points a new spline is calculated. This new spline is not parallel to the original spline. For an exact parallel offset of a [[Draft_BSpline|Draft BSpline]] the [[Part_Offset2D|Part Offset2D]] command should be used. |
|||
* The Draft Offset command cannot handle [[Draft_BezCurve|Draft BezCurves]]. Use the [[Part_Offset2D|Part Offset2D]] command instead. |
|||
==Scripting== |
==Scripting== |
||
See also: [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]]. |
|||
The Offset tool can by used in [[macros]] and from the python console by using the following function: |
|||
To offset objects use the {{incode|offset}} method of the Draft module. The method can only handle [[Draft_Wire|Draft Wires]], [[Draft_Circle|Draft Circles]], [[Draft_Rectangle|Draft Rectangles]], [[Draft_Polygon|Draft Polygons]] and [[Draft_BSpline|Draft BSplines]]. |
|||
<syntaxhighlight> |
|||
offset (object,Vector,[copymode],[bind],[sym]) |
|||
</syntaxhighlight> |
|||
{{Code|code= |
|||
* Offsets the given wire by applying the given Vector to its first vertex. |
|||
offset_obj = offset(obj, delta, copy=False, bind=False, sym=False, occ=False) |
|||
* If copymode is True, another object is created, otherwise the same object gets offsetted. |
|||
}} |
|||
* If bind is True, and provided the wire is open, the original and the offsetted wires will be bound by their endpoints, forming a face. |
|||
* If sym is True, the offset is made on both sides, the total width being the length of the given vector. |
|||
* |
* {{incode|obj}} is the object to be offset. |
||
* {{incode|delta}} contains the offset information: |
|||
** For [[Draft_Wire|Draft Wires]], [[Draft_Rectangle|Draft Rectangles]] and [[Draft_Polygon|Draft Polygons]] it is an offset vector that must be perpendicular to the first segment of the object. |
|||
** For [[Draft_Circle|Draft Circles]] it is the new radius. |
|||
** For [[Draft_BSpline|Draft BSplines]] it is a list of new points. |
|||
* If {{incode|copy}} is {{incode|True}} the original object is kept and a new object is created. |
|||
* If {{incode|bind}} is {{incode|True}} a face is created by connecting the shape of the original object and the shape of its offset. This only works for open [[Draft_Wire|Draft Wires]]. |
|||
* If {{incode|sym}} is {{incode|True}}, and {{incode|bind}} is {{incode|True}} as well, the offset is made on both sides of the original object, the total width being the length of the given vector. This only works for open [[Draft_Wire|Draft Wires]]. |
|||
* If {{incode|occ}} is {{incode|True}} OCC-style offsetting is used. See [[#Options|Options]]. If {{incode|occ}} is {{incode|True}} the {{incode|bind}} and {{incode|sym}} arguments are ignored. |
|||
* {{incode|offset_obj}} is returned with the original offset object, or with the new object. If {{incode|bind}} is {{incode|True}} or {{incode|occ}} is {{incode|True}}, the new object is a {{incode|[[Part_Feature|Part::Feature]]}} object. |
|||
Example: |
Example: |
||
{{Code|code= |
|||
<syntaxhighlight> |
|||
import FreeCAD as App |
|||
import Draft |
|||
Draft.offset(FreeCAD.ActiveDocument.ActiveObject,FreeCAD.Vector(2,2,0)) |
|||
</syntaxhighlight> |
|||
doc = App.newDocument() |
|||
<languages/> |
|||
p1 = App.Vector(0, 0, 0) |
|||
p2 = App.Vector(1500, 2000, 0) |
|||
p3 = App.Vector(4000, 0, 0) |
|||
wire = Draft.make_wire([p1, p2, p3]) |
|||
doc.recompute() |
|||
vector = App.Vector(-200, 150, 0) |
|||
offset1 = Draft.offset(wire, vector, copy=True, bind=True, sym=True) |
|||
offset2 = Draft.offset(wire, 3*vector, copy=True) |
|||
offset3 = Draft.offset(wire, 6*vector, copy=True) |
|||
offset4 = Draft.offset(wire, 9*vector, copy=True) |
|||
offset5 = Draft.offset(wire, 1.5*vector, copy=True, occ=True) |
|||
doc.recompute() |
|||
}} |
|||
{{Docnav |
|||
|[[Draft_Mirror|Mirror]] |
|||
|[[Draft_Trimex|Trimex]] |
|||
|[[Draft_Workbench|Draft]] |
|||
|IconL=Draft_Mirror.svg |
|||
|IconR=Draft_Trimex.svg |
|||
|IconC=Workbench_Draft.svg |
|||
}} |
|||
{{Draft Tools navi{{#translation:}}}} |
|||
{{Userdocnavi{{#translation:}}}} |
Latest revision as of 04:59, 9 January 2024
Draft Offset |
Menu location |
---|
Modification → Offset |
Workbenches |
Draft, Arch |
Default shortcut |
O S |
Introduced in version |
- |
See also |
Part Offset2D |
Description
The Draft Offset command offsets each segment of a selected object over a given distance, or creates an offset copy of the selected object.
Offsetting a Draft Wire
Usage
See also: Draft Snap and Draft Constrain.
- Optionally select one object. The object must lie on the current Draft working plane.
- There are several ways to invoke the command:
- Press the Offset button.
- Select the Modification → Offset option from the menu.
- Use the keyboard shortcut: O then S.
- If you have not yet selected an object: select an object in the 3D view.
- The Offset task panel opens. See Options for more information.
- To define the offset distance do one of the following:
Options
The single character keyboard shortcuts available in the task panel can be changed. See Draft Preferences. The shortcuts mentioned here are the default shortcuts (for version 0.22).
- If the OCC-style offset checkbox is checked a special offset style is used: open Draft Wires are offset on both sides, and new edges are connected with rounded corners. This only works for planar objects with at least two edges. Note that with this style a new non-parametric object is created, and if copy mode is off the original object is deleted.
- Press C or click the Copy checkbox to toggle copy mode. If copy mode is on, the command will create an offset copy instead of offsetting the original object.
- Holding down Alt before picking points in the 3D view will also toggle copy mode. While Alt is held down multiple offset points can be picked. Release Alt to finish the command and see the created copies.
- Hold down Shift to keep the offset distance linked to the current segment.
- Press S to switch Draft snapping on or off.
- Press Esc or the Close button to abort the command.
Notes
- To create an offset version of a Draft BSpline its points are offset individually, and from the new points a new spline is calculated. This new spline is not parallel to the original spline. For an exact parallel offset of a Draft BSpline the Part Offset2D command should be used.
- The Draft Offset command cannot handle Draft BezCurves. Use the Part Offset2D command instead.
Scripting
See also: Autogenerated API documentation and FreeCAD Scripting Basics.
To offset objects use the offset
method of the Draft module. The method can only handle Draft Wires, Draft Circles, Draft Rectangles, Draft Polygons and Draft BSplines.
offset_obj = offset(obj, delta, copy=False, bind=False, sym=False, occ=False)
obj
is the object to be offset.delta
contains the offset information:- For Draft Wires, Draft Rectangles and Draft Polygons it is an offset vector that must be perpendicular to the first segment of the object.
- For Draft Circles it is the new radius.
- For Draft BSplines it is a list of new points.
- If
copy
isTrue
the original object is kept and a new object is created. - If
bind
isTrue
a face is created by connecting the shape of the original object and the shape of its offset. This only works for open Draft Wires. - If
sym
isTrue
, andbind
isTrue
as well, the offset is made on both sides of the original object, the total width being the length of the given vector. This only works for open Draft Wires. - If
occ
isTrue
OCC-style offsetting is used. See Options. Ifocc
isTrue
thebind
andsym
arguments are ignored. offset_obj
is returned with the original offset object, or with the new object. Ifbind
isTrue
orocc
isTrue
, the new object is aPart::Feature
object.
Example:
import FreeCAD as App
import Draft
doc = App.newDocument()
p1 = App.Vector(0, 0, 0)
p2 = App.Vector(1500, 2000, 0)
p3 = App.Vector(4000, 0, 0)
wire = Draft.make_wire([p1, p2, p3])
doc.recompute()
vector = App.Vector(-200, 150, 0)
offset1 = Draft.offset(wire, vector, copy=True, bind=True, sym=True)
offset2 = Draft.offset(wire, 3*vector, copy=True)
offset3 = Draft.offset(wire, 6*vector, copy=True)
offset4 = Draft.offset(wire, 9*vector, copy=True)
offset5 = Draft.offset(wire, 1.5*vector, copy=True, occ=True)
doc.recompute()
Draft
- 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
User documentation
- 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, Arch, Assembly, 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