FreeCAD Logo FreeCAD 1.0
  • Английский Африкаанс Арабский Белорусский Каталанский Чешский Немецкий Греческий Испанский Испанский Баскский Финский Филиппинский Французский Галисийский Хорватский Венгерский Индонезийский Итальянский Японский Кабильский Корейский Литовский Нидерландский Норвежская букмол Польский Португальский Португальский Румынский Русский Словацкий Словенский Сербский Шведский Турецкий Украинский Валенсианский Вьетнамский Китайский Китайский
  • Возможности
  • Скачать
  • Блог
  • Документация
    Индекс документации Приступая к работе Пользовательская документация Руководство по FreeCAD Документация верстаков Документация по кодированию на Python Документация по коду C++ Уроки Часто задаваемые вопросы Политика конфиденциальности О программе FreeCAD
  • Внести вклад
    Как помочь Sponsor Сообщить об ошибке Сделать запрос Задачи и финансирование Руководство по участию в разработке Руководство для разработчиков Переводы
  • Сообщество
    Кодекс поведения Форум The FPA GitHub GitLab Codeberg Mastodon Matrix IRC IRC via Webchat Gitter Discord Reddit Twitter Facebook LinkedIn Календарь
  • ♥ Donate

Donate

$
Информация о SEPA
Пожалуйста, настройте банковский перевод SEPA:
Beneficiary: The FreeCAD project association
IBAN: BE04 0019 2896 4531
BIC/SWIFT: GEBABEBBXXX
Банковское агентство: BNP Paribas Fortis
Адрес: Rue de la Station 64, 1360 Perwez, Belgium

While Stripe doesn't support monthly donations, you can still become a sponsor! Simply make a one-time donation equivalent to 12 months of support, and you'll gain access to the corresponding sponsoring tier. It's an easy and flexible way to contribute.

If you are not sure or not able to commit to a regular donation, but still want to help the project, you can do a one-time donation, of any amount.

Choose freely the amount you wish to donate one time only.

You can support FreeCAD by sponsoring it as an individual or organization through various platforms. Sponsorship provides a steady income for developers, allowing the FPA to plan ahead and enabling greater investment in FreeCAD. To encourage sponsorship, we offer different tiers, and unless you choose to remain anonymous, your name or company logo will be featured on our website accordingly.

from 1 USD / 1 EUR per month. You will not have your name displayed here, but you will have helped the project a lot anyway. Together, normal sponsors maintain the project on its feet as much as the bigger sponsors.

from 25 USD / 25 EUR per month. Your name or company name is displayed on this page.

from 100 USD / 100 EUR per month. Your name or company name is displayed on this page, with a link to your website, and a one-line description text.

from 200 USD / 200 EUR per month. Your name or company name and logo displayed on this page, with a link to your website and a custom description text. Companies that have helped FreeCAD early on also appear under Gold sponsors.

Instead of donating each month, you might find it more comfortable to make a one-time donation that, when divided by twelve, would give you right to enter a sponsoring tier. Don't hesitate to do so!

Choose freely the amount you wish to donate each month.

Please inform your forum name or twitter handle as a notein your transfer, or reach to us, so we can give you proper credits!

Создание визуализаций (рендеринга)
Создание и манипуляция геометрией
Руководство: Начало
  • Введение
  • Открываем для себя FreeCAD
    • Что такое FreeCAD?
    • Установка
      • Установка в Windows
      • Установка в Linux
      • Установка в Mac OS
      • Деинсталляция
      • Установка базовых параметров
      • Установка дополнительного содержимого
    • Интерфейс FreeCAD
      • Верстаки
      • Интерфейс
      • Настройка интерфейса
    • Навигация в окне 3D вида
      • Несколько слов о трёхмерном пространстве
      • Окно трёхмерного вида FreeCAD
      • Выбор объектов
    • Документ FreeCAD
    • Параметрические объекты
    • Импорт и экспорт в другие типы файлов
  • Работа с FreeCAD
    • Первый взгляд на все верстаки
    • Традиционное моделирование методом CSG (КБГ)
    • Традиционное двумерное черчение
    • Моделирование для проектирования продукта
    • Подготовка для 3D печати
      • Экспорт в слайсеры
      • Преобразование объектов в сетки
      • Использование Slic3r
      • Использование плагина Cura
      • Генерация G-кода
    • Создание двумерных чертежей
    • Моделирование BIM
    • Использование электронных таблиц
      • Чтение свойств
      • Запись свойств
    • Создание анализа методом конечных элементов
    • Создание визуализаций (рендеринга)
  • Написание скриптов на Python
    • Простое введение
      • Написание кода на Python
      • Манипуляция объектами FreeCAD
      • Векторы и места размещения
    • Создание и манипуляция геометрией
    • Создание параметрических объектов
    • Создание инструментов интерфейса
  • Сообщество

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

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

