Металл2024 Реклама
Метобр2024 Реклама

Копирование деталей механизмов с помощью моделирования в Blender

Bangybug
Идет загрузка
Загрузка
21.10.2015
22966
19
3D-моделирование

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

20
Традиционной областью применения Blender является 3д-графика и анимация. Однако, за счёт открытости кода, в Blender добавляются разные инструменты, в том числе для симуляции физических процессов, разработки игр, робототехники, 3д-печати и даже САПР. Как программиста, меня это всё интересует, поэтому часть своих задач я решаю в Blender, не оглядываясь на то, что точное моделирование удобнее делать в специализированных системах.

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

Писать маленькие статьи про Blender, как и про другие развитые пакеты моделирования, достаточно сложно. Это связано с тем, что у авторов формируется свой подход к моделированию. В каждой статье приходится акцентировать внимание на своём подходе. Если отсылать читателя за азами в свои предыдущие статьи, то читатель может запутаться.

Как подружиться с Blender

В современных версиях, Blender позволяет делать большинство операций с помощью одной только мыши, но истинный путь, как и прежде, лежит через сочетания клавиш, которые предстоит записать и запомнить. Записи могут сыграть очень важную роль, особенно если ваши подходы нерегулярны. Примечательно то, что в процессе изучения, вы будете идти по своему собственному маршруту, одних только видов моделирования в Blender я насчитал пять.

Очень советую иметь полноразмерную клавиатуру с NumPad. Если интерфейс у вашего Blender менялся, и вы испытываете трудности с этим, то ваши настройки всегда можно сбросить с помощью File / Load Factory Settings.

Постараюсь описать две своих задачи, которые я решил с помощью Blender. Но сначала немножко азов.
  • Модели, которые мы хотим получить, должны представлять из себя «сетку» из точек.
  • Три точки гарантированно лежат на одной плоскости и формируют грань (Face). Blender может «обозвать» гранью и четырёхугольник, и даже участок криволинейной поверхности. Но мы всё равно заставим Blender сделать треугольные грани.
  • Отрезки линий, соединяющих вершины грани (Vertices), называются рёбра (Edges).
  • Blender на разных этапах «жизни» 3д-объекта предоставляет разные виды моделирования. Часто, переходы между видами моделирования возможны только в одном порядке.
  • Всё начинается с параметрического моделирования, когда создаётся примитивный объект, например цилиндр, с параметрами «радиус» и «высота».
  • Параметрический объект превратится в сетку при переходе в режим редактирования сетки. Возможность изменять параметры пропадёт. Если сетка вас не удовлетворила, то иногда проще создать новый параметрический объект.
  • Редактирование сетки состоит из базовых операций, вроде перемещения, вращения, масштабирования, удаления, добавления, граней, рёбер, вершин. Обычно это «чёрная» работа, для которой также есть инструменты.
  • ПКМ, ЛКМ — правая и левая кнопки мыши.
  • 3d cursor – выглядит как пунктирный кружочек с перекрестием. Любой новый объект помещается на месте этого курсора. Сам курсор можно передвигать разными способами.
  • Сочетания клавиш имеют контекст, то есть, работают одним образом, или другим, в зависимости от места, где находится курсор мыши. Во всех случаях я навожу курсор мыши на рабочую область, а потом жму клавиши.
  • Нажать — это значит только нажать. Ввести — это значит ввести и потом нажать Enter. При вводе команд (например g x 5) не используем пробелы.

