FreeCAD Scripting Basics/ru

Написание сценариев Python в FreeCAD
FreeCAD с начала построен так, чтобы быть полностью контролируемым сценариями Python. Почти все части FreeCAD, такие как интерфейс, содержимое сцены, и даже представление этого содержания в окне 3D просмотра доступны из встроенного Python интерпретатора или из своих собственных сценариев. Как результат, FreeCAD вероятно, является одной из наиболее глубоко настраиваемый инженерных приложений, доступных сегодня.

Если вы не знакомы с Python, мы рекомендуем Вам искать учебники по интернету, и бегло взглянуть на его структуру. Python это очень простой язык для обучения, особенно потому, он может быть сразу запущен внутри интерпритатора, где и простая команда и готовая программа может быть выполнена "на лету", без необходимости компилировать что-либо. FreeCAD имеет встроенный в Python интерпритатор. Если вы не видите окно с надписью Консоль Python, как показано ниже, вы можете активировать его через.

Интерпретатор
В интерпретаторе вы можете получить доступ к установленным в вашей системе модулям Python, а также встроенным модулям FreeCAD, и всем дополнительным модулям FreeCAD что вы установите позже. Скриншот ниже показывает интерпретатор Python:



В интепритаторе, вы можете выполнять код Python и просматривать доступные классы и функции. FreeCAD предоставляет очень удобный браузер классов для освоения мира FreeCAD: Когда вы вводите имя известного класса после точки сразу же появляется (то есть вы хотите добавить что-то из этого класса), окно браузера, где вы можете перемещаться между имеющимися подклассами и методами. При выборе если существует, связанный текст справка, то он отображается:



Таким образом, сначало наберите или   посмотрите, что происходит. Другой, более общий Python метод изучения содержимого модулей и классов является использование команды. Например, ввод выведет список всех модулей, загруженных в FreeCAD. покажет вам все, что содержит App модуль и т.д.

Еще одна полезная особенность интерпритатора возможность вернуться назад по истории команд и извлечь строки кода, которые вы уже набрали ранее. Для перемещения по истории команд, просто используйте или.

Щелкнув правой кнопкой мыши в окне интерпритатора, у вас также есть несколько других опций, таких как копирование всей истории (полезно для эксперимента что-то сделать, а затем получить полный сценарий этого), или вставить имя файла с полным путем.

Python Help
В меню, вы найдете раздел , при открытии которого откроется окно браузера, содержащего полную, создаваемую в реальном времени, документацию всех модулей Python, доступных в интерпретаторе FreeCAD, встроенных модулях Python и FreeCAD, установленных в систему модулей и дополнительные модулей FreeCAD. Доступна ли документация зависит от того, сколько усилий разработчик каждого модуля приложил к документированию своего кода, но, как правило Python модули имеют репутацию хорошо задокументированных. Ваше окно FreeCAD должно оставаться открытым для того чтобы система документации работала. В разделе  находится ссылка на этот вики-раздел Power users hub.

Встроеные модули
Поскольку FreeCAD спроектирован с возможностью запуска без графического интерфейса пользователя (Graphical User Interface, GUI), почти все функциональные возможности разделены на две группы: Базовая функциональности, названные, и функциональность интерфейса, названный. Эти два модуля можно также подключить из сценариев, вне интерпретатора, под названиями и  соответственно.


 * В модуле вы найдете все, связанное с самим приложением, такие методы как открытия или закрытия файлов, а также документов, как настройка активного документа или объявление его содержания.


 * В модуле вы найдете инструменты для доступа и управления элементами графического интерфейса, такими как инструментарии и и их панели инструментов, и, что более интересно, графическое представление всего содержимого FreeCAD.

Перелистывание содержимого этих модулей не слишком полезно, поскольку они растут довольно быстро с развитием FreeCAD. Но два инструмента просмотра (браузер классов и справка Python) должны обеспечить вас полной и актуальной документацией в любой момент.

Объекты модулей App и Gui
Как мы уже говорили, в FreeCAD, всё разделенные между основным и представлением. Это подразумевает и 3D-объекты. Вы можете получить доступ определяющим свойствам объектов (одна из особенностей FreeCAD) с помощью модуля, и изменить то, как они представлены на экране с помощью модуля. Например, куб имеет свойства, которые определяют его, такие как ширина, длина, высота, они хранятся в объекте, а свойства представления, такие как цвета граней, режим отрисовки, хранятся в соответствующем объекте.

