Sketcher SketchObject/ru

From FreeCAD Documentation
Revision as of 19:39, 11 September 2021 by Evgeniy (talk | contribs)
Other languages:

Введение

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.

Применение

  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.

Свойства

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.

Данные

Attachment

  • ДанныеMap Mode, ДанныеMap Reversed, ДанныеAttachment Offset: same as Part Part2DObject. See Part EditAttachment for more information on all attachment mapping modes.

Sketch

  • ДанныеConstraints: named constraints, if they exist; otherwise it is an empty list [].

Скрытые свойства Данных

See Part Part2DObject for the rest of the hidden properties.

Основные

  • ДанныеProxy (PythonObject): a custom class associated with this object. This only exists for the Python version. See Scripting.

Sketch

  • ДанныеGeometry (GeometryList): a list of Part geometries that exist inside the sketch.
  • ДанныеExternal Geometry (LinkSubList): a list of Part geometries outside this Sketch that are used for reference.

Вид

Auto Constraints

  • ВидAutoconstraints (Bool): if true it will try setting constraints when the geometry is drawn.

Visibility automation

  • ВидEditing Workbench (String): name of the workbench to activate when editing the sketch; it defaults to SketcherWorkbench.
  • ВидHide Dependent (Bool): if true all objects that depend on the sketch are hidden when opening the sketch.
  • ВидRestore Camera (Bool): if true the camera position is saved before opening the sketch, and is restored after closing it.
  • ВидShow Links (Bool): if true all objects used in links to external geometry are shown when opening the sketch.
  • ВидShow Support (Bool): if true all objects this sketch is attached to are shown when opening the sketch.

Скрытые свойства Вид

Основные

  • ВидProxy (PythonObject): a custom view provider class associated with this object. This only exists for the Python version. See Scripting.

Visibility automation

  • Вид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 object.

Программирование

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"