Кстати, я не люблю видео-уроки, предпочитаю просто структурированный текст. Использовался Blender версии 2.74 и 2.75. Пришло время освоиться с некоторыми действиями в Blender. В этом поможет куб, который уже находится на рабочей области.
  • Освоиться с обзором куба. Сначала в ход можно пустить мышь с зажатым колесом. Потом ещё дополнительно прижать Shift. А потом понажимать клавиши NumPad. Клавиша 7 включит вид сверху, а нажатая затем 5 включит либо ортогональную проекцию, либо перспективную. Нам нужна ортогональная, когда видна только верхняя грань куба (квадрат). Если NumPad у вас нет, то переключать виды можно с помощью меню View.
  • Освоиться с точным перемещением куба. Выделить его ПКМ, нажать g (от слова grab - схватить) и ввести x 3 (без пробелов). Увидим, что куб переместился на 3 единицы. Переместим его обратно, также нажав g, затем введя x -3.
  • Аналогично можно испытать вращение: нажать r (от слова rotate), затем ввести z 45.
  • И масштаб: s (от слова scale), затем x 0.5 (важно поставить именно точку, не запятую).
  • Также можно использовать клавиши g, s, r с мышью. После нажатия одной из этих клавиш, соответствующая операция начнёт выполняться при движении мыши. Выполнение прекратится после нажатия ЛКМ.
  • Эти же операции можно проделывать с мышью, задав ограничения. Например, последовательное нажатие g x ограничит перемещение объекта в направлении только оси x. Это очень удобно когда надо быстро накидать несколько объектов и разместить их. Если вы видите что зашли слишком далеко, можно нажать Esc и операция отменится. Если вы всё же совершили операцию, то её можно отменить, нажав Ctrl+Z.
  • Скопировать куб. Выделить его ПКМ, нажать Shift+D. Скорее всего ничего не увидите, но это только потому что новый куб имеет тот же размер и стоит на том же месте, что и старый. Не медля, отодвиньте его от старого. Если этого не сделать, то можно забыть о втором кубе, если не глядеть на дерево объектов:
    Копирование деталей механизмов с помощью моделирования в Blender
  • Имеется возможность наблюдать и изменять позицию, вращение, размеры или масштаб (на выбор) в одном окне. Для этого нужно выбрать объект, затем нажать клавишу N и найти вкладку Transform. С позицией (Location) и вращением (Rotate) всё просто, а вот scale (масштаб) и dimensions (размеры) взаимосвязаны. Если вы попробуете изменить одно, обязательно изменится и второе. Это не должно сбивать с толку, ведь Scale устанавливает процентное соотношение от первоначального размера. А в Dimensions указываются точные размеры, что вызывает пересчёт коэффициентов Scale, и наоборот.
    Копирование деталей механизмов с помощью моделирования в Blender
  • Выделить один из кубов ПКМ, затем перейти в режим редактирования сетки Edit Mode, нажав Tab, либо выбрав Edit Mode в выпадающем списке:
    Копирование деталей механизмов с помощью моделирования в Blender
    Рядом с выпадающим списком появятся кнопки, которые позволяют работать либо с гранями, либо с рёбрами, либо с отдельными вершинами:
    Копирование деталей механизмов с помощью моделирования в Blender
  • Попробуйте операции g,s,r во всех режимах редактирования сетки. Куб будет деформироваться. Например, вот что получится, если ПКМ-выделить одну из вершин и переместить её вверх по оси Z.
    Копирование деталей механизмов с помощью моделирования в Blender
  • Перейдите обратно в Object Mode, нажав Tab.
  • Удалите кубы. Сначала ПКМ, потом «x».



Теперь с уверенностью можно сказать, что первое знакомство состоялось.

Задача №1. Деталь для автомобиля.
Копирование деталей механизмов с помощью моделирования в Blender
Данная деталь присутствует в автомобиле VW, своими выступами зацепляет шторки печки и передаёт на них вращение колеса, с помощью которого регулируется открытие шторок.

Чтобы сделать модель, я постарался сфотографировать деталь со штатива, в максимальном разрешении, в режиме макросъёмки, максимально «прямо», с минимальными искажениями объектива. Иными словами, нужно было получить ортогональную проекцию. Искажения объективов могут быть убраны с помощью специального программного обеспечения, в моем случае они оказались несущественными, потому что распечатанная модель совпала с оригиналом.

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

Теперь более подробно:

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

