
Иногда в жизни хабра-индивидуума наступает момент, когда у него возникает непреодолимое желание написать статью. Вот он читает, как кто-то в чем-то разобрался или сделал что-то своими руками, и задумывается: «Я ведь тоже могу поделиться своим, заинтересовать, увлечь. Не потреблять же постоянно. Итак, выключаем режим стелс-хабра-читателя и подставляем свои уголковые отражатели зондирующим линейно-частотно модулируемым лучам добра.
Почему аэроглиссер? Я собрал несколько моделей самолетов из потолочки (потолочной плитки), и вроде с ними все хорошо, но именно мои недолговечны и с ними нужно выезжать по пробкам к ближайшему полю почти час (мы же законопослушные, в закрытых зонах не летаем). А тут рядом с домом есть озеро. Но по опыту пусков катера желательно, чтобы ниже ватерлинии не было ничего. Мое озеро не располагает к купанию, а водорослей на нем много. Плюс есть небольшая площадка для покатушек зимой по снегу (да и по замерзшему озеру). Поэтому было решено приземлить/приводнить один комплект электроники (кочующий от пенолета к пенолету) на аэроглиссер. Еще для новичка такая машина - хорошая практика, – живет в двух координатах и не разбивается, падая с третьей.
Следующим шагом было изучение того, что предлагает сеть. И вроде есть варианты от куска пенопласта с рулем до более-менее красивых моделей, но опять же целиком из потолочки. Хотелось чего-то посложнее и пожестче в плане конструкции. Тут то и всплыли из моего детства образы неких аэросаней. Видел я их в подборке «Моделист-конструктора» деда. Недолгие поиски привели к изделию А-3 КБ Туполева. Красивое такое, вроде как самолет, но не самолет, но с винтом и хвостами. Решено! Будем строить А-3.

Так как с лобзиком и временем у меня не сложилось, то применять будем современные технологии разработки и ЧПУ фрезер. Тут то и приходит на помощь свободное ПО – как основной инструмент проектирования выступает на арену Blender, и немножко на подхвате Inkscape. Может кто-то и скажет, что Blender это сложно, давайте тут развеивать этот миф.
Первым делом скачиваем эти две программы и устанавливаем. Blender я использую версию 3.0. При первом запуске появится окно начальных настроек, где можно выбрать роль основных кнопок по выделению, проигрыванию анимации, тему или нажать Load 2.9.0 Settings если вы старовер. Я использую этот режим.
Типичный старовер сейчас:

Далее быстро осваиваемся с управлением в 3D viewport: зажатое колесо – вращение сцены, колесо+shift – панорамирование. Пятерка на numpad – переключение с перспективной на ортогональную 3D проекцию. Выбор проекций видов: 7 – верх, 1 – фронт, 3 – право. Если вы новичок – заставляйте себя использовать хоткеи, потом значительно упрощает работу. Еще надо попробовать интересную особенность Blender – настраиваемый интерфейс. Если верхний правый угол 3D viewport (курсор становится крестом) потянуть влево, то появится новое окно 3D viewport. Схлопнуть его можно там-же, только тянуть вправо (курсор станет стрелкой).
Итак, почти все готово к началу моделирования. В центре сцены у нас уже есть куб, источник света и камера. И еще 3D курсор. Это место силы, где появляются объекты, относительно него можно выполнять операции выравнивания, копирования, перемещения.
Теперь ищем три проекции. Я нашел такой чертеж:

Вырезаем из файла три картинки с видами (я использовал «ножницы» Windows). В настройках сцены выбираем метрическую систему и миллиметры.

В качестве масштаба я отталкивался от диаметра того винта, который у меня есть. Его диаметр 180 мм. Тут надо сделать ремарку, что выбор материалов исходил из того, что у меня было в наличии. И скорее всего, моя винто-моторная группа и некоторые материалы не совсем оптимальны.
Теперь создадим габаритный бокс на основе размеров с чертежа и знания диаметра модельного винта. Для этого будем использовать уже существующий куб (не отправлять же его на блендер-кладбище дефолтных кубов).

