Sketcher SketchObject/de: Difference between revisions
(Created page with "== Einleitung ==") |
(Updating to match new version of source page) |
||
Line 11: | Line 11: | ||
[[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 |
{{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.}} |
||
== How to use == |
== How to use == |
||
Line 34: | Line 34: | ||
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. |
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. |
||
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]]. |
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]]. |
||
=== Data === |
=== Data === |
||
{{TitleProperty|Attachment}} |
{{TitleProperty|Attachment}} |
||
* {{PropertyData|Map Mode}}: See [[Part Attachment|Part Attachment]] for more information on all attachment mapping modes. |
* {{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. |
||
{{TitleProperty|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. |
|||
=== View === |
=== View === |
||
{{TitleProperty|Auto Constraints}} |
{{TitleProperty|Auto Constraints}} |
||
* {{PropertyView|Autoconstraints}}: if {{TRUE}} it will try setting constraints when the geometry is drawn. |
* {{PropertyView|Autoconstraints|Bool}}: if {{TRUE}} it will try setting constraints when the geometry is drawn. |
||
{{TitleProperty|Visibility automation}} |
{{TitleProperty|Visibility automation}} |
||
* {{PropertyView|Editing Workbench}}: |
* {{PropertyView|Editing Workbench|String}}: name of the workbench to activate when editing the sketch; it defaults to {{value|SketcherWorkbench}}. |
||
* {{PropertyView|Hide Dependent}}: if {{TRUE}} all objects that depend on the sketch are hidden when opening the sketch. |
* {{PropertyView|Hide Dependent|Bool}}: if {{TRUE}} all objects that depend on the sketch are hidden when opening the sketch. |
||
* {{PropertyView|Restore Camera}}: if {{TRUE}} the camera position is saved before opening the sketch, and is restored after closing it. |
* {{PropertyView|Restore Camera|Bool}}: if {{TRUE}} the camera position is saved before opening the sketch, and is restored after closing it. |
||
* {{PropertyView|Show Links}}: if {{TRUE}} all objects used in links to external geometry are shown when opening the sketch. |
* {{PropertyView|Show Links|Bool}}: if {{TRUE}} all objects used in links to external geometry are shown when opening the sketch. |
||
* {{PropertyView|Show Support}}: if {{TRUE}} all objects this sketch is attached to 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. |
||
==== Hidden properties View ==== |
|||
{{TitleProperty|Base}} |
|||
* {{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]]. |
|||
{{TitleProperty|Visibility automation}} |
|||
* {{PropertyView|Tempo Vis|PythonObject}}: a custom class associated with this object, that handles hiding and showing other objects when opening and closing the sketch. |
|||
All other view properties, including hidden properties, are those of the base [[Part_Feature|Part Feature]] object. |
|||
== Scripting == |
== Scripting == |
||
Line 60: | Line 85: | ||
{{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. |
See [[Part_Feature|Part Feature]] for the general information on adding objects to the document. |
||
A |
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 68: | Line 93: | ||
doc = App.newDocument() |
doc = App.newDocument() |
||
obj = App.ActiveDocument.addObject("Sketcher::SketchObject", "Sketch") |
obj = App.ActiveDocument.addObject("Sketcher::SketchObject", "Sketch") |
||
obj.Label = "Custom label" |
|||
}} |
|||
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= |
|||
import FreeCAD as App |
|||
doc = App.newDocument() |
|||
obj = App.ActiveDocument.addObject("Sketcher::SketchObjectPython", "CustomSketch") |
|||
obj.Label = "Custom label" |
obj.Label = "Custom label" |
||
}} |
}} |
||
{{Sketcher Tools navi}} |
{{Sketcher Tools navi}} |
||
{{Document objects navi}} |
|||
{{Userdocnavi}} |
{{Userdocnavi}} |
Revision as of 15:48, 18 January 2020
Einleitung
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 Part Part2DObject, which means it is a 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.
Simplified diagram of the relationships between the core objects in FreeCAD. The Sketcher::SketchObject
class is specialized for 2D shapes, and additionally it includes an extension to handle geometrical constraints of its elements.
How to use
- 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.
A Sketcher SketchObject (Sketcher::SketchObject
class) is derived from a Part Part2DObject (Part::Part2DObject
class), therefore it shares all the latter's properties.
In addition to the properties described in Part Part2DObject, the basic Sketcher SketchObject has the following 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
Attachment
- DatenMap Mode, DatenMap Reversed, DatenAttachment Offset: same as Part Part2DObject. See Part Attachment for more information on all attachment mapping modes.
Sketch
- DatenConstraints: named constraints, if they exist; otherwise it is an empty list
[]
.
Hidden properties Data
See Part Part2DObject for the rest of the hidden properties.
Base
- DatenProxy (
PythonObject
): a custom class associated with this object. This only exists for the Python version. See Scripting.
Sketch
- DatenGeometry (
GeometryList
): a list of Part geometries that exist inside the sketch. - DatenExternal Geometry (
LinkSubList
): a list of Part geometries outside this Sketch that are used for reference.
View
Auto Constraints
- AnsichtAutoconstraints (
Bool
): iftrue
it will try setting constraints when the geometry is drawn.
Visibility automation
- AnsichtEditing Workbench (
String
): name of the workbench to activate when editing the sketch; it defaults toSketcherWorkbench
. - AnsichtHide Dependent (
Bool
): iftrue
all objects that depend on the sketch are hidden when opening the sketch. - AnsichtRestore Camera (
Bool
): iftrue
the camera position is saved before opening the sketch, and is restored after closing it. - AnsichtShow Links (
Bool
): iftrue
all objects used in links to external geometry are shown when opening the sketch. - AnsichtShow Support (
Bool
): iftrue
all objects this sketch is attached to are shown when opening the sketch.
Hidden properties View
Base
- AnsichtProxy (
PythonObject
): a custom view provider class associated with this object. This only exists for the Python version. See Scripting.
Visibility automation
- AnsichtTempo Vis (
PythonObject
): a custom class associated with this object, that handles hiding and showing other objects when opening and closing the sketch.
All other view properties, including hidden properties, are those of the base Part Feature object.
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"
This basic Sketcher::SketchObject
doesn't have a Proxy object so it can't be fully used for sub-classing.
Therefore, 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, Surface, TechDraw, Test Framework
- Hubs: User hub, Power users hub, Developer hub