Sketcher SketchObject: Difference between revisions
(Improved "Properties" information) |
m (translation tags added) |
||
(25 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
<languages/> |
||
{{TOCright}} |
|||
<translate> |
<translate> |
||
Line 12: | Line 13: | ||
<!--T:3--> |
<!--T:3--> |
||
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 |
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. |
||
</translate> |
|||
⚫ | |||
[[File:FreeCAD_core_objects.svg|800px]] |
[[File:FreeCAD_core_objects.svg|800px]] |
||
<translate> |
|||
<!--T:24--> |
<!--T:24--> |
||
{{Caption|Simplified diagram of the relationships between the core objects in FreeCAD |
{{Caption|Simplified diagram of the relationships between the core objects in FreeCAD}} |
||
== |
==Usage== <!--T:4--> |
||
<!--T:5--> |
<!--T:5--> |
||
Line 29: | Line 31: | ||
<!--T:6--> |
<!--T:6--> |
||
Although the SketchObject can be used by itself to draw on a plane, it is most commonly used in conjunction with the [[ |
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. |
||
<!--T:7--> |
<!--T:7--> |
||
# Switch to the [[ |
# 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 44: | Line 46: | ||
<!--T:10--> |
<!--T:10--> |
||
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. |
|||
<!--T:11--> |
<!--T:11--> |
||
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 === <!--T:12--> |
=== Data === <!--T:12--> |
||
<!--T: |
<!--T:39--> |
||
{{TitleProperty| |
{{TitleProperty|Sketch}} |
||
* {{PropertyData|Map Mode}}, {{PropertyData|Map Reversed}}, {{PropertyData|Attachment Offset}}: same as [[Part_Part2DObject|Part Part2DObject]]. See [[Part Attachment|Part Attachment]] for more information on all attachment mapping modes. |
|||
<!--T: |
<!--T:40--> |
||
⚫ | |||
⚫ | |||
* {{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|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 === <!--T:15--> |
=== View === <!--T:15--> |
||
Line 76: | Line 66: | ||
<!--T:16--> |
<!--T:16--> |
||
{{TitleProperty|Auto Constraints}} |
{{TitleProperty|Auto Constraints}} |
||
⚫ | |||
<!--T: |
<!--T:41--> |
||
⚫ | |||
{{TitleProperty|Visibility automation}} |
|||
* {{PropertyView|Avoid Redundant|Bool}}: if {{TRUE}} redundant auto-constraints are avoided. |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
==== Hidden properties View ==== |
|||
⚫ | |||
⚫ | |||
{{TitleProperty|Base}} |
|||
* {{PropertyView|Grid Auto Size|Bool|Hidden}}: if {{TRUE}} the grid is resized based on the boundingbox of the geometry of the sketch. |
|||
* {{PropertyView| |
* {{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|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. |
|||
<!--T:44--> |
|||
{{TitleProperty|Visibility automation}} |
{{TitleProperty|Visibility automation}} |
||
<!--T:17--> |
|||
⚫ | |||
⚫ | |||
* {{PropertyView|Force Ortho|Bool}}: if {{TRUE}} the camera will be forced to [[Std_OrthographicCamera|orthographic view mode]] when the sketch is opened. |
|||
All other view properties, including hidden properties, are those of the base [[Part_Feature|Part Feature]] object. |
|||
⚫ | |||
⚫ | |||
* {{PropertyView|Section View|Bool}}: if {{TRUE}} only (parts of) objects behind the sketch plane are visible while the sketch is being edited. |
|||
⚫ | |||
⚫ | |||
⚫ | |||
== Scripting == <!--T:18--> |
== Scripting == <!--T:18--> |
||
<!--T:19--> |
<!--T:19--> |
||
{{Emphasis|See also:}} [[ |
{{Emphasis|See also:}} [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]] and [[Scripted_objects|scripted objects]]. |
||
<!--T:20--> |
<!--T:20--> |
||
See [[Part_Feature|Part Feature]] for the general information on adding objects. |
See [[Part_Feature|Part Feature]] for the general information on adding objects to the document. |
||
<!--T:21--> |
<!--T:21--> |
||
A SketchObject is created with the {{incode|addObject()}} method of the document. |
A SketchObject is created with the {{incode|addObject()}} method of the document. |
||
</translate> |
</translate> |
||
{{Code|code= |
{{Code|code= |
||
Line 118: | Line 118: | ||
<translate> |
<translate> |
||
<!--T:38--> |
|||
This basic {{incode|Sketcher::SketchObject}} doesn't have a Proxy object so it can't be fully used for sub-classing. |
|||
⚫ | |||
⚫ | |||
</translate> |
</translate> |
||
Line 127: | Line 126: | ||
doc = App.newDocument() |
doc = App.newDocument() |
||
obj = App.ActiveDocument.addObject("Sketcher::SketchObjectPython", " |
obj = App.ActiveDocument.addObject("Sketcher::SketchObjectPython", "CustomSketch") |
||
obj.Label = "Custom label" |
obj.Label = "Custom label" |
||
}} |
}} |
||
<translate> |
<translate> |
||
⚫ | |||
{{Sketcher Tools navi}} |
|||
{{Document objects navi}} |
|||
⚫ | |||
</translate> |
</translate> |
||
{{Sketcher_Tools_navi{{#translation:}}}} |
|||
{{Document_objects_navi{{#translation:}}}} |
|||
⚫ |
Latest revision as of 10:35, 29 May 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
- Switch to the Sketcher Workbench.
- Press Sketcher NewSketch.
- Select a Sketch orientation: XY-plane, XZ-plane, or YZ-plane. Optionally also choose Reverse direction, and give an Offset value.
- 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.
- Switch to the PartDesign Workbench.
- Press PartDesign Body.
- Press PartDesign NewSketch.
- Select feature: XY_Plane (Base plane), XZ_Plane (Base plane), or YZ_Plane (Base plane).
- 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
- Data (Hidden)Geometry (
GeometryList
): a list of Part geometries that exist inside the sketch. - DataConstraints: named constraints, if they exist; otherwise it is an empty list
[]
. - DataExternal Geometry (
LinkSubList
): a list of Part geometries outside this Sketch that are used for reference. - Data (Hidden)Fully Constrained (
Bool
): (read-only) iftrue
the sketch is fully constrained.
View
Auto Constraints
- ViewAutoconstraints (
Bool
): iftrue
constraints are automatically added when geometry is drawn. - ViewAvoid Redundant (
Bool
): iftrue
redundant auto-constraints are avoided.
Grid
- View (Hidden)Grid Auto Size (
Bool
): iftrue
the grid is resized based on the boundingbox of the geometry of the sketch. - ViewGrid Size (
Length
): the size of the spacing of the local grid lines in the 3D view; it defaults to10 mm
. - ViewGrid Snap (
Bool
): iftrue
the grid can be used to snap points. - ViewGrid Style (
Enumeration
): the style of the grid lines;Dashed
(default) orLight
. - ViewShow Grid (
Bool
): iftrue
a grid local to the object will be displayed in the 3D view. This grid is independent of the Draft Grid. - ViewShow Only In Edit Mode (
Bool
): iftrue
the grid is only displayed while the sketch is being edited. - ViewTight Grid (
Bool
): iftrue
the local grid will be localized around the origin of the shape, otherwise it will extend itself more. - Viewmax Number Of Lines (
Integer
): the maximum number of lines in the grid.
Visibility automation
- ViewEditing Workbench (
String
): name of the workbench to activate when editing the sketch; it defaults toSketcherWorkbench
. - ViewForce Ortho (
Bool
): iftrue
the camera will be forced to orthographic view mode when the sketch is opened. - ViewHide Dependent (
Bool
): iftrue
all objects that depend on the sketch are hidden when the sketch is opened. - ViewRestore Camera (
Bool
): iftrue
the camera position is saved before opening the sketch, and is restored after closing it. - ViewSection View (
Bool
): iftrue
only (parts of) objects behind the sketch plane are visible while the sketch is being edited. - ViewShow Links (
Bool
): iftrue
all objects used in links to external geometry are shown when the sketch is opened. - ViewShow Support (
Bool
): iftrue
all objects this sketch is attached to are shown when the sketch is opened. - View (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"
- General: Create sketch, Edit sketch, Map sketch to face, Reorient sketch, Validate sketch, Merge sketches, Mirror sketch, Leave sketch, View sketch, View section, Toggle grid, Toggle snap, Configure rendering order, Stop operation
- Sketcher geometries: Point, Line, Arc, Arc by 3 points, Circle, Circle by 3 points, Ellipse, Ellipse by 3 points, Arc of ellipse, Arc of hyperbola, Arc of parabola, B-spline by control points, Periodic B-spline by control points, B-spline by knots, Periodic B-spline by knots, Polyline, Rectangle, Centered rectangle, Rounded rectangle, Triangle, Square, Pentagon, Hexagon, Heptagon, Octagon, Regular polygon, Slot, Fillet, Corner-preserving fillet, Trim, Extend, Split, External geometry, Carbon copy, Toggle construction geometry
- Sketcher constraints:
- Geometric constraints: Coincident, Point on object, Vertical, Horizontal, Parallel, Perpendicular, Tangent, Equal, Symmetric, Block
- Dimensional constraints: Lock, Horizontal distance, Vertical distance, Distance, Radius or weight, Diameter, Auto radius/diameter, Angle, Refraction (Snell's law)
- Constraint tools: Toggle driving/reference constraint, Activate/deactivate constraint
- Sketcher tools: Select unconstrained DoF, Select associated constraints, Select associated geometry, Select redundant constraints, Select conflicting constraints, Show/hide internal geometry, Select origin, Select horizontal axis, Select vertical axis, Symmetry, Clone, Copy, Move, Rectangular array, Remove axes alignment, Delete all geometry, Delete all constraints
- Sketcher B-spline tools: Show/hide B-spline degree, Show/hide B-spline control polygon, Show/hide B-spline curvature comb, Show/hide B-spline knot multiplicity, Show/hide B-spline control point weight, Convert geometry to B-spline, Increase B-spline degree, Decrease B-spline degree, Increase knot multiplicity, Decrease knot multiplicity, Insert knot, Join curves
- Sketcher virtual space: Switch virtual space
- Additional: Sketcher Dialog, Preferences, Sketcher scripting
- Core: App DocumentObject
- Basic: App FeaturePython, App GeoFeature, Part Feature, Mesh Feature, Fem FemMeshObject
- Internal shapes: Part TopoShape, Mesh MeshObject, Fem FemMesh
- Structure: App DocumentObjectGroup (Std Group), App Part (Std Part), App Link (Std LinkMake)
- Derived: Part Part2DObject, Sketcher SketchObject, PartDesign Body, PartDesign Feature
- 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, Start, Surface, TechDraw, Test Framework, Web
- Hubs: User hub, Power users hub, Developer hub