Для ввода размеров предназначена панель Dimensions. Панель открывается (и закрывается) нажатием кнопки N. Далее нажатием Z переключаем режим отображения в «проволочный каркас» (wireframe). Тоже самое можно достичь пиктограммой самого левого шарика в верхнем правом углу. Все готово для загрузки первой опорной картинки – вид справа.
Нажимаем Shift+A и выбираем Reference. Картинка появится в том месте, где у вас был 3D курсор (если нужно поставить в центр – Shift+S-Cursor to world origin).
Далее подгоняем картинку под габаритный бокс.

Во вкладке Image окна Properties можно настроить размер и положение картинки относительно центра, отрегулировать её прозрачность. Немного об организации сцены. Очень удобно для этого использовать коллекции окна Outliner. Это напоминает слои. В настройках окна выбираем настройки запрета выделения и видимости (потом можно будет скрывать референсы). Референсы складываем в одну коллекцию. Повторяем действия для верхней и фронтальной проекции и получаем такую заготовку.

Теперь все готово к моделированию. Блокируем всю коллекцию референсов, габаритный бокс можно скрыть (выделить его и нажать H). Добавляем новый куб в центр сцены. Масштабируем, чтоб влезал в сцену (хоткей S). Нажимаем Tab (режим редактирования объекта). Моделировать будем половинку, вторую достроит модификатор mirror. Для этого разрежем куб пополам. Последовательность следующая - жмем Shif+R и двигаем мышью, располагая желтую рамку будущего разреза вертикально. Далее два раза ввод.

Образовались новые вершины. Переходим в вид сверху, выделяем верхние вершины (хоткей B – выделение рамкой, в режимах кроме wireframe будут выделяться только видимые вершины, или включить режим X-Ray для всех режимов) и удаляем их (X-Vertices). Применяем модификатор mirror. В настройках указываем ось, по которой зеркалить – Y.

Далее творческая работа. Выделяем вершины фронтального полигона (или полигон в режиме выделения полигонов) и двигаем (хоткей G) их к носу (нажимаем X, чтобы двигаться вдоль оси Х). Образуем новые разрезы, как делали с кубом в ключевых местах изменения геометрии, только теперь щелчком мыши устанавливаем разрез вертикально, двигаем в нужное место и вторым щелчком фиксируем разрез.

Потом выравниваем вершины по проекциям, не моделируя пока кабины и рулей.

Для фронтального вида делаем разрез вдоль. Далее выделяем нижнее ребро (Alt+Shift+Щелчок по вершине нижнего ребра), снимаем выделение с первой и последней вершины и тянем ребро вверх по оси Z.

Теперь еще один разрез в верхней части вдоль кабины и аналогичное выравнивание по фронтальному виду.

Ну вот, уже появляется лаптеобразная заготовка.

Теперь новый инструмент – нож (K). В виде сверху режем по контуру кабины. Завершается разрез вводом.

Этим действием мы образовали новые полигоны. Теперь в режиме работы с полигонами выделяем их и выдавливаем (E) вдоль оси Z.

Дальше по аналогии – разрез – выравнивание. A few hours later применяем модификатор сглаживания.

В результате этого этапа получилась болванка, с которой мы будем получать сечения-шпангоуты и стрингеры – продольные элементы жесткости корпуса.
Первым делом возьмемся за стрингеры. Перед следующими операциями болванку нужно дублировать (Shift+D+Ввод) и применить в меню модификаторов модификатор сглаживания. Дальше выберем несколько продольных ребер на корпусе, как показано на рисунке, в ключевых изменениях геометрии (Alt+Shift+Щелчок в режиме редактирования объекта). Отделим эти ребра от модели комбинацией Shift+D+Ввод (дублирование) P-Selection (отделение в новый объект).

Это будут профили, по которым мы будем тянуть сечение стрингеров. Теперь переходим в режим операций с объектами (Tab) и выделяем вновь образованный объект и опять заходим в режим редактирования объекта (этот пока еще составной объект можно поместить в отдельную коллекцию). Теперь повествование пойдет об одном стрингере, остальные делаются аналогично.
Задача от этого набора отделить одну линию, конвертировать её из mesh в кривую (curve), нарисовать сечение рейки (стрингера) и вытянуть его вдоль этого пути. Отделяем одно связанное ребро так как описано выше.

