freecad обучение на русском
Основы работы в 3D редакторе FreeCAD. Часть 1
Пространства имён
Действия на странице
Основы работы в 3D редакторе FreeCAD. Часть 1
В этом сообщении речь пойдёт о простом, надёжном, бесплатном 3D редакторе, используемом нами для моделирования деталей роботов – FreeCAD. Возможно, рассказ может показаться излишне подробным, но я это делаю намеренно, чтобы эту статью можно было использовать в качестве инструкции для тех, кто не является «уверенным пользователем».
Для начала установим FreeCAD. Дистрибутив программы для Windows можно скачать здесь. Лучше устанавливать стабильную версию. Счастливым обладателям Linux рекомендую установить FreeCAD из репозиториев. Запустим редактор, настроим его для работы. Сначала выберем рабочий стол: Вид-Верстак-Part.
Создадим новый файл, слева увидим окна дерева документа, просмотра свойств и комбо панели. Закроем, кликнув мышкой в правом верхнем углу, окна дерева документа и просмотра свойств, оставив лишь комбо панель. Далее нажимаем Файл-Сохранить как, сохраняем проект под именем «Тест». Рабочий стол приготовлен к работе:
Теперь рассмотрим инструменты, которыми будем пользоваться. Они располагаются в верхней части окна.
Первая группа инструментов — стандартные виды
С их помощью мы сможем переключаться между видами и проекциями.
Слева-направо: Аксонометрический вид, Вид спереди, вид сверху и так далее. Переключаться между стандартными видами можно также клавишами Numpad: 0 — аксонометрия, 1 — вид спереди, 2 — вид сверху и т. д.
Вторая группа инструментов — панель основных фигур (примитивов)
Как видно, здесь представлены объемные фигуры: Куб, Цилиндр, Шар, Конус, Тор, а также кнопка создания примитивов. С помощью этих инструментов можно создать соответствующие объекты. Нажмем на кнопку «цилиндр».
На рабочем поле появился цилиндр, а в окне «модель» слева, появилось дерево, вверху название модели, в состав которой входит цилиндр. Потренируемся переключать виды модели, сверху, спереди, вернем аксонометрический вид. Теперь рассмотрим, как осуществляется навигация с помощью мыши. Картинка из инструкции с официального сайта [1] очень хорошо иллюстрирует эти возможности.
Единственное, на что хотелось бы обратить внимание: вращение, сначала нажать среднюю кнопку мыши (СКМ), не отпуская ее нажать левую, удерживая обе кнопки, вращать объект, двигая мышью. Потренируемся выбирать объект, вращать, перемещать, изменять масштаб. Чтобы вернуть объект к стандартному виду, нажмем кнопку «Аксонометрический вид». Нажмем в этой же группе инструментов кнопку «Создание параметризованных геометрических примитивов». Как видите, можно создавать еще несколько разных объектов, выберем из раскрывающегося списка призму. Нажмем кнопки «Создать» и «Закрыть».
Как мы видим, внутри цилиндра появилась призма. Теперь займемся изменением параметров объектов. В верхнем окне комбо панели выделим левой кнопкой мыши (ЛКМ) цилиндр, в окне внизу выберем вкладку данные.
Теперь в окне данных кликнем ЛКМ на значение параметра Radius и наберем на клавиатуре значение радиуса цилиндра 4,5mm. Кликнем ЛКМ на значение параметра Height (высота) и введем значение 5,5. Как видим, размеры цилиндра на рабочем поле изменились.
Теперь выделим ЛКМ в верхней части комбо панели призму. Важно: необходимо не забывать выделять в этом окне объект, с которым предполагается работать, потому что все параметры, размеры, местоположение все будет меняться в окне данных для выбранного объекта. Для призмы изменим сначала количество граней. Для этого кликнем ЛКМ на значение параметра Polygon и введем значение 5. Далее изменим положение призмы. Для этого в нижней части панели кликнем на значение Placement и нажмем на появившуюся с правой стороны окошка маленькую кнопку.
И, наконец, рассмотрим третью и последнюю группу инструментов, из тех, которыми мы будем пользоваться — группу логических операций с объектами.
Теперь отменим последнюю операцию, нажав Ctrl-Z. Объект исчез с экрана! Фигуры Призма и Цилиндр появились в комбо-панели, но надписи неактивны, серого цвета. Просто они стали невидимыми. Чтобы вернуть видимость объекту, нужно выделить фигуру в комбо-панели и нажать «пробел». Поступить так с обоими фигурами. Чтобы сделать объект невидимым, нужно действовать так же — выделить и нажать «пробел». Теперь, когда фигуры стали вновь видимыми, применим операцию «вычитание». Для этого сначала выделим в комбо панели фигуру из которой будем вычитать — Цилиндр, затем, зажав Ctrl, выделим фигуру, которую будем вычитать — призму, нажмем на кнопку вычитания («выполнить обрезку двух фигур»).
Нажмем на кнопки «Применить» и «Закрыть». Получился объект Cut, представляющий собой призму, из которой вырезана середина. Теперь попробуем удаление фигур. Кликнем ПКМ на объект Cut, выберем «удалить». Объект Cut исчез, появились вновь призма и пирамида. Удалим и их, сохраним проект и закроем программу.
Таким образом, в в первой части были рассмотрены некоторые инструменты, которые потребуются для создания деталей робота. Во второй части статьи будет рассмотрено пошаговое создание некоторых деталей для конкретного робота, который описан в статье Китайский робот и ScratchDuino 2.0.
Приступая к работе
Содержание
Введение
FreeCAD находится в стадии разработки c 2002 года, и предлагает большой список возможностей. Возможностей пока маловато, но он достаточно мощен для хобби или малых мастерских. Имеется быстрорастущее сообщество увлеченных пользователей, участвующих в форуме FreeCAD, и вы можете найти здесь множество примеров качественных проектов, разработанных с использованием FreeCAD. Смотрите так же использование FreeCAD в производстве.
Как и все проекты со свободным кодом, проект FreeCAD зависит от своего сообщества в своём росте, усилении возможностей и исправлении ошибок. Не забывайте об этом, используя FreeCAD, если он вам нравится, то вы можете сделать пожертвование и помочь FreeCAD разными способами, такими как написание документации и создании переводов.
Установка
Чтобы приступить к работе скачайте и установите FreeCAD. Информацию о текущей версии и последних обновлениях можно получить на странице загрузки. Инструкции по установке под определенные операционные системы изложены на следующих страницах: (Windows, Linux, Mac). Так же имеются готовые пакеты установки для Windows (.msi), Ubuntu и Debian (.deb), openSUSE (.rpm) и Mac OSX. FreeCAD доступен в менеджерах пакетов множества других дистрибутивов Linux. Существует исполняемый файл формата AppImage, который пригоден для запуска на большинстве современных 64-битных Linux систем. FreeCAD является программным обеспечением с открытым исходным кодом, что дает возможность, любому пользователю скачать исходный код и скомпилировать его самостоятельно.
Обзор интерфейса
Внешний вид интерфейса FreeCAD
Более подробное описание находится на странице интерфейс.
Основная концепция интерфейса FreeCAD в разделении её на верстаки. Верстаки представляют собой набор инструментов, приспособленных для отдельной задачи, такой как работа с сетками, или черчение двумерных объектов, или эскизов с направляющими. Текущий верстак можно переключить с помощью селектора верстаков. Есть возможность настроить инструменты каждого верстака, добавить их из другого верстака или даже создать самим, которые мы называем макросы. Широко используются в качестве стартовых точек верстаки PartDesign и Part.
При первом старте Вам будет показан центр запуска FreeCAD. Вот так он выглядит в версии 0.18:
Стартовая страница позволяет быстро переключиться на один из наиболее часто используемых верстаков, открыть один из последних файлов, или посмотреть последние новости из мира FreeCAD. Рабочий стол по умолчанию можно изменить в настройках.
Навигация в трехмерном пространстве
В FreeCAD есть несколько режимов навигации, которые меняют способ использования мыши для взаимодействия с объектами в трёхмерном окне и сам вид. Один из них сделан под тачпады, где средняя кнопка не используется. Нижеследующая таблица показывает режим по умолчанию, называемый CAD’ (Можно быстро сменить текущий режим навигации правым кликом на пустом месте трёхмерного вида):
| Выбор | Сдвиг | Масштаб | Вращать Исходный метод | Вращать Альтернативный метод |
|---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
| Нажмите левую кнопку мыши над объектом, который вы хотите выбрать. |
Нажатием Ctrl можно выбрать несколько объектов.
Кликая средней кнопкой вид центрируется по положению курсора.
Положение курсора во время нажатия средней кнопки мыши определяет центр вращения. Вращение работает как кручение шара вокруг своего центра. Если кнопки отпущены до остановки кнопки мыши, вид продолжает крутиться (если так настроено).
Двойной клик средней кнопкой мыши устанавливает новый центр вращения.
При этом методе средняя кнопка мыши может быть отпущена после того как правая кнопка осталась нажатой.
Пользователи, использующие мышь правой рукой могут счесть этот метод проще исходного.
Первые шаги в FreeCAD
FreeCAD ориентирован на создание высокоточных трёхмерных моделей, сохранение четкого контроля над этими моделями (сохранение возможности вернуться назад по истории модели и изменить параметры), и при необходимости изготовить эти модели (через трёхзмерную печать, станками с ЧПУ или на заводе). Поэтому он отличается от некоторых других трёхмерных приложений, сделанных для других целей, таких как создание анимации или игр. Его кривая обучения может быть сложной для освоения, особенно если это ваш первый контакт с 3D-моделированием. Если Вы застряли на каком-то месте, не забудьте, что дружественное сообщество пользователей на форуме FreeCAD способно быстро подсказать Вам решение.
Верстак, с которого Вы начнёте использование FreeCAD, зависит от типа работы, которую Вам надо выполнить: если Вам нужно работать над механической моделью, или вообще над любым небольшим объектом, Вам возможно подойдёт верстак PartDesign. Если Вы работаете на плоскости, то переключитесь на верстак Draft, или верстак Sketcher, который позволяет работу с ограничениями. Если Вам требуется разработка здания по BIM, переключитесь на Arch_Workbench. А если Вы привыкли к OpenSCAD, попробуйте верстак OpenSCAD. Также доступно множество внешних верстаков, разработанных сообществом.
Верстак можно переключить в любой момент, а так же настроить ваш верстак и добавить инструменты с других верстаков.
Работа с верстаками PartDesign и Sketcher
Верстак PartDesign спроектирован для создания сложных объектов, начиная с простых форм и добавляя и удаляя элементы (так называемые «features»), пока Вы не получите итоговый объект. Все элементы, которые Вы добавите во время моделирования, сохраняются в отдельном виде, называемом древом проекта, который так же содержит другие объекты вашего документа. Объект PartDesign можно понимать как последовательность операций, применяемых к результатам предыдущих, создавая одну большую цепочку. В древе проекта виден финальный объект, но Вы можете раскрыть его и восстановить все предшествующие стадии и изменить любые их параметры, которые автоматических обновят финальный объект.
Верстак PartDesign широко использует другой верстак, Sketcher. Он позволяет рисовать плоские эскизы, которые определяются установкой ограничений (Constraints) к двумерной форме. Например, Вы можете нарисовать прямоугольник и установить размер стороны применением ограничений к одной из сторон. Размеры этой стороны теперь могут быть изменены лишь при изменении ограничений.
Эти двумерные формы, созданные в верстаке эскизов, широко используются в верстаке PartDesign, например, для создания трёхмерных объёмов или черчения полей на гранях вашего объекта, которые затем будут выдолблены из вашего объёма. Вот типичный рабочий процесс PartDesign:
Что создаст объект вроде этого:
В любой момент Вы можете выделить оригинальный эскиз и изменить его или или изменить параметр выдавливания операции pad или pocket, что изменит итоговый проект.
Работа с верстаками Draft и Arch
Верстаки Draft и Arch действуют немного по-разному, хотя они следуют общим правилам для FreeCAD. Если коротко, Sketcher и PartDesign созданы в первую очередь для проектирования единых деталей, а Draft и Arch для работы с несколькими простыми объектами.
Верстак Draft предоставляет двумерные инструменты вроде тех, что можно найти в традиционных двумерных САПР вроде AutoCAD. Тем не менее двумерное черчение находится вне задач FreeCAD, и не ожидайте найти здесь полное множество инструментов, которые предлагают эти специализированные инструменты. Большинство инструментов верстака Draft работают не только на плоскости, но и в объёме, и получают пользу от специальных вспомогательных систем вроде выбора плоскости и привязки к объектам.
Верстак Arch добавляет FreeCAD инструмент BIM, позволяя создавать архитектурные модели через параметрические объекты. Верстак Arch зависит от других модулей, таких как Draft и Sketcher. Все инструменты Draft так же имеются в верстаке Arch, и большинство инструментов Arch используют вспомогательные системы Draft.
Типичный рабочий процесс с верстаками Arch и Draft может быть таким:
В результате получится следующее:
Дополнения, макросы и сторонние верстаки
Freecad, как программа с открытыми исходниками, даёт возможность улучшать свои верстаки дополнениями.
Принцип дополнений основан на разработке дополнений верстаков. Любой пользователь может разработать функцию, которая, по его или её мнению, отсутствует для нужд его/её, или даже сообщества. На форуме пользователь может запросить оценку, помощь форума. Он может поделиться, или нет, объектом его разработки, в соответствии с установленным им копирайтом. Это его выбор. Для разработки пользователю доступны функции для скриптов.
Есть два типа расширений:
Программирование
И в заключение, один из самых мощных свойств FreeCAD это скриптовое окружение. Из встроенной консоли python (или из любого другого внешнего скрипта python) можно получить доступ почти ко всем частям FreeCAD, создание и изменение геометрии, изменение отображения объектов на экране, а также доступ и изменение интерфейса. Скрипты могут быть использованы в макросах, с помощью которых легко создавать свои команды.
«САПР для всех, даром, и пусть никто не уйдет…» или первые шаги в программировании FreeCAD на Python
Возможно, вам уже ранее попадались мои заметки по первым шагам в программировании САПР на примере NanoCAD.
Надо отметить, что для человека не умеющего программировать и знающего САПР на уровне «электронного кульмана» это было удивительное приключение. Однако, NanoCAD это все же в первую очередь коммерческий продукт. Его бесплатная версия не обновлялась, уже около шести лет и порядком устарела в плане возможностей для разработки.
Итак, по горячим следам пишу для вас материал, всего за один день я узнал, как подружить эту САПР с Anaconda, написал на Python простенький скрипт, который рисует квадратик с текстом и протестировал его на работоспособность в Windows и Linux. О чем я собственно готов вам по шагам рассказать и показать, чтобы вы тоже могли это сделать.
Хотите поближе познакомиться с очаровательной парочкой Python и FreeCAD? Тогда милости прошу под кат.
Содержание:
Часть I: Введение
Как ни странно на «Хабре» совсем немного публикаций посвященных FreeCAD, хорошая статья вышла у Eddy_Em «Знакомьтесь: FreeCAD», и еще несколько работ, в которых герой нашей статьи упоминается вскользь.
Для начала буквально два слова о программе. Я не буду дублировать информацию с официального сайта, а просто широкими мазками опишу почему остановил свое внимание на этой САПР.
Итак, FreeCAD это система автоматизированного проектирования с открытым исходным кодом, заточенная в первую очередь на трехмерное параметрическое моделирование. На момент написания статьи последняя версия программы 0.18.3. Пусть вас не смущает, что значение номера релиза далеко от единицы. FreeCAD долго и активно разрабатывается и на текущий момент вполне функционален. Более того как я понимаю он уже давно, имеет определенную популярность у людей занимающихся 3D моделированием и печатью, особенно у идейных самоделкиных, интересующихся open source / open hardware и всяческим DIY.
Но если вдруг вы совсем не разбираетесь в трехмерном моделировании, то это не повод обойти FreeCAD стороной. Функционал САПР разбит по своеобразным модулям — верстакам (Workbench) среди которых есть и привычное 2D черчение, в том числе верстак для оформления рамок листов и даже верстак для реализация концепции BIM.
На самом деле, возможностей у программы «вагон и маленькая тележка», но сегодня мы попробуем сделать, что-нибудь совсем примитивное, только чтобы «разжечь аппетит».
Часть II: Стандартная установка и первая проба
FreeCAD доступен для всех трех распространенных операционных систем, но поскольку «Яблочной» техникой я обделен, то мы рассмотрим только варианты для Windows 10 и Linux Mint.
Самый простой способ начать программировать для FreeCAD это скачать дистрибутив и установить его стандартным для операционной системы путем. В таком случае мы получим в свое распоряжение предустановленный с программой интерпретатор Python (на момент написания статьи Python версии 3.6.6).
Но давайте сначала попробуем начертить, что-нибудь штатными средствами. Например, круг.
Обратите внимание на вывод консоли
FreeCAD ничего не прячет под капотом, все ключевые операции по отрисовке круга выведены в консоль. Можно хоть сейчас просто скопировать код и начертить второй круг, чуть правее.
Давайте попробуем ввести переменную и начертить еще круг, для чего скопируем вывод консоли и вставим его построчно внеся небольшую модификацию.
Как видите теперь круга стало два, причем, как и планировалось один правее на координату «х» базовой точки первого круга умноженную на 5.
Часть III: А теперь подружим FreeCad с «Анакондой»
Но возможности САПР не ограничиваются стандартным использование в качестве «кульмана». С помощью API, FreeCAD можно встроить в вашу собственную программу и использовать, как с графическим интерфейсом так и без, но этот вопрос мы рассмотрим как-нибудь в другой раз.
А пока, представим себе такую ситуацию, допустим вы увлекаетесь машинным обучением и анализом данных на Python и уже поставили себе дистрибутив Anaconda, тогда вы, наверное, сильно обрадуетесь узнав, что благодаря ребятам из conda-forge можно скомпоновать все возможности этого дистрибутива и FreeCAD.
По ссылке представлено руководство, как установить его в случае если вы используете mini-conda, а мы с вами установим его в полноценную «Анаконду» через её навигатор.
Итак, откроем Anaconda-Navigator, перейдём на вкладку Environments и создадим новое окружение, нажав на кнопку Create. Название окружению, можно дать любое, я назвал – «freecad». Выбираем нужную версию Python и создаём новое окружение.
Но этого еще недостаточно, необходимо добавить канал conda-forge, просто впечатайте в поле, которое появится после нажатия кнопки Add «conda-forge» и дайте системе обновить списки пакетов.
Почти готово теперь осталось установить сам FreeCAD
Нажимаем ЛКМ на названии пакета и выбираем какую версию хотим установить, как на картинке ниже (у меня правда уже установлен)
После томительного ожидания у вас будет полностью установлен дистрибутив FreeCad нужной версии останется его только запустить.
В самом простом случае без параметров запуска необходимо запустить консоль conda с нашим окружением, и запустить САПР одноимённой командой FreeCAD.
Откроется пустое окно FreeCAD в котором мы выберем верстак для двухмерного черчения.
Как видим, теперь версия Python совсем не та, что была при стандартной установке.
Создадим новый документ (Control+N) он нам пригодится для тестирования нашей мини библиотеки.
Часть IV: Пишем простенькую библиотеку
Библиотека наша будет примитивной. По сути, мы создадим команду, которая будет чертить прямоугольник, в который будет вписан произвольный текст, заданный пользователем.
Создаем файл (я свой назвал — «drawhabr.py») и пишем в него следующий код:
Или просто можете скопировать файл с GitHub
Код очень простой, но некоторые моменты думаю стоит пояснить.
Импортируем необходимые библиотеки, после чего создаем класс.
Поскольку я еще не научился обрабатывать ввод мышкой, координаты для объекта и текст мы будем вводить напрямую в консоль с клавиатуры. Это реализуется стандартными методами Python. Потом в конструкторе класса вызываем нашу функцию (метод), которая будет это все чертить.
Из особенностей FreeCAD в конструкторе класса можно выделить две команды:
Первая выбирает нам пространство активной рабочей области, а вторая, после установки объекта напишет нам сообщение в самом низу окна программы (на серой полоске, не путать с консолью Python)
Код метода тоже интуитивно понятен.Но все же поясню для надежности.
Необходимо на тот случай, если пользователь введет пустую строку. Без этого в текст будет вписано слово Label а прямоугольник будет иметь некорректную длину.
Определим координаты базовой точки дня нашей рамки, обрамляющей текст.
Напомню, что данные берутся из ввода в консоль.
Обратите внимание, что мы работаем с трехмерной координатой вида FreeCAD.Vector(x,y,z), но в данном примере координатой Z можем пренебречь. Другие параметры связанные с вращением рамки пока не трогаем.
создадим текст, командой Draft.makeText, передав ей текст, который ввели в консоль.
Координаты возьмем с небольшим смещением от базовой точки рамки.
По-хорошему надо было научиться обрабатывать рамку (границу) текста используя параметры API, после чего на основании нее рассчитывать ширину и высоту нашей обрамляющей рамки. Но поскольку я сам только-только познакомился с программой, то задачу решил рабоче-крестьянским методом. Мы зафиксируем высоту шрифта, назначим ему стиль моноширинного шрифта (Courier) и в зависимости от этого определим длину и ширину рамки которую будем чертит вокруг текста.
Осталось только подставить наши параметры в функции черчения прямоугольника
вот, собственно, и все.
Осталось только подключить нашу библиотеку. Для этого её можно просто скопировать в папку, в которой лежат остальные библиотеки Python для выбранного окружения.
Например, для Windows 10 путь может быть следующим (в значимости от места установки Anaconda):
Для Linux путь будет примерно таким:
Все осталось загрузить нашу библиотеку.
Для этого вначале введем в консоли название нашего модуля (без расширения файла)
А затем вызовем конструктор класса
Вот и все осталось вести, параметры функции и наслаждаться результатом.
На всякий случай вот скриншот подтверждающий, что в Linux тоже все работает.
Часть V: Заключение
Сегодня мы вместе сделали только маленький шаг на пути познания API FreeCAD.
Несмотря на то, что на мой взгляд, для двухмерного черчения и разработки проектов, FreeCAD не так привычен как AutoCAD (NanoCAD) или другие распространенные САПР, но зато программировать его намного проще.
Даже несмотря на некоторый недостаток документации и необходимость обновления некоторых статей с примерами в Wiki FreeCAD, все равно разобраться с его API и запустить первую программу оказалось вполне по силу неподготовленному человеку с минимальными знаниями в области написания кода на Python.
А учитывая, тот факт, что разработчики люди не жадные и при необходимости позволяют даже коммерческую разработку с помощью FreeCAD по лицензии LGPL да в сочетании со всей мощностью подключаемых библиотек Python (например, из того же дистрибутива Anaconda), разработка программ с использованием FreeCAD выглядит интересной задачей.
Если я пойму, что и вам эта тема интересна, то постараюсь сделать мини-цикл заметок по аналогии с Nanocad



















