Sketcher SketchObject/pl: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 1: Line 1:
<languages/>
<languages/>
{{TOCright}}


== Introduction ==
== Introduction ==
Line 7: Line 8:
A [[Sketcher_SketchObject|Sketcher SketchObject]], or formally a {{incode|Sketcher::SketchObject}}, is the base element to create 2D objects with the [[Sketcher_Workbench|Sketcher Workbench]].
A [[Sketcher_SketchObject|Sketcher SketchObject]], or formally a {{incode|Sketcher::SketchObject}}, is the base element to create 2D objects with the [[Sketcher_Workbench|Sketcher Workbench]].


The {{incode|Sketcher::SketchObject}} is derived from [[Part_Part2DObject|Part Part2DObject]], which means it is a [[Part Feature|Part Feature]] object specialized for 2D geometry. Like Part2DObject, the SketchObject can be attached to planes and faces. In addition, the SketchObject can handle geometrical constraints of the lines and curves that are drawn within it.
The {{incode|Sketcher::SketchObject}} is derived from the [[Part_Part2DObject|Part Part2DObject]], which means it is a [[Part Feature|Part Feature]] object specialized for 2D geometry. Like the Part2DObject, the SketchObject can be attached to planes and faces. In addition, the SketchObject can handle geometrical constraints.


[[File:FreeCAD_core_objects.svg|800px]]
[[File:FreeCAD_core_objects.svg|800px]]


{{Caption|Simplified diagram of the relationships between the core objects in FreeCAD. The {{incode|Sketcher::SketchObject}} class is specialized for 2D shapes, and additionally it includes an extension to handle geometrical constraints of its elements.}}
{{Caption|Simplified diagram of the relationships between the core objects in FreeCAD}}


==Usage==
==Usage==
Line 20: Line 21:
# Press {{Button|OK}}.
# Press {{Button|OK}}.


Although the SketchObject can be used by itself to draw on a plane, it is most commonly used in conjunction with the [[PartDesign Workbench|PartDesign Workbench]] to create extruded solids.
Although the SketchObject can be used by itself to draw on a plane, it is most commonly used in conjunction with the [[PartDesign_Workbench|PartDesign Workbench]] to create extruded solids.


# Switch to the [[PartDesign Workbench|PartDesign Workbench]].
# Switch to the [[PartDesign_Workbench|PartDesign Workbench]].
# Press {{Button|[[File:PartDesign_Body.svg|16px]] [[PartDesign_Body|PartDesign Body]]}}.
# Press {{Button|[[File:PartDesign_Body.svg|16px]] [[PartDesign_Body|PartDesign Body]]}}.
# Press {{Button|[[File:PartDesign_NewSketch.svg|16px]] [[PartDesign_NewSketch|PartDesign NewSketch]]}}.
# Press {{Button|[[File:PartDesign_NewSketch.svg|16px]] [[PartDesign_NewSketch|PartDesign NewSketch]]}}.
Line 32: Line 33:
See [[Property|Property]] for all property types that scripted objects can have.
See [[Property|Property]] for all property types that scripted objects can have.


A [[Sketcher_SketchObject|Sketcher SketchObject]] ({{incode|Sketcher::SketchObject}} class) is derived from a [[Part_Part2DObject|Part Part2DObject]] ({{incode|Part::Part2DObject}} class), therefore it shares all the latter's properties.
The [[Sketcher_SketchObject|Sketcher SketchObject]] ({{incode|Sketcher::SketchObject}} class) is derived from the [[Part_Part2DObject|Part Part2DObject]] ({{incode|Part::Part2DObject}} class) and inherits all its properties.


In addition to the properties described in [[Part_Part2DObject|Part Part2DObject]], the basic Sketcher SketchObject has the following properties in the [[property editor|property editor]]. Hidden properties can be shown by using the {{MenuCommand|Show all}} command in the context menu of the [[property editor|property editor]].
The Sketcher SketchObject also has the following additional properties in the [[Property_editor|property editor]]. Hidden properties can be shown by using the {{MenuCommand|Show all}} command in the context menu of the [[Property_editor|property editor]].


