Draft Draft2Sketch: Difference between revisions

From FreeCAD Documentation
(Updated Scripting)
mNo edit summary
Line 83: Line 83:
** Use {{incode|-1}} to disable radius constraints.
** Use {{incode|-1}} to disable radius constraints.
** Use {{incode|0}} to add individual radius constraints.
** Use {{incode|0}} to add individual radius constraints.
** Use positive values to round radii according to this precision, and to add Equal constraints to curves with equal radii.
** Use a positive number to round radii according to this precision, and to add Equal constraints to curves with equal radii.
* {{incode|tol}} is the tolerance used to check if the shapes are planar and co-planar. Use {{incode|-1}} for a strict analysis.
* {{incode|tol}} is the tolerance used to check if the shapes are planar and co-planar. Use {{incode|-1}} for a strict analysis.
* {{incode|sketch}} is returned with the sketch object.
* {{incode|sketch}} is returned with the sketch object.

Revision as of 16:13, 25 May 2021

This documentation is a work in progress. Please don't mark it as translatable since it will change in the next hours and days.

Draft Draft2Sketch

Menu location
Modification → Draft to Sketch
Workbenches
Draft, Arch
Default shortcut
None
Introduced in version
-
See also
Sketcher, PartDesign

Description

The Draft Draft2Sketch tool converts Draft objects to Sketcher Sketches, and vice-versa.

Converting Draft shapes into Sketcher shapes with constraints

Usage

  1. Select a Draft object or a Sketch.
  2. Press the Draft Draft2Sketch button.

Notes:

  • If you convert a Draft Wire, the resulting sketch will use point constraints for the nodes.
  • If you convert a Draft Rectangle, the resulting sketch will use point constraints for the corners, and horizontal and vertical constraints for the edges.
  • If you convert a Draft BezCurve, the resulting sketch will be approximated by a Sketcher BSpline, as the Sketcher Workbench doesn't support Bezier curves currently.
  • Non-Draft objects that are totally planar will also get converted to sketches.

Limitations

The conversion of an object that cannot be represented with a combination of straight lines, circular arcs, and B-Splines will usually fail, that is, the item will not appear in the sketch.

In the past, a Draft BSpline couldn't be converted directly to a sketch. A tool to perform this conversion was developed for the KicadStepUp Workbench, which would take a Draft BSpline and convert it into a series of Sketcher Arcs. See the forum thread BSplines to Shape2DView and Sketcher for more information.

As of version 0.17 and above the conversion from Draft BSpline to Sketcher BSpline is possible. However, converting a spline to a series of arcs may still be useful for exporting geometry to applications that don't support B-Splines, like KiCad.

Options

There are no options for this tool. Either it works with the selected object or not.

Scripting

See also: Autogenerated API documentation and FreeCAD Scripting Basics.

To convert objects to a sketch use the make_sketch method (introduced in version 0.19) of the Draft module. This method replaces the deprecated makeSketch method.

sketch = make_sketch(objects_list, autoconstraints=False, addTo=None, delete=False, name="Sketch", radiusPrecision=-1, tol=1e-3)
  • objects_list contains the objects to be converted. It is either a single object or a list of objects. Draft objects, Part::Feature objects and Part.Shape objects are supported.
  • If autoconstraints is True constraints will be added to nodes and, if radiusPrecision is a positive number, to arcs and circles.
  • addTo is the existing sketch object the geometry will be added to. If not supplied a new sketch is created.
  • If delete is True the source objects are deleted.
  • name is the name for the new sketch.
  • radiusPrecision indicates how radius constraints should be handled:
    • Use -1 to disable radius constraints.
    • Use 0 to add individual radius constraints.
    • Use a positive number to round radii according to this precision, and to add Equal constraints to curves with equal radii.
  • tol is the tolerance used to check if the shapes are planar and co-planar. Use -1 for a strict analysis.
  • sketch is returned with the sketch object.

To convert a sketch to Draft objects use the draftify method of the Draft module.

draftify(objectslist, makeblock=False, delete=True)

Example:

import FreeCAD as App
import Draft

doc = App.newDocument()

rectangle = Draft.make_rectangle(2000, 1000)
circle = Draft.make_circle(500)
doc.recompute()

sketch_from_draft = Draft.make_sketch([rectangle, circle], autoconstraints=True, radiusPrecision=0)

draft_from_sketch = Draft.draftify(sketch_from_draft)

doc.recompute()