2. В разделе Background images нажать Add Image, затем Open и выбрать файл с фотографией.
Копирование деталей механизмов с помощью моделирования в Blender
3. Перед тем как начать работать с кривыми, нужно установить для них более удобные цвета. Вообще это зависит от того, в какой гамме сделано фото. Мне понравился жёлтый цвет. Открыть File / User Preferences / 3d View / Wire и Wire Edit и выбрать цвет.
Копирование деталей механизмов с помощью моделирования в Blender
4. Добавьте кривую Безье. Это можно сделать на панели Add Primitive, либо через Menu Add / Curve / Bezier. Скорее всего, отрезок кривой будет расположен поодаль от фотографии. Используйте операцию перемещения (g) для позиционирования кривой.
Копирование деталей механизмов с помощью моделирования в Blender
5. Теперь нужно максимально точно обвести фотографию. Нужно перейти в режим редактирования кривой (Tab, или выбор Edit Mode из меню).
Копирование деталей механизмов с помощью моделирования в Blender
6. Пока это ещё не вся кривая, а только один сегмент. Каждый сегмент имеет 6 характерных точек, которые показаны выше. Те точки, которые соединены тонкими красными линиями, называются контрольными (Control Points).
Копирование деталей механизмов с помощью моделирования в Blender
7. Между этими точками расположены вершины кривой. Нужно стараться перемещать контрольные точки так, чтобы красная линия совпадала с касательной к детали. Сами вершины также нужно располагать на границе детали.

Вот что получится после настройки касательных:
Копирование деталей механизмов с помощью моделирования в Blender
Процесс достаточно интуитивный, но потребуется некоторое время, чтобы с ним разобраться. Первое распространение данные кривые получили в середине XX века, для разработки кузовов автомобилей Renault и Citroen.

Чтобы добавить новую точку, нужно нажать E. В конце должно получиться так:
Копирование деталей механизмов с помощью моделирования в Blender
8. При подходе к концу, нужно замкнуть кривую. На этом этапе Blender как-то малоинформативен, у меня получилось не с первого раза. Нужно пододвинуть конечную точку к начальной, даже чуть ближе чем на картинке. Потом нажать Alt+C, обе точки должны входить в область появившегося круга, затем ЛКМ.
Копирование деталей механизмов с помощью моделирования в Blender
9. Если нажать просто C, то кривая замкнётся без достраивания нового сегмента на месте пустоты. Это не позволит сделать объёмную модель.

10. После замыкания кривой, получится неприятный артефакт в виде узла, т.к. Blender не может настроить касательные. Чтобы лучше рассмотреть, можно переключаться между Edit Mode и Object Mode.
Копирование деталей механизмов с помощью моделирования в Blender
11. Исправлять артефакт нужно в Edit mode, двигая точки вблизи узла. Можно даже удалять вершины, с помощью x.

12. Пришло время установить систему единиц и вычислить коэффициент масштаба, который обеспечит соответствие размеров модели и реальной детали. Нужно выбрать метрическую систему.
Копирование деталей механизмов с помощью моделирования в Blender
Остаётся измерить один и тот же элемент детали в реальности и в Blender. Отношение этих размеров и будет являться коэффициентом масштаба. Для измерения в Blender можно временно создать какой-нибудь объект, например, окружность (circle). Поместить его поверх фотографии, а затем подобрать размер X и Y.
Копирование деталей механизмов с помощью моделирования в Blender
Копирование деталей механизмов с помощью моделирования в Blender
Получилось, что размером S0 = 73.5 (см) оценен элемент эскиза в Blender. Реальный размер этого элемента S2 = 3.53 (мм). Остаётся вычислить коэффициент масштаба:

S2 / S1 = 3.53*10^-3 / 73.5*10^-2 = 0.005



Этот коэффициент помещается в поле Scale (рядом с тем местом, где выбиралась система единиц). Для удобства, этот же коэффициент можно задать и для координатной сетки, для этого нужно открыть панель N, найти вкладку Display и поле Scale:
Копирование деталей механизмов с помощью моделирования в Blender
13. Теперь нужно вернуться к созданной кривой и сделать объёмную деталь. ПКМ-выделить кривую, и задать значение в поле Extrude в разделе параметров кривой.
Копирование деталей механизмов с помощью моделирования в Blender
Реальная высота детали равна 2.8мм, но так как объём наращивается в обе стороны, то нужно ввести 1.4mm, чтобы в сумме получилось 2.8 мм. Я об этом не знал, и при распечатке деталь оказалась высотой 5.6мм. Чтобы избежать таких неприятностей, желательно контролировать размеры объектов в поле Dimensions на вкладке Transform в панели View Properties (клавиша N).