Этот способ обладает очень широким спектром применения, как с алгоритмами работы только с определеной частью функций, не нужно заботиться о какой-либо визуальной части, или даже перенаправления содержания документов не-графических приложений, таких как списки, таблицы или элементный анализ.

Для каждого объекта в вашем документе существует соответствующий объект. Фактически и сам документ содержит объекты и. Это, конечно, действует только при запуске FreeCAD с полным интерфейсом. В режиме командной строки графического интерфейса нет, так что доступны только объекты. Обратите внимание, что часть объектов создается снова каждый раз когда объект  отмечен как "подлежащий пересчёту" (например, когда один из его параметров изменился), поэтому изменения, которые вы могли сделать непосредственно на объекте  могут быть потеряны.

чтобы получить доступ к части чего-либо, введите:

где это имя вашего объекта. Вы также можете ввести:

чтобы получить доступ к части того же объекта, введите:

где - имя вашего объекта. Вы также можете ввести:

Если мы находимся в режиме командной строки и графического интерфейса нет, последняя строка вернет.

Объекты документа
В FreeCAD всё, над чем вы работаете, находится внутри документов. Документ содержит вашу геометрию и может быть сохранен в файл. Одновременно может быть открыто несколько документов. Документ, также как и геометрия, содержащиеся внутри него, имеет объекты и. Объект содержит фактически определенную Вами геометрию, в то время как объект  содержит различные отображения из вашего документа. Вы можете открывать несколько окон, каждое из которых отображение вашей работы с различным масштабом или точкой зрения. Эти виды входят в объект вашего документа.

Чтобы получить доступ к части текущего открытого (активного) документа, введите:

Чтобы создать новый документ, введите:

Чтобы получить доступ к части текущего открытого (активного) документа, введите:

чтобы получить доступ к текущему виду, введите:

Использование дополнительных модулей
Модули и  отвечают за создание и управление объектами в документе FreeCAD. Они не занимаются созданием или изменением геометрии. Это потому, что эта геометрия может быть нескольких типов, и поэтому она управляется дополнительными модулями, каждый из которых отвечает за управление определенным типом геометрии. Например, Модуль Part использует ядро OpenCascade и поэтому может создавать и манипулировать геометрией типа B-rep. В то же время Модуль Mesh может создавать и модифицировать объекты типа сетка. Таким образом, FreeCAD может обрабатывать самые разные типы объектов, которые могут сосуществовать в одном документе, и новые типы могут быть легко добавлены в будущем.

Создание объектов
Каждый модуль имеет свой собственный способ обработки своей геометрии, но обычно они все могут создавать объекты в документе. Но документ FreeCAD также знает о доступных типах объектов, предоставляемых модулями:

перечислит все возможные объекты, которые вы можете создать. Например, давайте создадим сетку (поддерживаемую модулем ) и деталь (поддерживаемую модулем ):

Первый аргумент - это тип объекта, второй - имя объекта. Наши два объекта выглядят почти одинаково: они еще не содержат никакой геометрии, и большинство их свойств одинаковы, когда вы проверяете их с помощью и. За исключением одного, имеет свойство, а  - свойство. Здесь хранятся данные Mesh и Part. Например, давайте создадим куб и сохраним его в нашем объекте :

Вы можете попытаться сохранить куб в свойстве объекта, он вернет сообщение об ошибке неправильного типа. Это происходит из-за того, что каждое свойство предназначены для хранения только определенного типа. В свойстве вы можете сохранять только то, что создано с помощью модуля. Обратите внимание, что большинство модулей также имеют ярлык для добавления своей геометрии в документ:

Изменение объектов
Модификация объекта выполняется так же:

Теперь давайте изменим форму на большую:

Запрос объектов
Вы всегда можете посмотреть на тип объекта следующим образом:

или проверить, является ли объект производным от одного из базовых объектов (элемент детали, элемент сетки и т.д.):

Теперь вы действительно можете начать играть с FreeCAD! Насчёт полного списка всех доступных модулей и доступных инструментов смотрите в разделе Category:API.