Выбираем вновь отделенную линию и нажимаем сочетание Alt+C-Curve. Теперь доступны операции с кривыми.

Выходим из режима редактирования этой кривой и где-нибудь в начале или конце добавляем плоскость (Shift+A-Plane). Через панель Transform задаем ей размеры 5х5 мм. В параметрических системах по-хорошему этот размер выносится в отдельный параметр (вроде плагин BlenderCAD это умеет), и меняя только этот размер, можно пересчитать все пазы с 5 мм рейки на 3 мм рейку, но так пока проще. Конвертируем плоскость в кривую (как делали с мешем выше, в режиме редактирования объекта) и меняем тип кривой, как на рисунке ниже. Выходим из режима редактирования, выбираем наш стрингер-сплайн и в меню сплайнов подменю geometry в опции bevel находим созданный из плоскости сплайн. После этого кривая примет вид огромной квадратной трубы. Её размер будет отличаться в 20 раз.

Почему происходит так, я не знаю. Я и применял трансформации, и искал ответ в интернете. Возможно знающие люди подскажут и я в этом месте исправлю текст. Но пока, чтобы привести размер в норму, нужно разделить размеры профиля на 20. Выбираем профиль, во вкладке Dimensions, прямо рядом с размером ставим слеш и пишем 20, жмем ввод – размеры сечения «трубы» придут к 5 мм квадрату.

Сечения оставшихся стрингеров формируем по аналогии. В результате получится следующая заготовка.


Теперь займемся шпангоутами. На этом этапе вдоль центра модели нужно предусмотреть некий стапель. У меня это алюминиевый стержень квадратного сечения со стороной 10 мм и две рейки для самого первого шпангоута (стержень там мимо пролетает). При сборке на этом стапеле будут размещаться шпангоуты через определенный шаг. Так не должна уйти геометрия (у меня все-же ушла немного, ниже объясню почему). Для создания шпангоутов нужно нарисовать секущие плоскости. В центре добавляем плоскость (Shift+A-Plane) Масштабируем, разворачиваем как на рисунке (хоткей R, потом нажимаем нужные оси (ХYZ) и цифрами набираем градусы, на которые нужно повернуть плоскость (90 или 180), жмем ввод).

Теперь эту секущую плоскость нужно размножить. Выделяем её, и набиваем на клавиатуре Sift+D (дублировать) Х (по оси Х) -50 (и передвинуть на 50 мм в отрицательном направлении) и ввод. Далее Shift+R, чтобы повторить предыдущую комбинацию – размножить плоскость по оси Х через 50 мм. Аналогично в другую сторону, только 50 мм без минуса.

Выделяем плоскости и жмем Ctrl+J – получаем один объект. Теперь выделяем болванку корпуса, дублируем (чтобы сохранить её, работать будем с дубликатом) в панели модификаторов (гаечный ключ) выбираем священный Boolean с опцией Difference, указывая на объект секущих плоскостей. И получаем сечения.

Дальше применяем весь стек модификаторов для этого объекта (Ctrl-A, когда мышь в зоне вкладки модификаторов или из выпадающего меню (галочка вниз)). На данном этапе нужно сформировать внутреннюю полость модели. Для этого нужно разделить все заготовки шпангоутов в отдельные объекты и сформировать внутренний контур. Рассмотрим на одном шпангоуте. Переходим в режим редактирования (помните как?). В режиме выделения полигонов выделяем один единственный полигон.

Нажимаем хоткей I и двигаем так, чтобы граница полигона была шире 5 мм с запасом материала в местах, где будет вычитаться стрингер. Двигать нужно до момента образования каши из ребер как на рисунке выше.
Если нужна большая ширина – останавливаемся до пересечения ребер щелчком мыши и потом этот полигон масштабируем (S). Можно зажимать в процессе масштабирования нужные оси, чтобы добавить/убрать будущий материал. Затем командой X удаляем центральный полигон с опцией Delete only faces.