=== Data ===
=== Data ===


{{TitleProperty|Attachment}}
{{TitleProperty|Sketch}}
* {{PropertyData|Map Mode}}, {{PropertyData|Map Reversed}}, {{PropertyData|Attachment Offset}}: same as [[Part_Part2DObject|Part Part2DObject]]. See [[Part_EditAttachment|Part EditAttachment]] for more information on all attachment mapping modes.


* {{PropertyData|Geometry|GeometryList|Hidden}}: a list of Part geometries that exist inside the sketch.
{{TitleProperty|Sketch}}
* {{PropertyData|Constraints|}}: named constraints, if they exist; otherwise it is an empty list {{incode|[]}}.
* {{PropertyData|Constraints|}}: named constraints, if they exist; otherwise it is an empty list {{incode|[]}}.

==== Hidden properties Data ====

See [[Part_Part2DObject|Part Part2DObject]] for the rest of the hidden properties.

{{TitleProperty|Base}}

* {{PropertyData|Proxy|PythonObject}}: a custom class associated with this object. This only exists for the [[Python|Python]] version. See [[Sketcher_SketchObject#Scripting|Scripting]].

{{TitleProperty|Sketch}}

* {{PropertyData|Geometry|GeometryList}}: a list of Part geometries that exist inside the sketch.
* {{PropertyData|External Geometry|LinkSubList}}: a list of Part geometries outside this Sketch that are used for reference.
* {{PropertyData|External Geometry|LinkSubList}}: a list of Part geometries outside this Sketch that are used for reference.
* {{PropertyData|Fully Constrained|Bool|Hidden}}: (read-only) if {{TRUE}} the sketch is fully constrained.


=== View ===
=== View ===


{{TitleProperty|Auto Constraints}}
{{TitleProperty|Auto Constraints}}
* {{PropertyView|Autoconstraints|Bool}}: if {{TRUE}} it will try setting constraints when the geometry is drawn.


* {{PropertyView|Autoconstraints|Bool}}: if {{TRUE}} constraints are automatically added when geometry is drawn.
{{TitleProperty|Visibility automation}}
* {{PropertyView|Avoid Redundant|Bool}}: if {{TRUE}} redundant auto-constraints are avoided.
* {{PropertyView|Editing Workbench|String}}: name of the workbench to activate when editing the sketch; it defaults to {{value|SketcherWorkbench}}.
* {{PropertyView|Hide Dependent|Bool}}: if {{TRUE}} all objects that depend on the sketch are hidden when opening the sketch.
* {{PropertyView|Restore Camera|Bool}}: if {{TRUE}} the camera position is saved before opening the sketch, and is restored after closing it.
* {{PropertyView|Show Links|Bool}}: if {{TRUE}} all objects used in links to external geometry are shown when opening the sketch.
* {{PropertyView|Show Support|Bool}}: if {{TRUE}} all objects this sketch is attached to are shown when opening the sketch.


{{TitleProperty|Grid}}
==== Hidden properties View ====


* {{PropertyView|Grid Auto Size|Bool|Hidden}}: if {{TRUE}} the grid is resized based on the boundingbox of the geometry of the sketch.
{{TitleProperty|Base}}
* {{PropertyView|Grid Size|Length}}: the size of the spacing of the local grid lines in the [[3D_view|3D view]]; it defaults to {{value|10 mm}}.

* {{PropertyView|Grid Snap|Bool}}: if {{TRUE}} the grid can be used to snap points.
* {{PropertyView|Proxy|PythonObject}}: a custom view provider class associated with this object. This only exists for the [[Python|Python]] version. See [[Sketcher_SketchObject#Scripting|Scripting]].
* {{PropertyView|Grid Style|Enumeration}}: the style of the grid lines; {{value|Dashed}} (default) or {{value|Light}}.
* {{PropertyView|Show Grid|Bool}}: if {{TRUE}} a grid local to the object will be displayed in the [[3D_view|3D view]]. This grid is independent of the [[Draft_ToggleGrid|Draft Grid]].
* {{PropertyView|Show Only In Edit Mode|Bool}}: if {{TRUE}} the grid is only displayed while the sketch is being edited.
* {{PropertyView|Tight Grid|Bool}}: if {{TRUE}} the local grid will be localized around the origin of the shape, otherwise it will extend itself more.
* {{PropertyView|max Number Of Lines|Integer}}: the maximum number of lines in the grid.


{{TitleProperty|Visibility automation}}
{{TitleProperty|Visibility automation}}


* {{PropertyView|Editing Workbench|String}}: name of the workbench to activate when editing the sketch; it defaults to {{value|SketcherWorkbench}}.
* {{PropertyView|Tempo Vis|PythonObject}}: a custom class associated with this object, that handles hiding and showing other objects when opening and closing the sketch.
* {{PropertyView|Force Ortho|Bool}}: if {{TRUE}} the camera will be forced to [[Std_OrthographicCamera|orthographic view mode]] when the sketch is opened.

* {{PropertyView|Hide Dependent|Bool}}: if {{TRUE}} all objects that depend on the sketch are hidden when the sketch is opened.
All other view properties, including hidden properties, are those of the base [[Part_Feature|Part Feature]] object.
* {{PropertyView|Restore Camera|Bool}}: if {{TRUE}} the camera position is saved before opening the sketch, and is restored after closing it.
* {{PropertyView|Section View|Bool}}: if {{TRUE}} only (parts of) objects behind the sketch plane are visible while the sketch is being edited.
* {{PropertyView|Show Links|Bool}}: if {{TRUE}} all objects used in links to external geometry are shown when the sketch is opened.
* {{PropertyView|Show Support|Bool}}: if {{TRUE}} all objects this sketch is attached to are shown when the sketch is opened.
* {{PropertyView|Tempo Vis|PythonObject|Hidden}}: a custom class associated with this object, that handles hiding and showing other objects when opening and closing the sketch.


== Scripting ==
== Scripting ==


{{Emphasis|See also:}} [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]], and [[scripted objects|scripted objects]].
{{Emphasis|See also:}} [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]] and [[Scripted_objects|scripted objects]].


See [[Part_Feature|Part Feature]] for the general information on adding objects to the document.
See [[Part_Feature|Part Feature]] for the general information on adding objects to the document.


A SketchObject is created with the {{incode|addObject()}} method of the document.
A SketchObject is created with the {{incode|addObject()}} method of the document.

{{Code|code=
{{Code|code=
import FreeCAD as App
import FreeCAD as App
Line 96: Line 91:
}}
}}


For [[Python|Python]] subclassing you should create the {{incode|Sketcher::SketchObjectPython}} object.
This basic {{incode|Sketcher::SketchObject}} doesn't have a Proxy object so it can't be fully used for sub-classing.

Therefore, for [[Python|Python]] subclassing, you should create the {{incode|Sketcher::SketchObjectPython}} object.


{{Code|code=
{{Code|code=
Line 109: Line 102:




{{Sketcher Tools navi{{#translation:}}}}
{{Sketcher_Tools_navi{{#translation:}}}}
{{Document_objects_navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Document objects navi{{#translation:}}}}
{{clear}}

Revision as of 07:40, 22 February 2022

Introduction

A Sketcher SketchObject, or formally a Sketcher::SketchObject, is the base element to create 2D objects with the Sketcher Workbench.

The Sketcher::SketchObject is derived from the Part Part2DObject, which means it is a Part Feature object specialized for 2D geometry. Like the Part2DObject, the SketchObject can be attached to planes and faces. In addition, the SketchObject can handle geometrical constraints.

Simplified diagram of the relationships between the core objects in FreeCAD

Usage

  1. Switch to the Sketcher Workbench.
  2. Press Sketcher NewSketch.
  3. Select a Sketch orientation: XY-plane, XZ-plane, or YZ-plane. Optionally also choose Reverse direction, and give an Offset value.
  4. Press OK.

Although the SketchObject can be used by itself to draw on a plane, it is most commonly used in conjunction with the PartDesign Workbench to create extruded solids.

  1. Switch to the PartDesign Workbench.
  2. Press PartDesign Body.
  3. Press PartDesign NewSketch.
  4. Select feature: XY_Plane (Base plane), XZ_Plane (Base plane), or YZ_Plane (Base plane).
  5. Press OK.

Properties

See Property for all property types that scripted objects can have.

The Sketcher SketchObject (Sketcher::SketchObject class) is derived from the Part Part2DObject (Part::Part2DObject class) and inherits all its properties.

The Sketcher SketchObject also has the following additional properties in the property editor. Hidden properties can be shown by using the Show all command in the context menu of the property editor.

Data

Sketch

  • DANE (Hidden)Geometry (GeometryList): a list of Part geometries that exist inside the sketch.
  • DANEConstraints: named constraints, if they exist; otherwise it is an empty list [].
  • DANEExternal Geometry (LinkSubList): a list of Part geometries outside this Sketch that are used for reference.
  • DANE (Hidden)Fully Constrained (Bool): (read-only) if true the sketch is fully constrained.

View

Auto Constraints

  • WIDOKAutoconstraints (Bool): if true constraints are automatically added when geometry is drawn.
  • WIDOKAvoid Redundant (Bool): if true redundant auto-constraints are avoided.

Grid

  • WIDOK (Hidden)Grid Auto Size (Bool): if true the grid is resized based on the boundingbox of the geometry of the sketch.
  • WIDOKGrid Size (Length): the size of the spacing of the local grid lines in the 3D view; it defaults to 10 mm.
  • WIDOKGrid Snap (Bool): if true the grid can be used to snap points.
  • WIDOKGrid Style (Enumeration): the style of the grid lines; Dashed (default) or Light.
  • WIDOKShow Grid (Bool): if true a grid local to the object will be displayed in the 3D view. This grid is independent of the Draft Grid.
  • WIDOKShow Only In Edit Mode (Bool): if true the grid is only displayed while the sketch is being edited.
  • WIDOKTight Grid (Bool): if true the local grid will be localized around the origin of the shape, otherwise it will extend itself more.
  • WIDOKmax Number Of Lines (Integer): the maximum number of lines in the grid.

Visibility automation

  • WIDOKEditing Workbench (String): name of the workbench to activate when editing the sketch; it defaults to SketcherWorkbench.
  • WIDOKForce Ortho (Bool): if true the camera will be forced to orthographic view mode when the sketch is opened.
  • WIDOKHide Dependent (Bool): if true all objects that depend on the sketch are hidden when the sketch is opened.
  • WIDOKRestore Camera (Bool): if true the camera position is saved before opening the sketch, and is restored after closing it.
  • WIDOKSection View (Bool): if true only (parts of) objects behind the sketch plane are visible while the sketch is being edited.
  • WIDOKShow Links (Bool): if true all objects used in links to external geometry are shown when the sketch is opened.
  • WIDOKShow Support (Bool): if true all objects this sketch is attached to are shown when the sketch is opened.
  • WIDOK (Hidden)Tempo Vis (PythonObject): a custom class associated with this object, that handles hiding and showing other objects when opening and closing the sketch.

Scripting

See also: FreeCAD Scripting Basics and scripted objects.

See Part Feature for the general information on adding objects to the document.

A SketchObject is created with the addObject() method of the document.

import FreeCAD as App

doc = App.newDocument()
obj = App.ActiveDocument.addObject("Sketcher::SketchObject", "Sketch")
obj.Label = "Custom label"

For Python subclassing you should create the Sketcher::SketchObjectPython object.

import FreeCAD as App

doc = App.newDocument()
obj = App.ActiveDocument.addObject("Sketcher::SketchObjectPython", "CustomSketch")
obj.Label = "Custom label"