App GeoFeature/ru

Введение

Объект App GeoFeature, или формально App::GeoFeature, является базовым классом большинства объектов, отображающих геометрические элементы в 3D виде, поскольку включает свойство ДанныеPlacement (Размещение).

Упрощённая схема взаимосвязей между основными объектами в FreeCAD

Применение

App GeoFeature - это внутренний объект, поэтому его нельзя создать из графического интерфейса. Обычно он не предназначен для прямого использования, скорее его можно подклассифицировать, чтобы получить пустой объект, который имеет только базовое свойство ДанныеPlacement (Размещение) для определения его положения в 3D виде.

Ниже приведены некоторые из наиболее важных производных объектов:

При создании этого объекта в Python вместо подкласса App::GeoFeature следует использовать подкласс App::GeometryPython, поскольку последний включает провайдера представления по умолчанию и атрибуты Proxy для самого объекта и его провайдера представления. Смотри Написание скриптов.

Свойства App GeoFeature

Все типы свойств, которыми могут обладать объекты скриптов, смотри в разделе Свойства.

Класс App GeoFeature (App::GeoFeature) является производным от базового класса App DocumentObject (App::DocumentObject) и наследует все его свойства. Кроме того, у него есть свойство ДанныеPlacement (Размещение), которое управляет его положением в 3D виде.

Свойства App GeometryPython

Все типы свойств, которыми могут обладать объекты скриптов, смотри в разделе Свойства.

Класс App GeometryPython (App::GeometryPython) является производным от базового класса App GeoFeature (App::GeoFeature) и наследует все его свойства. У него также есть несколько дополнительных свойств.

Это свойства, доступные в редакторе свойств. Скрытые свойства можно показать с помощью команды Show hidden (Показать скрытые) в контекстном меню редактора свойств.

See Part Feature for an explanation of the properties listed below.

Данные

Основные

  • Данные (Скрыто)Proxy (Прокси) (PythonObject): пользовательский класс, связанный с этим объектом.
  • ДанныеPlacement (Размещение) (Placement): положение объекта в 3D виде. Размещение определяется точкой (вектором) Base (База) и Rotation (Поворотом) (ось и угол). Смотри Placement (Размещение).
    • ДанныеAngle (Угол): угол поворота вокруг ДанныеAxis (Оси). По умолчанию он равен (ноль градусов).
    • ДанныеAxis (Ось): единичный вектор, определяющий ось поворота для размещения. Каждый компонент - это значение с плавающей точкой между 0 и 1. Если какое-либо значение больше 1, вектор нормализуется так, чтобы его величина была равна 1. По умолчанию это положительная ось Z, (0, 0, 1).
    • ДанныеPosition (Положение): вектор с трёхмерными координатами базовой точки. По умолчанию это начало координат (0, 0, 0).
  • ДанныеLabel (Ярлык) (Строка): редактируемое пользователем имя этого объекта, представляющее собой произвольную строку в кодировке UTF-8.
  • Данные (Скрыто)Label2 (Ярлык2) (Строка): более длинное, редактируемое пользователем описание этого объекта, представляющее собой произвольную строку UTF-8, которая может включать новые строки. По умолчанию это пустая строка "".
  • Данные (Скрыто)Expression Engine (Движок Выражений) (ExpressionEngine): список выражений. По умолчанию он пуст [].
  • Данные (Скрыто)Visibility (Видимость) (Булево): отображать объект или нет.

Вид

Base

Base (База)

  • Вид (Скрыто)Proxy (Прокси) (PythonObject): пользовательский класс viewprovider, связанный с этим объектом.

Display Options

Display Options (Параметры Отображения)

  • ВидBounding Box (Ограничивающая Область) (Булево): если это значение true, то объект будет показывать ограничивающую рамку в 3D виде.
  • ВидDisplay Mode (Режим Отображения) (Перечисление): смотри информацию в разделе App FeaturePython.
  • ВидShow In Tree (Показать В Дереве) (Булево): смотри информацию в разделе App FeaturePython.
  • ВидVisibility (Видимость) (Булево): смотри информацию в разделе App FeaturePython.

Object Style

Object Style (Стиль Объекта)

  • ВидShape Color (Цвет Фигуры) (Цвет): кортеж из трёх значений RGB с плавающей точкой (r,g,b) для определения цвета граней в 3D виде; по умолчанию это (0.8, 0.8, 0.8), который отображается как [204, 204, 204] на базе 255, и это светло серый .
  • Вид (Скрыто)Shape Material (Материал Фигуры) (Material (Материал)): App Material, связанный с этим объектом. По умолчанию он пуст.
  • ВидTransparency (Прозрачность) (Процент): целое число от 0 до 100, определяющее уровень прозрачности граней в 3D view. Значение 100 означает полностью прозрачные грани; грани невидимы, но их можно выбрать, если ВидSelectable (Выбираемый) имеет значение true.

Selection

Selection (Выбор)

  • ВидOn Top When Selected (Сверху, Когда Выбран) (Перечисление): смотри информацию в разделе App FeaturePython.
  • ВидSelectable (Выбираемый) (Булево): если он равен true, объект можно выбрать курсором в 3D виде. В противном случае объект не может быть выбран до тех пор, пока этот параметр не будет установлен в true.
  • ВидSelection Style (Стиль Выбора) (Перечисление): смотри информацию в разделе App FeaturePython.

Написание скриптов

Смотри так же: Основы составления скриптов в FreeCAD, и программируемые объекты.

Общие сведения о добавлении объектов в документ смотрите в разделе Конструктивный элемент верстака Part.

GeoFeature создаётся с помощью метода addObject() документа. Если вы хотите создать объект с 2D или 3D топологической формой, возможно, лучше создать один из подклассов, специализированных для работы с фигурами, например Part Feature (Конструктивный элемент) или Part Part2DObject.

import FreeCAD as App

doc = App.newDocument()
obj = App.ActiveDocument.addObject("App::GeoFeature", "Name")
obj.Label = "Custom label"

Для подкласса Python следует создать объект App::GeometryPython.

import FreeCAD as App

doc = App.newDocument()
obj = App.ActiveDocument.addObject("App::GeometryPython", "Name")
obj.Label = "Custom label"