Спустя несколько Артемо-часов получаем вот такой скелет:

Полученные объекты объединяем в один и вычитаем булевой операцией стрингеры (их нужно обратно конвертировать в mesh, Alt+C и отзеркалить).

На рисунке видно, что с кормы и носа (это же частично судно) я не удалял внутренности нескольких шпангоутов. Один разрезал сверху под пилон двигателя, и в одном предусмотрел ложемент под площадку для электроники. Делалось все в режиме редактирования одного шпангоута с его половинкой. Вторая часть отзеркаливалась.
Чтобы не усложнять и не увеличивать статью, держатели стапеля в шпангоутах я дорисовал в Inkscape, но центральный квадрат для него мы получим из Blender’а.
Используя аналогичные техники, были нарисованы: площадка под электронику, пилон-моторама и кили-рули. Алгоритм следующий: добавляется плоскость, разрезанием и движением вершин подгоняется под чертеж (или ваше видение инженера-созидателя), далее выдавливается на толщину вашего материала (да, тут бы параметрически… хочешь 3 мм фанеру, хочешь пять – но у меня была только пятерка). Симметричные детали рисуем половинками. Крепление шип-паз формируем булевыми операциями с дубликатами деталей. Так дубликатами элементов моторамы я получил отверстия и вырезы для крепления моторамы и пилона, а для крепления килей я дублировал и вычитал пересекающиеся их части со шпангоутами. Сервопривод я скачал и вычел из площадки для оборудования, а двигатель смоделировал из цилиндров по имеющимся размерам. Разместил и проверил, не пересекаются ли с винтом тяги рулей (тоже цилиндры). Тем, кто умеет работать с костями и инверсной кинематикой можно даже прямо тут в 3D пошевелить рулями.

В процессе проектирования я учитывал толщину только задних шпангоутов (те, которые участвуют в пересечениях с внутренней структурой), а с передних брал только контур. Это привело к набегающей к носу ошибке в длине. В результате у меня передний шип площадки для электроники не дотянул до своего паза на 7 мм, и сама модель получилась несколько длиннее. Это так, в плане поделиться с вами своими граблями.
Теперь получим векторные изображения деталей. Короткий план : разместить по проекциям ортогональные камеры, включить FreeStyle рендер и, по очереди, скрывая детали и оставляя нужные, получить их рендеры в SVG формате. Молодцевато, как опытный пианист, одной рукой жмем Ctrl+Alt+U и вызываем настройки. В пункте addons находим Freestyle SVG exporter. В результате этого действа во вкладке Render Properties появятся новые настройки. Делаем как на рисунке.

Ставим камеру, жмем Ctrl+F12 и ждем окончания рендера. В той папке, где сохранена модель, появится SVG файл с именем номера кадра.

Ну практический инженерный арт. Теперь на примере одного шпангоута посмотрим, как получить его чертеж.
Выделяем камеру, переходим во фронтальную проекцию и выравниваем камеру по виду (Ctrl+Alt+0 на num pad, или жмем пробел и начинаем набирать align…. до появления нужного пункта).

Переключаем тип камеры – с перспективной в ортографическую. Масштабом подгоняем так, чтобы объекты были в поле зрения камеры. Теперь нужно оставить только нужные объекты для рендера. Снимаем выделение со всего (A), выделяем нужный шпангоут и стапель, инвертируем выделение (Ctrl+I) и скрываем все остальное (H). В outliner выключаем опцию рендера для всех невидимых объектов. Если иконка фотографического аппарата отсутствует, включаем её в настройках (символ воронки-фильтра). Если вы разбивали логически сцену на коллекции, можно скрыть целиком коллекцию.

Рендерим изображение и получаем векторный файл:

Один важный нюанс. Объекты для этих рендеров должны быть плоские. Иначе Freestyle рендер будет добавлять линию над линией и дальше в Inkscape для получения замкнутых контуров придется дополнительно их редактировать. Я в проекции «боком» к детали в режиме редактирования выдавленной детали выделяю вершины одной плоскости и удаляю их, получая плоскую деталь – так формирую отдельную коллекцию для итогового ренедера.
Если тема интересна, во второй части статьи опишу, как собрать эти файлы в лист, немного доработать их, получить G-code для фрезеровки/лазерной резки. Ну и описать процесс сборки модели. Модель кстати собрана, функционирует, радуя детвору (и взрослых дядь) и огорчая уток.
В заключении хочется сказать, что когда задача разбивается на небольшие подзадачи (О декомпозиция!) то не так уж и сложно. И Blender становится дружелюбен. Отдельное спасибо товарищам Павлу Жовнеру, Сергею @dlinyj, Денису Веберу и многим другим авторам, которые меня тут на протяжении лет учили и заряжали своим интересом и образом достижения целей. За сим пока все, выключаем «высокое».
Комментарии (18)
SGordon123
23.05.2022 15:33Народ у нас не парится по моему с моделингом, из пеноплэкса дощщечку ошкурил, скотчем обмотал , моторчик приделал - и вперед. Но рулить по снегу - ловкий пилот нужен.... https://youtu.be/mvfHeLLwKqs
Alyoshka1976
23.05.2022 19:43Выбор и реализация способа управления движением тоже интересны, там много нюансов для каждого варианта - воздушный руль, водный руль, два пропеллера.
avtopolet Автор
23.05.2022 21:17Киль состоит как бы из двух частей. Та часть, что ниже выреза работает как руль в воде. Верхняя-воздушный. Плюс на нижней кромке отклоняемой плоскости есть что-то типа конька, чтобы держаться на льду.
Chernysh_Aleksandr
23.05.2022 21:05почему не судно на подводных крыльях
похоже халтура:
почему не сделали корпус как в " Иллюстрация из того самого «Моделист-конструктора» " + чертеж - там смысл что при разгоне воздух загоняется под дно для снижения трения и увеличения скорости на прямых участках (волнорезы препятствуют выходу воздуха htt p s :// dic. academic. ru/ pictures/wiki/files/84 /The_cat_ferry.jpg )
avtopolet Автор
23.05.2022 21:14+1Судно не на подводных крыльях потому, что очень легко подцепить на них водоросли. Плюс по снегу на таком не погонять. А кто сказал что там нет волнорезов? Они есть в хвостовой части, начинаются примерно от центра масс. И в принципе понятно почему так, воздушная подушка добавляет подъемной силы в самых тяжелых местах - где бак и двигатель. С Котом не корректно сравнивать, хотя часть принципов схожи. И да, я сначала делал по сечениям с чертежа-модель получилась непохожей.
angry_MyPuK
25.05.2022 14:47я в начале статьи ждал экраноплана
но и такой вариант понравился!
правда, не совсем понятно, зачем было перерисовывать чертежи шпангоутов и стрингеров,
если они есть на страртовом чертеже
м.б. из-за подгонки масштаба под имеющийся винт
dlinyj
24.05.2022 10:50+1Ой, и меня вспомнили, как приятно :))).
Спасибо за статью, сам занимался некоторое время судомоделизмом, даже недели две просидел за книжками в ленинке. Пишите ещё, очень интересно!
lelik_druzhinin
25.05.2022 08:56Интересно было бы посмотреть на тоже самое только в fusion360 или solid-е
stalker1984
Я очень люблю блендер и я "старовер" (2.75 наше всё!!!). Но проектировать лучше все же в САПР. Сам использую fusion360 с учебной лицензией.
avtopolet Автор
Да, конечно лучше, но я как-то к блендеру пришел раньше фьюжена. Даже бумажные модели самолетов разворачивал и сходилось же потом в результате :). Мой путь - как вариант, человек посмотрит и примет решение.
osmanpasha
Ну тут такое - человек, не знакомый с САПР, прочитает вашу статью и пойдет забивать гвозди Блендером.
Кстати, для фанатов Блендера - к блендеру недавно сделали плагин для САПР, но вопрос, насколько это костыльно встраивается в архитектуру и насколько удобно по сравнению с специализированным ПО.