14. Деталь уже почти готова. Если планируется возвращаться к редактированию кривой, лучше сохранить работу в отдельный файл и скопировать его куда-нибудь.

15. Перейти в Object mode, ПКМ-выделить деталь и нажать Alt+C. В выпадающем списке выбрать Mesh From Curve. Это уничтожит кривую и сделает невозможным её редактирование. Именно поэтому был дан предыдущий совет.

16. Сетка, созданная Blender'ом, получилась ужасной. Но работать с ней не планируется, поэтому она остаётся в изначальном виде, в каком и будет экспортирована в формат STL для печати.

17. Чтобы экспортировать деталь в STL, её обязательно нужно ПКМ-выделить. А затем из меню File выбрать Export и STL.
Копирование деталей механизмов с помощью моделирования в Blender
Коэффициент масштаба 0.005 берётся умноженным на 1000, чтобы единицы измерения в STL соответствовали миллиметрам. Полученное значение «5» устанавливается в поле Scale. Этот шаг нужен, чтобы программное обеспечение 3д-принтера могло корректно прочитать файл. По-договорённости, одна единица в STL должна быть равна миллиметру. Если это не так, то модель не может быть отображена. Например, Repetier Host не сможет отобразить модель из STL файла с метровым масштабом, и будет «прав». А Cura сможет, и окажется «более умной» в этом смысле.
Копирование деталей механизмов с помощью моделирования в Blender
Задача №2. Деталь от игрушки.
Копирование деталей механизмов с помощью моделирования в Blender
Эта деталь является полуосью, с одной стороны 14-зубая шестерня, а с другой шестигранное крепление колеса, сквозное отверстие с двумя диаметрами.

Модель делалась из нескольких составных объектов — цилиндров, а шестерня делалась по статье «Быстрое создание простых шестерёнок» http://3dtoday.ru/blogs/3d20/quick-creation-of-simple-gears-in-blender/ После того, как все части были готовы, я сохранил работу в отдельном файле, чтобы при необходимости вернуться к редактированию. В новом файле сделал объединение частей в одну модель с помощью логических операций.

Теперь более подробно:

1. Установить систему единиц на метрическую. Коэффициент масштаба выбрать 0.001, такой же коэффициент задать и для сетки. Если этого не сделать, то при вводе размеров везде придётся добавлять ”mm”, чтобы явно указать миллиметры. Кроме того, при добавлении новых объектов, их начальные размеры будут сразу метровыми, что неудобно.

2. Моделирование шестерни. Тут нужно прочитать статью и активировать в Blender два стандартных дополнения (add-on) – “LoopTools” и ”Extra Objects”. Эти дополнения устанавливаются из File / User Preferences / Add-ons. Для поиска дополнения удобно пользоваться строкой поиска (LoopTools вводится без пробела). Дополнения активируются с помощью отметки галочкой. После активации дополнений, нужно обязательно нажать на кнопку Save User Settings, иначе изменения не сохранятся и дополнения не активируются.

В моём случае не получилось замкнуть шестерню так как описано в статье, поэтому я использовал уже знакомый Loop Tools.

3. Добавить шестерню (меню Add / Mesh / Extra Objects / Gears / Gear). Для вызова меню можно использовать Shift+A, либо мышь.
Копирование деталей механизмов с помощью моделирования в Blender
Обратите внимание на список параметров. Возможность редактирования параметров потеряется, как только будет выбран другой объект. Поэтому, нужно сделать модель шестерни за один приём.

