Power users hub/ru: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
(33 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
[[Image:Power_user_hub.png|64px]]
----
__NOTOC__


Это место, куда можно прийти, если вы опытный пользователь и хотите узнать больше о настройке и расширении FreeCAD.
[[Image:Crystal_Clear_app_terminal.png|right|150]]


FreeCAD расширяем с помощью кода [[Python/ru|Python]], который запускается непосредственно в [[Python_console/ru|консоли Python]] или загружается из модулей при запуске. Это означает, что вы можете модифицировать FreeCAD без необходимости перекомпиляции программы. Например, вы можете:
Это место для тех кто хочет глубже понять FreeCAD. Здесь вы можете узнать о настройке FreeCAD под ваши нужды.
* '''Создавать и изменять геометрию''': вы можете создать новый вид объекта, либо с нуля, либо адаптировав существующий тип.
* '''Создавать собственные инструменты и команды''': создать ваши собственные наборы инструментов, запускающих Ваш код .
* '''Изменять интерфейс''': создать панель инструментов и пометить туда ваши инструменты, создавать специальные окна, панели или интерфейсы для взаимодействия с вашими инструментами.
*'''Изменять представление в графе сцены''': В FreeCAD есть разделение процессов построения и вычисления геометрии и отрисовки этой геометрии на вашем экране. У Вас есть полный доступ к способу отображения содержимого на экране, поэтому вы можете изменить представление, взаимодействовать с ним, или добавить к ним пользовательское поведение.
Вы можете так же добавить пользовательские экранные виджеты, как например информационные, перетаскиватели (draggers), якоря (привязки) или временные объекты (для быстрого предпросмотра операции).


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

Одной из самых приятных особенностей FreeCAD, это то что вы можете написать сценарий и расширить его по максимуму, без какой либо компиляции исходного кода. Вся сценарная часть пишется на языке [https://ru.wikipedia.org/wiki/Python python], очень мощном, но простом языке программирования. С помощью простых python сценариев, вы получаете полный доступ к любой части Freecad. Например, вы можете:
* '''Создавать и изменять геометрию''': Существует специальный объект нужный вам но не входящий в стандартную комплектацию FreeCAD? Вы легко можете создать новый вид объекта, либо с нуля, либо адаптировав существующий тип.
* '''Создавать собственные инструменты и команды''': На сегодняшний день, FreeCAD уже обладает широкими функциональными возможностями, но пока не хватает многих инструментов и команд для удобства конечного пользователя. Но теперь создавать ваши собственные наборы инструментов стало уже легко.
* '''Изменять интерфейс''': Пользовательский интерфейс FreeCAD на данном этапе простоват. Но у Вас есть все, что нужно для расширения его под ваши нужды. Вы можете, к примеру, создать панель инструментов и пометить туда ваши инструменты, создавать специальные панели для взаимодействия с вашими инструментами и.т.д.
*'''Изменять представление на сцене''': В FreeCAD есть разделение процессов построения и вычисления геометрии и отрисовки этой геометрии на вашем экране. У Вас есть полный доступ к способу отображения содержимого на экране, поэтому вы можете изменить представление, взаимодействовать с ним, или добавить различные виды взаимодействия объекта с пользователем и экранные виджеты, как например информационные, перетаскиватели (draggers), якоря (привязки) или временные объекты (для быстрого предпросмотра операции).


== Настройка FreeCAD ==
== Настройка FreeCAD ==


<div class="mw-translate-fuzzy">
* [[Interface Customization/ru|Настройка Интерфейса]]: Начиная с начала: Панели инструментов и ярлыки
* [[Interface Customization/ru|Настройка Интерфейса]]: Начиная с начала: Панели инструментов и ярлыки
* [[Macros/ru|Работа с макросами]]: Легкая запись часто повторяющихся задач или python кода
* [[Macros/ru|Работа с макросами]]: Легкая запись часто повторяющихся задач или python кода
* [[Macros_recipes/ru|Рецепты макросов]]
* [[Macros_recipes/ru|Рецепты макросов]]
* [[Customize_Toolbars/ru|Кустомизация панелей инструментов]]
* [[Customize_Toolbars/ru|Кастомизация панелей инструментов]]
* [[Installing_more_workbenches/ru|Установка дополнительных верстаков]]
* [[Installing_more_workbenches/ru|Установка дополнительных верстаков]]
* [http://forum.freecadweb.org/viewtopic.php?t=10556 Plugin Loader]
* [https://github.com/FreeCAD/FreeCAD-addons Addons installer.FCMacro]
</div>


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


<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
* [[FreeCAD Scripting Basics/ru|основы написания сценариев для FreeCAD]]: Что сказать, основы ...
* [[FreeCAD Scripting Basics/ru|Основы написания сценариев для FreeCAD]]: Что сказать, основы ...
* [[Gui Command/ru|Gui Команды]] : Добавление пользовательских команд в GUI
* [[Gui Command/ru|Gui Команды]] : Добавление пользовательских команд в GUI
* Использование смешанных [[Units|Единиц измерения]] в FreeCAD
* Использование смешанных [[Units|Единиц измерения]] в FreeCAD
Line 37: Line 36:
=== Модули ===
=== Модули ===


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


<div class="mw-translate-fuzzy">
* [[Builtin modules/ru|Встроенные модули]] это принципиальные модули FreeCAD. Они содержат инструменты для манипулирования общими конфигурациями FreeCAD, документами и их содержимым.
* [[Builtin modules/ru|Встроенные модули]] это принципиальные модули FreeCAD. Они содержат инструменты для манипулирования общими конфигурациями FreeCAD, документами и их содержимым.
* [[Workbench creation/ru|Создание верстаков]] покажет Вам как создать собственных верстак.
* [[Workbench creation/ru|Создание верстаков]] покажет Вам как создать собственных верстак.
</div>


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


====Работа с Parts====
<div class="mw-translate-fuzzy">
* [[Part Module/ru|Модуль Деталей]]: Как инструменты и структуры [http://en.wikipedia.org/wiki/Open_CASCADE OpenCasCade] используются в FreeCAD
'''Использование OpenCasCade'''
* [[Topological data scripting/ru|Сценарии для обработки топологических данных]]: Как взаимодействовать с модулем Part
* [[Part Module/ru|Модуль Деталей]]: Как инструменты и структуры OpenCasCade используются в FreeCAD
* [[pythonOCC/ru|PythonOCC]]: Как раскрыть всю мощь OpenCasCade
* [[Topological data scripting/ru|Сценарии модуля Деталей]]: Как взаимодействовать с Модулем Деталей
* [[pythonOCC]]: Как раскрыть всю мощь OpenCasCade
* [[Mesh to Part/ru|Mesh to Part]]: Преобразование между типами объектов
* [[Mesh to Part/ru|Mesh to Part]]: Преобразование между типами объектов
</div>


====Получение доступа к отрисовщику сцен - Coin====
<div class="mw-translate-fuzzy">
'''Получение доступа к отрисовщику сцен - Coin'''
* [[Scenegraph/ru|The Coin/Inventor scenegraph]]: Как работает представление сцен в FreeCAD
* [[Scenegraph/ru|The Coin/Inventor scenegraph]]: Как работает представление сцен в FreeCAD
* [[Pivy/ru|Pivy]]: Как получить доступ и изменить графческое представление сцены
* [[Pivy/ru|Pivy]]: Как получить доступ и изменить графическое представление сцены
</div>


===Управление Qt интерфейсом===
<div class="mw-translate-fuzzy">
'''Управление Qt интерфейсом'''
* [[PySide/ru|PySide]]: Как получить доступ к интерфейсу и изменить его содержание
* [[PySide/ru|PySide]]: Как получить доступ к интерфейсу и изменить его содержание
* [[Embedding FreeCADGui|Использование FreeCAD GUI]] в различных Qt приложениях с помощью PyQt
* [[Embedding FreeCADGui/ru|Использование FreeCAD GUI]] в различных Qt приложениях с помощью PyQt
</div>


===Работа с параметрическими объектами===
<div class="mw-translate-fuzzy">
'''Работа с параметрическими объектами'''
* [[Scripted objects/ru|Сценарные объекты]]: Как создать 100% python-сценарные объекты в FreeCAD
* [[Drawing Module/ru|Модуль Проецирования]]: Автоматизация процессов перегона 3D в 2D
</div>


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

===Примеры===
* [[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_Module/ru|Модуль черчения]]добавляет основные функции 2d рисования в freecad. Он полностью написан на python, так что может быть хорошим примером если вы хотите писать ваши собственные модули.
* [[FreeCAD vector math library|FreeCAD векторная библиотека]] : Пара полезных функций для работы с векторами в FreeCAD. Эта библиотека также включена в Чертежный Модуль.
* [[FreeCAD vector math library/ru|Векторная библиотека FreeCAD]]: Пара полезных функций для работы с векторами в FreeCAD. Эта библиотека также включена в Чертежный Модуль.
</div>


== API Функции ==
== Функции API ==


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


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


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


<div class="mw-translate-fuzzy">
* [[Start up and Configuration/ru|Запуск и настройка]]: Запуск и параметры командной строки
* [[Start up and Configuration/ru|Запуск и настройка]]: Запуск и параметры командной строки
* [[Install on Windows/ru|Установка в Windows]]: Использование установщика windows
* [[Install on Windows/ru|Установка в Windows]]: Использование установщика windows
* [[CompileOnWindows/ru|Компиляция FreeCAD в Windows]] и [[CompileOnUnix/ru|Компиляция FreeCAD в Unix]]
* [[CompileOnWindows/ru|Компиляция FreeCAD в Windows]] и [[Compile_on_Linux/ru|компиляция FreeCAD в Linux]]
* [[Branding/ru|Маркирование]]: Простые изменения, которые вы можете сделать с исходными кодами для изменения некоторых аспектов FreeCAD
* [[Branding/ru|Маркирование]]: Простые изменения, которые вы можете сделать с исходными кодами для изменения некоторых аспектов FreeCAD
* [[Extra python modules/ru|Дополнительные модули Python]] : Расширение интерпретатора python в FreeCAD этими мощными модулями!
* [[Extra python modules/ru|Дополнительные модули Python]] : Расширение интерпретатора python в FreeCAD этими мощными модулями!
</div>


== Учебники по Python ==
== Учебники по Python ==
Line 120: Line 104:
* [http://nullege.com/codes/search?cq=PySide Примеры кода PySide] : база данных кода PySide с возможностью поиска
* [http://nullege.com/codes/search?cq=PySide Примеры кода PySide] : база данных кода PySide с возможностью поиска


<div class="mw-translate-fuzzy">
Дальнейшие два ссылаются на специффичные для PyQt (не PySide), но могут предложить некоторую полезную информацию:
Дальнейшие два ссылаются на специффичные для PyQt (не PySide), но могут предложить некоторую полезную информацию:
* [http://www.cs.usfca.edu/~afedosov/qttut/ Basic PyQt tutorial] : Простое и короткое, ориентированное на linux руководство, объясняющее работу с PyQt и Qt Designer
* [http://www.cs.usfca.edu/~afedosov/qttut/ Basic PyQt tutorial] : Простое и короткое, ориентированное на linux руководство, объясняющее работу с PyQt и Qt Designer
* [http://vizzzion.org/?id=pyqt Programming Qt applications in python] : Более глубокое руководство, описывающее все процессы работы с qt и python.
* [http://vizzzion.org/?id=pyqt Programming Qt applications in python] : Более глубокое руководство, описывающее все процессы работы с qt и python.
</div>


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
'''Pivy''' - Как взаимодействовать с в 3D сценой FreeCADа
'''Pivy''' - Как взаимодействовать с в 3D сценой FreeCADа
* [http://pivy.coin3d.org/documentation/pycon Учебник по основам Pivy] : Очень простой учебник с официального сайта Pivy
* [http://pivy.coin3d.org/documentation/pycon Учебник по основам Pivy] : Очень простой учебник с официального сайта Pivy
* [http://www.google.com.br/url?sa=U&start=3&q=http://studierstube.icg.tu-graz.ac.at/doc/pdf/PivyStudierstubeTutorial.pdf&ei=XyC1Sc2wOeCKmQem_eHnBQ&usg=AFQjCNEYhb-0DcUc6OxFVijAe1epBb-4aA Представление Pivy в studiersturbe] : Документ, на самом деле не учебник, но он прекрасно иллюстрирует как работает Pivy
* [http://www.google.com.br/url?sa=U&start=3&q=http://studierstube.icg.tu-graz.ac.at/doc/pdf/PivyStudierstubeTutorial.pdf&ei=XyC1Sc2wOeCKmQem_eHnBQ&usg=AFQjCNEYhb-0DcUc6OxFVijAe1epBb-4aA Представление Pivy в studiersturbe]: Документ, на самом деле не учебник, но прекрасно иллюстрирует как работает Pivy
</div>
</div>


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


<div class="mw-translate-fuzzy">
На [[FreeCAD Community Portal|портале Сообщества]], вы можете найти другие основанные на FreeCAD проекты запущенные сообществом пользователей FreeCAD. Если вы начинаете новый проект FreeCAD, убедитесь что его нет в списке! У нас также есть страница, с описанием вещей, которые вы могли бы сделать, если хотите [[Help FreeCAD/ru|Помочь FreeCAD]].
На [[FreeCAD Community Portal|портале Сообщества]], вы можете найти другие основанные на FreeCAD проекты запущенные сообществом пользователей FreeCAD. Если вы начинаете новый проект FreeCAD, убедитесь что его нет в списке! У нас также есть страница, с описанием вещей, которые вы могли бы сделать, если хотите [[Help FreeCAD/ru|Помочь FreeCAD]].
</div>


* [[Scientific_literature|Scientific literature]]: articles that reference or use the FreeCAD system in different ways.
{{Userdocnavi}}

<div class="mw-translate-fuzzy">
[[Category:Hubs/ru]]
[[Category:Poweruser Documentation/ru]]
</div>


{{Powerdocnavi{{#translation:}}}}
[[Category:Poweruser Documentation]]
[[Category:Hubs{{#translation:}}]]

Revision as of 17:05, 11 October 2020



Это место, куда можно прийти, если вы опытный пользователь и хотите узнать больше о настройке и расширении 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

PyQt - Как создавать и управлять 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.