Кроме того, широкое распространение Python в других приложениях, таких как Blender для 3D-моделирования, Inkscape для векторной графики и GRASS GIS для геопространственного анализа, делает его необходимым навыком для тех, кто хочет расширить свои возможности по написанию скриптов (сценариев). Освоение Python в FreeCAD не только расширит ваши возможности по созданию пользовательских инструментов и макросов, но и позволит получить навыки, которые можно применять в различных программных платформах.

В FreeCAD скрипты Python позволяют тебе:

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

Используя Python, пользователи FreeCAD могут раскрыть весь потенциал программы, превратив её в мощный и гибкий инструмент, отвечающий их уникальным потребностям.

FreeCAD включает в себя расширенную консоль Python, доступную через Вид → Панели → Python Консоль. Этот инструмент позволяет пользователям выполнять операции, выходящие за рамки графического интерфейса, такие как доступ к расширенным функциям, устранение ошибок геометрии и автоматизация задач. Она также регистрирует команды Python для действий в графическом интерфейсе, если включена опция Показывать команды сценария в консоли Python (Правка → Параметры → Python → Macro). Держа консоль открытой, вы можете наблюдать, как код Python разворачивается в процессе работы, предлагая интуитивно понятный способ изучения языка в процессе знакомства с возможностями FreeCAD. Наконец, во FreeCAD есть система макросов, которая позволяет записывать действия для последующего воспроизведения. Эта система также использует консоль Python, просто записывая всё, что в ней делается.


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

Написание кода на Python

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

Если вы впервые используете Python, прочтите это краткое введение в программирование на Python, прежде чем двигаться дальше, оно разъяснит основные понятия Python.

Манипуляция объектами FreeCAD

Начнём с создания нового пустого документа:

doc = FreeCAD.newDocument()

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

Набрав FreeCAD.newDocument(), ты создашь новый, пустой документ во FreeCAD, как и при нажатии кнопки Новый документ на панели инструментов. Когда ты выполняешь команду doc = FreeCAD.newDocument(), новый объект документа присваивается переменной doc, что позволяет манипулировать им программно. Используя doc, ты можешь добавлять объекты, изменять свойства или же сохранять документ.

В Python точка (.) используется для обозначения того, что один элемент содержится внутри другого. Например, newDocument - это функция внутри модуля FreeCAD, поэтому мы пишем FreeCAD.newDocument. Появившееся окно автозаполнения показывает всё, что доступно в модуле FreeCAD. Если бы вы набрали точку после newDocument (без добавления круглых скобок), то отобразилось бы всё, что относится к функции newDocument. Это иллюстрирует, как Python организует объекты и доступ к ним и их компонентам. Важно отметить, что круглые скобки обязательны при вызове функции Python, так как они указывают на выполнение функции.

Теперь вернёмся назад в документ. Посмотрим, что мы можем с ним сделать. Введи следующее и изучи доступные варианты:

doc.

В FreeCAD соглашения об именовании команд Python помогут вам понять их назначение:

  • Имена, начинающиеся с заглавной буквы, обычно являются атрибутами, которые хранят значения или данные, например, свойства объекта.
  • Имена, начинающиеся со строчной буквы, обычно представляют собой функции (также называемые методами), которые выполняют действия или операции, такие как создание или изменение объектов.
  • Имена, начинающиеся с символа подчёркивания (_), обычно предназначены для внутреннего использования внутри модуля и обычно могут быть проигнорированы.

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

box = doc.addObject("Part::Box", "myBox")

Команда box = doc.addObject("Part::Box", "myBox") добавляет в документ новый объект 3D-куб. Вот простое объяснение:

  • „“'doc.addObject'„“: Это указывает FreeCAD на добавление нового объекта в документ.
  • „“'Part::Box'„“: Это указывает тип создаваемого объекта, в данном случае 3D-куб.
  • „“'myBox'„“: присваивает имя новому объекту, что облегчает его идентификацию и последующее использование.

В результате этой команды в активном документе появляется бокс, а переменная box сохраняет ссылку на него, чтобы вы могли изменять его или взаимодействовать с ним позже. Наш куб добавлен в дерево проекта но в 3D-виде пока ничего не происходит, потому что при работе из Python документ никогда не пересчитывается автоматически. Мы должны делать это вручную, когда это необходимо:

doc.recompute()

Теперь наша куб появился в 3D-виде. Многие кнопки панели инструментов, добавляющие объекты в FreeCAD, на самом деле делают две вещи: добавляют объект и пересчитывают. Попробуйте теперь добавить сферу с помощью соответствующей кнопки в верстаке Part - Деталь, и вы увидите, как две строки кода Python выполняются одна за другой.

You can get a list of all possible object types like Part::Box:

doc.supportedTypes()

Теперь давай изучим содержимое нашего куба:

box.

Ты сразу же увидишь несколько очень интересных вещей, таких как:

box.Height

Это выведет текущую высоту нашего куба. Теперь давай попробуем изменить её:

box.Height = 5

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

box.Length

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

Попробуй выполнить следующий пример, чтобы получить доступ к цвету линии нашего куба:

box.ViewObject.LineColor

Вектора и Размещение

Векторы - это фундаментальное понятие в любом 3D-приложении. Вектор - это список из трёх чисел (x, y и z), которые описывают точку, положение или направление в 3D-пространстве. Векторы имеют решающее значение для определения геометрии, трансформаций и взаимодействий в 3D-среде. Они служат строительными блоками для таких операций, как перемещение, вращение и масштабирование.

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

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

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

myvec = FreeCAD.Vector(2, 0, 0)
print(myvec)
print(myvec.x)
print(myvec.y)
othervec = FreeCAD.Vector(0, 3, 0)
sumvec = myvec.add(othervec)

Вот краткое описание вышеуказанных команд:

  • myvec = FreeCAD.Vector(2,0,0): Создаёт вектор myvec с X = 2, Y = 0, Z = 0.
  • print(myvec): Выводит вектор myvec с его компонентами (X, Y, Z).
  • print(myvec.x): Выводит X-компоненту вектора myvec.
  • print(myvec.y): Выводит Y-компоненту myvec.
  • othervec = FreeCAD.Vector(0,3,0): Создаёт второй вектор othervec с X = 0, Y = 3, Z = 0.
  • sumvec = myvec.add(othervec): Складывает myvec и othervec для создания нового вектора sumvec, содержащего сумму их компонентов.

Другой общей характеристикой объектов FreeCAD является их Placement - Размещение'. Как мы видели в предыдущих главах, каждый объект имеет свойство Placement - Размещение, которое содержит позицию (Base - База) и ориентацию (Rotation - Поворот) объекта. Этими свойствами легко манипулировать из Python, например, чтобы переместить наш объект:

print(box.Placement)
print(box.Placement.Base)
box.Placement.Base = sumvec
otherpla = FreeCAD.Placement()
otherpla.Base = FreeCAD.Vector(5, 5, 0)
box.Placement = otherpla

Вот краткое описание вышеперечисленных команд:

  • print(box.Placement): Выводит размещение куба, которое включает его положение, поворот и ориентацию в 3D-пространстве.
  • print(box.Placement.Base): Выводит положение (Base - Базы) куба, которое представляет собой вектор, отображающий его местоположение в 3D-пространстве.
  • box.Placement.Base = sumvec: Устанавливает базовую позицию (местоположение) куба на вектор sumvec, эффективно перемещая бокс в эту новую позицию.
  • otherpla = FreeCAD.Placement(): Создаёт новый объект размещения с именем otherpla.
  • otherpla.Base = FreeCAD.Vector(5,5,0): Устанавливает базовую позицию otherpla в вектор с координатами (5, 5, 0).
  • box.Placement = otherpla: Применяет otherpla к кубу, обновляя его размещение в новой позиции и ориентации, определенной otherpla.

Читать далее

  • Python
  • Макросы
  • Введение в Python
  • Руководство по скриптам Python
  • Центр опытных пользователей


Создание визуализаций (рендеринга)
Создание и манипуляция геометрией
Руководство: Начало

Эта страница получена от https://wiki.freecad.org/Manual:A_gentle_introduction

Свяжитесь с нами!
Forum GitHub Mastodon Matrix IRC Gitter.im Discord Reddit Twitter Facebook LinkedIn

©Команда FreeCAD. Авторы изображений (сверху вниз): ppemawm, r-frank, epileftric, regis, regis, rider_mortagnais, bejant.

Этот проект поддерживается: , KiCad Services Corp. и другие спонсоры

GitHubУлучшить эту страницу на GitHub