Для моего случая, параметры были такими: Addendum = Dedendum = (9.5 – 6.9) / 4 = 0.65 mm, Radius = 6.9 / 2 + Dedendum = 4.1 mm, Base = Radius – Dedendum – d2 /2 = 4.1 – 0.65 – 4.9 / 2 = 1 mm. Width = d4/2 = 4.45 mm. С параметром width (высота шестерни) дело обстоит так же как и в первой задаче, нужно вводить только половину нужной высоты. Схема основных параметров приведена на картинке:
Копирование деталей механизмов с помощью моделирования в Blender
4. Шестерня с нужными параметрами создана и выглядит так:
Копирование деталей механизмов с помощью моделирования в Blender
У неё нет внутренней стенки. Есть несколько способов её добавить. Можно использовать логическую операцию объединения с полым цилиндром, при условии что размеры полого цилиндра будут введены точно. Но лучше добавить стенку в режиме редактирования сетки, с помощью дополнения Loop Tools.

5. Перейти в ортогональную проекцию вида сверху. Перейти в режим редактирования сетки шестерни. Если все вершины окажутся выбранными, то нужно сбросить выбор, нажав A, либо выбрав одну вершину (близкую к отверстию).

Проследить чтобы кнопка ”Limit To visible” была отключена. Это нужно для того, чтобы можно было легче выбрать нужные точки.
Копирование деталей механизмов с помощью моделирования в Blender
Выбрать все точки окружности отверстия, как в верхней части, так и в нижней. С зажатыми ЛКМ и Ctrl нужно обвести окружность вокруг отверстия (не надо стараться обводить точно, лишь бы все точки попали в обводку).

6. На панели слева, выбрать вкладку Tools, найти пункт LoopTools и выбрать Bridge.
Копирование деталей механизмов с помощью моделирования в Blender
7. Если всё сделано правильно, то появится внутренняя стенка. Её можно увидеть, выйдя из режима ортогональной проекции.
Копирование деталей механизмов с помощью моделирования в Blender
8. Чтобы не мешала шестерня, её можно временно скрыть. В дереве объектов нужно нажать на «глаз» напротив шестерни:
Копирование деталей механизмов с помощью моделирования в Blender
9. Цилиндр с отверстием под ось проще всего сделать с помощью логического вычитания двух цилиндров. Добавьте внешний цилиндр с радиусом 6.9 / 2 = 3.45 mm, высотой 19 mm. Для этого, сначала добавьте объект «цилиндр» и сразу установите параметры:
Копирование деталей механизмов с помощью моделирования в Blender
Возможность редактирования параметров доступна только на этапе создания объектов, поэтому не откладывайте редактирование.

Сразу добавьте еще один цилиндр, с радиусом 3.05 / 2 = 1.5 mm. Высоту можно задать любую, большую чем высота внешнего цилиндра, например, 3 cm.
Копирование деталей механизмов с помощью моделирования в Blender
10. Теперь ПКМ-выберите внешний цилиндр и добавьте модификатор Boolean.
Копирование деталей механизмов с помощью моделирования в Blender
Далее, выберите Difference и выберите второй цилиндр через меню и нажмите Apply:
Копирование деталей механизмов с помощью моделирования в Blender
Теперь удалите внутренний цилиндр, так как он больше не нужен. У вас должно получиться отверстие во внешнем цилиндре.

11.Спрячьте цилиндр, чтобы было удобнее моделировать следующую деталь — шестигранник. Сам шестигранник делается так же из цилиндра. Для этого, при добавлении цилиндра, в списке его параметров, нужно указать Vertices = 6.

12. Отверстие в шестигранном цилиндре делается аналогично, с помощью вычитания другого цилиндра (который не должен быть шестигранным).

13. Теперь нужно объединить шестигранный цилиндр и полый цилиндр, который был сделан на шаге 10. Для этого нужно сначала разместить цилиндры один под другим, желательно с помощью ввода с клавиатуры, для точности. После чего использовать модификатор Boolean в режиме Union. Как только модификатор будет применён, нужно удалить объект, ставший лишним после объединения.

14. Аналогичным образом делается объединение детали шестерни в общую модель.

15. Для того чтобы распечатать такую деталь, пришлось добавить «чашечку» под шестерню. Она делается из конуса (Cone), с помощью уже знакомых методов.
Копирование деталей механизмов с помощью моделирования в Blender

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

20
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама