Power users hub/ru: Difference between revisions

From FreeCAD Documentation
(Created page with "===Управление Qt интерфейсом===")
(Updating to match new version of source page)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{TOCright}}
[[Image:Power_user_hub.png|64px]]
[[Image:Power_user_hub.png|64px]]
----
----
__NOTOC__


Это место, куда можно прийти, если вы опытный пользователь и хотите узнать больше о настройке и расширении FreeCAD.
Это место, куда можно прийти, если вы опытный пользователь и хотите узнать больше о настройке и расширении FreeCAD.
Line 15: Line 15:
Если Вы хотите добавить контент на эти страницы, запросите аккаунт на wiki с правом редактирования [https://forum.freecadweb.org/viewtopic.php?f=21&t=6830 на форуме], изучите [[WikiPages/ru|WikiPages]] насчёт общих рекомендаций, которым Вы должны следовать. Относительно прочих путей внести вклад в проект смотрите страницу [[Help_FreeCAD/ru|о том как помочь FreeCAD]].
Если Вы хотите добавить контент на эти страницы, запросите аккаунт на wiki с правом редактирования [https://forum.freecadweb.org/viewtopic.php?f=21&t=6830 на форуме], изучите [[WikiPages/ru|WikiPages]] насчёт общих рекомендаций, которым Вы должны следовать. Относительно прочих путей внести вклад в проект смотрите страницу [[Help_FreeCAD/ru|о том как помочь FreeCAD]].


<span id="Customizing_FreeCAD"></span>
== Настройка FreeCAD ==
== Настройка FreeCAD ==


Line 23: Line 24:
* [[Installing_more_workbenches/ru|Установка дополнительных верстаков]]
* [[Installing_more_workbenches/ru|Установка дополнительных верстаков]]


<span id="Scripting_in_FreeCAD"></span>
== Написание сценариев FreeCAD ==
== Написание сценариев FreeCAD ==


===General===
<span id="General"></span>
===Основы===


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
===Основы===
* [[Introduction_to_Python/ru|Введение в Python]]- Смотрите также другие руководства по Python в нижней части этой страницы
* [[Introduction_to_Python/ru|Введение в Python]]- Смотрите также другие руководства по Python в нижней части этой страницы
* [[Python_scripting_tutorial|Учебник скриптов FreeCAD]] - Общий взгляд на написание скриптов на python в FreeCAD
* [[Python_scripting_tutorial|Учебник скриптов FreeCAD]] - Общий взгляд на написание скриптов на python в FreeCAD
Line 37: Line 39:
</div>
</div>


<span id="Modules"></span>
=== Модули ===
=== Модули ===


Line 44: Line 47:
* [[Workbench creation/ru|Создание верстаков]] покажет Вам как создать собственных верстак.
* [[Workbench creation/ru|Создание верстаков]] покажет Вам как создать собственных верстак.


<span id="Working_with_Meshes"></span>
====Working with Meshes====
====Работа с полигональными сетками====


* [[Mesh Scripting/ru|Написание сценариев для Mesh]]: Как взаимодействовать с [[Mesh_Workbench/ru|модулем Mesh]]
<div class="mw-translate-fuzzy">
====Работа с полигиональными сетками====
* [[Mesh Scripting/ru|Написание сценариев для Mesh]]: Как взаимодействовать с [[Mesh Workbench/ru|модулем Mesh]]
</div>


<span id="Working_with_Parts"></span>
====Работа с Parts====
====Работа с Parts====


Line 58: Line 60:
* [[Mesh to Part/ru|Mesh to Part]]: Преобразование между типами объектов
* [[Mesh to Part/ru|Mesh to Part]]: Преобразование между типами объектов


<span id="Accessing_the_Coin_scenegraph"></span>
====Получение доступа к визуализатору сцен - Coin====
====Получение доступа к визуализатору сцен - Coin====


Line 63: Line 66:
* [[Pivy/ru|Pivy]]: Как получить доступ и изменить графическое представление сцены
* [[Pivy/ru|Pivy]]: Как получить доступ и изменить графическое представление сцены


<span id="Controlling_the_Qt_interface"></span>
===Управление Qt интерфейсом===
===Управление Qt интерфейсом===


Line 68: Line 72:
* [[Embedding FreeCADGui/ru|Использование FreeCAD GUI]] в различных Qt приложениях с помощью PyQt
* [[Embedding FreeCADGui/ru|Использование FreeCAD GUI]] в различных Qt приложениях с помощью PyQt


<span id="Working_with_parametric_objects"></span>
===Работа с параметрическими объектами===
===Работа с параметрическими объектами===


<div class="mw-translate-fuzzy">
* [[Scripted objects/ru|Сценарные объекты]]: Как создать на 100% управляемые сценариями на python объекты в FreeCAD
* [[Scripted objects/ru|Сценарные объекты]]: Как создать на 100% управляемые сценариями на python объекты в FreeCAD
** [[Scripted objects with attachment/ru|Scripted objects with attachment]]:Как сделать скриптовые объекты присоединяемыми к другим объектам в FreeCAD
** [[Scripted objects with attachment/ru|Scripted objects with attachment]]:Как сделать скриптовые объекты присоединяемыми к другим объектам в FreeCAD
** [[Scripted_objects_saving_attributes/ru|Scripted objects saving attributes]]: как сохранить и восстановить атрибуты промежуточного класса с {{incode|__getstate__}} и {{incode|__setstate__}}.
** [[Scripted_objects_saving_attributes/ru|Scripted objects saving attributes]]: как сохранить и восстановить атрибуты промежуточного класса с {{incode|__getstate__}} и {{incode|__setstate__}}.
** [[Scripted_objects_migration/ru|Scripted objects migration]]: как мигрировать старые скриптовые объекты на новые классы.
** [[Scripted_objects_migration/ru|Scripted objects migration]]: как мигрировать старые скриптовые объекты на новые классы.
</div>


<span id="Examples"></span>
===Примеры===
===Примеры===


<div class="mw-translate-fuzzy">
===Примеры===
* [[Code snippets/ru|Фрагменты кода]]: Коллекция фрагментов FreeCAD python кода, в качестве ингредиентов ваших сценариев...
* [[Code snippets/ru|Фрагменты кода]]: Коллекция фрагментов FreeCAD python кода, в качестве ингредиентов ваших сценариев...
* [[Line drawing function/ru|Функция отрисовки линии]]: Как собрать простой инструмент для отрисовки линий
* [[Line drawing function/ru|Функция отрисовки линии]]: Как собрать простой инструмент для отрисовки линий
* [[Dialog creation/ru|Создание диалога]]: Как сконструировать диалог в Qt designer, и использовать его в FreeCAD
* [[Dialog creation/ru|Создание диалога]]: Как сконструировать диалог в Qt designer, и использовать его в FreeCAD
* [[Embedding FreeCAD/ru|Встраивание FreeCAD]]: Как импортировать FreeCAD в виде python модуля в другие приложения
* [[Embedding FreeCAD/ru|Встраивание FreeCAD]]: Как импортировать FreeCAD в виде python модуля в другие приложения
* [[Draft_Module/ru|Модуль черчения]]добавляет основные функции 2d рисования в freecad. Он полностью написан на python, так что может быть хорошим примером если вы хотите писать ваши собственные модули.
* [[Draft_Workbench/ru|Верстак черчения]]добавляет основные функции 2d рисования в freecad. Он полностью написан на python, так что может быть хорошим примером если вы хотите писать ваши собственные модули.
* [[FreeCAD vector math library/ru|Векторная библиотека FreeCAD]]: Пара полезных функций для работы с векторами в FreeCAD. Эта библиотека также включена в Чертежный Модуль.
* [[FreeCAD vector math library/ru|Векторная библиотека FreeCAD]]: Пара полезных функций для работы с векторами в FreeCAD. Эта библиотека также включена в Чертежный Модуль.
</div>


<span id="API_Functions"></span>
== Функции API ==
== Функции API ==


Line 93: Line 99:
Связанное: [[Exposing_C%2B%2B_to_Python/ru|Представление C++ в Python]]
Связанное: [[Exposing_C%2B%2B_to_Python/ru|Представление C++ в Python]]


<span id="Advanced_modification"></span>
== Продвинутые модификации ==
== Продвинутые модификации ==


Line 101: Line 108:
* [[Extra_python_modules/ru|Дополнительные модули Python]] : Расширение интерпретатора python в FreeCAD этими мощными модулями!
* [[Extra_python_modules/ru|Дополнительные модули Python]] : Расширение интерпретатора python в FreeCAD этими мощными модулями!


<span id="Python_tutorials"></span>
== Учебники по Python ==
== Учебники по Python ==


Здесь представлены хорошие общие учебники, без специфики FreeCAD, они могут вас заинтересовать, если для вас python, это что-то свовершенно новое.
Здесь представлены хорошие общие учебники, без специфики FreeCAD, они могут вас заинтересовать, если для вас python, это что-то свовершенно новое.


<div class="mw-translate-fuzzy">
'''Python'''
'''Python'''
* [http://docs.python.org/tut/tut.html Официальный учебник python] - весьма полный учебник для знакомства с Python
* [https://docs.python.org/3/tutorial/index.html Официальный учебник python] - весьма полный учебник для знакомства с Python
* [http://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python Учебник по python для не программистов] - отличная wikiкнига
* [https://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3 Учебник по python для не программистов] - отличная wikiкнига
* [http://npt.cc.rsu.ru/user/wanderer/ODP/Python_for_Newbies.htm Python для новичков] - один большой учебник, полностью охватывающий основы
* [http://npt.cc.rsu.ru/user/wanderer/ODP/Python_for_Newbies.htm Python для новичков] - один большой учебник, полностью охватывающий основы
</div>


<div class="mw-translate-fuzzy">
'''PyQt''' - Как создавать и управлять FreeCADовским Qt UI интерфейсом с помощью python
'''PySide''' - Как создавать и управлять FreeCAD Qt UI интерфейсом с помощью python
* [http://zetcode.com/gui/pysidetutorial/ PySide tutorial] : Платформонезависимый учебник, показывающий использование PySide с примерами
* [http://zetcode.com/gui/pysidetutorial/ PySide tutorial] : Платформонезависимый учебник, показывающий использование PySide с примерами
* [http://www.pythoncentral.io/series/python-pyside-pyqt-tutorial/ PySide/PyQt tutorial] : Легкий в чтении учебник по PySide и PyQt, с примерами
* [http://www.pythoncentral.io/series/python-pyside-pyqt-tutorial/ PySide/PyQt tutorial] : Легкий в чтении учебник по PySide и PyQt, с примерами
Line 119: Line 126:
* [http://srinikom.github.io/pyside-docs/index.html Справка по PySide] : бесконечные детали о minutiae PySide и Qt, надежный источник для справки
* [http://srinikom.github.io/pyside-docs/index.html Справка по PySide] : бесконечные детали о minutiae PySide и Qt, надежный источник для справки
* [http://nullege.com/codes/search?cq=PySide Примеры кода PySide] : база данных кода PySide с возможностью поиска
* [http://nullege.com/codes/search?cq=PySide Примеры кода PySide] : база данных кода PySide с возможностью поиска
</div>


Дальнейшие два ссылаются на специффичные для PyQt (не PySide), но могут предложить некоторую полезную информацию:
Дальнейшие два ссылаются на специффичные для PyQt (не PySide), но могут предложить некоторую полезную информацию:
Line 129: Line 137:
* [https://www.semanticscholar.org/paper/Integrating-Pivy-into-Studierstube-4.2-Gruber/08c9a89c8326c87f81c2d83428029fbfb6c2ae64 Introducing Pivy into studierstube] [https://www.researchgate.net/publication/228737136_Integrating_Pivy_into_Studierstube_42 (Mirror)] : Документ, который на самом деле не учебник, но прекрасно иллюстрирует как работает Pivy (требует академический аккаунт)
* [https://www.semanticscholar.org/paper/Integrating-Pivy-into-Studierstube-4.2-Gruber/08c9a89c8326c87f81c2d83428029fbfb6c2ae64 Introducing Pivy into studierstube] [https://www.researchgate.net/publication/228737136_Integrating_Pivy_into_Studierstube_42 (Mirror)] : Документ, который на самом деле не учебник, но прекрасно иллюстрирует как работает Pivy (требует академический аккаунт)


<span id="Community_projects"></span>
== Проекты сообщества ==
== Проекты сообщества ==



Latest revision as of 09:01, 27 January 2024


Это место, куда можно прийти, если вы опытный пользователь и хотите узнать больше о настройке и расширении FreeCAD.

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

  • Создавать и изменять геометрию: вы можете создать новый вид объекта, либо с нуля, либо адаптировав существующий тип.
  • Создавать собственные инструменты и команды: создать ваши собственные наборы инструментов, запускающих Ваш код .
  • Изменять интерфейс: создать панель инструментов и пометить туда ваши инструменты, создавать специальные окна, панели или интерфейсы для взаимодействия с вашими инструментами.
  • Изменять представление в графе сцены: В FreeCAD есть разделение процессов построения и вычисления геометрии и отрисовки этой геометрии на вашем экране. У Вас есть полный доступ к способу отображения содержимого на экране, поэтому вы можете изменить представление, взаимодействовать с ним, или добавить к ним пользовательское поведение.

Вы можете так же добавить пользовательские экранные виджеты, как например информационные, перетаскиватели (draggers), якоря (привязки) или временные объекты (для быстрого предпросмотра операции).

Если Вы хотите добавить контент на эти страницы, запросите аккаунт на wiki с правом редактирования на форуме, изучите WikiPages насчёт общих рекомендаций, которым Вы должны следовать. Относительно прочих путей внести вклад в проект смотрите страницу о том как помочь FreeCAD.

Настройка FreeCAD

Написание сценариев FreeCAD

Основы

Модули

Функциональность FreeCAD разделена между модулями, работающими со своими типами данных и приложениями. У FreeCADа есть встроенные модули и модули расширения (plug-ins). Когда модули расширений установлены, они становятся доступны вам как встроенные модули. Описываемые ниже модули модули по умолчанию, включённые в любую установку FreeCAD.

  • Встроенные модули это принципиальные модули FreeCAD. Они содержат инструменты для манипулирования общими конфигурациями FreeCAD, документами и их содержимым.
  • Создание верстаков покажет Вам как создать собственных верстак.

Работа с полигональными сетками

Работа с Parts

Получение доступа к визуализатору сцен - Coin

  • The Coin/Inventor scenegraph: Как работает представление сцен в FreeCAD
  • Pivy: Как получить доступ и изменить графическое представление сцены

Управление Qt интерфейсом

  • PySide: Как получить доступ к интерфейсу и изменить его содержание
  • Использование FreeCAD GUI в различных Qt приложениях с помощью PyQt

Работа с параметрическими объектами

  • Сценарные объекты: Как создать на 100% управляемые сценариями на python объекты в FreeCAD
    • Scripted objects with attachment:Как сделать скриптовые объекты присоединяемыми к другим объектам в FreeCAD
    • Scripted objects saving attributes: как сохранить и восстановить атрибуты промежуточного класса с __getstate__ и __setstate__.
    • Scripted objects migration: как мигрировать старые скриптовые объекты на новые классы.

Примеры

  • Фрагменты кода: Коллекция фрагментов FreeCAD python кода, в качестве ингредиентов ваших сценариев...
  • Функция отрисовки линии: Как собрать простой инструмент для отрисовки линий
  • Создание диалога: Как сконструировать диалог в Qt designer, и использовать его в FreeCAD
  • Встраивание FreeCAD: Как импортировать FreeCAD в виде python модуля в другие приложения
  • Верстак черчениядобавляет основные функции 2d рисования в freecad. Он полностью написан на python, так что может быть хорошим примером если вы хотите писать ваши собственные модули.
  • Векторная библиотека FreeCAD: Пара полезных функций для работы с векторами в FreeCAD. Эта библиотека также включена в Чертежный Модуль.

Функции API

Полное описание API можно найти в http://www.freecadweb.org/api/ . Он содержит программный интерфейс как на C++, так и на Python, и пока не совсем хорошо форматирован, что может мешать при просмотре кода Python. Более простая для просмотра версия доступна здесь. Заметим что он может быть неполным, так как обновляется вручную. Для получения более точной информации, просматривайте модули напрямую из консоли Python FreeCADа.

Связанное: Представление C++ в Python

Продвинутые модификации

Учебники по Python

Здесь представлены хорошие общие учебники, без специфики FreeCAD, они могут вас заинтересовать, если для вас python, это что-то свовершенно новое.

Python

PySide - Как создавать и управлять FreeCAD Qt UI интерфейсом с помощью python

Дальнейшие два ссылаются на специффичные для PyQt (не PySide), но могут предложить некоторую полезную информацию:

  • Basic PyQt tutorial : Простое и короткое, ориентированное на linux руководство, объясняющее работу с PyQt и Qt Designer
  • Programming Qt applications in python : Более глубокое руководство, описывающее все процессы работы с qt и python.

Pivy - Как взаимодействовать с в 3D сценой FreeCADа

Проекты сообщества

На портале Сообщества, вы можете найти другие основанные на FreeCAD проекты запущенные сообществом пользователей FreeCAD. Если вы начинаете новый проект FreeCAD, убедитесь что его нет в списке! У нас также есть страница, с описанием вещей, которые вы могли бы сделать, если хотите Помочь FreeCAD.