В этой статье рассказывается, как с нуля изготовить 3D-модель Луны. Казалось бы, Зачем создавать модель Луны самому, если её можно купить? Хотя бы потому, что при самостоятельном изготовлении модели Луны вы сможете задавать желаемые параметры, например размеры и толщину оболочки, разрешение изображения, пределы вращения, положение секущей плоскости, сможете сделать отверстие для лампы и так далее. Приступим же к творению своей собственной Луны. В сети Интернет можно найти самые разные 3D-модели Луны. Некоторые можно приобрести в интернет-магазинах, другие – скачать в виде файлов и распечатать на 3D-принтере. Готовые модели можно разделить на 2 категории: Поверхность Луны прорисована детально и качественно, но, если поместить в модель источник света, её детали не подсвечиваются изнутри. Детали поверхности хорошо прорисовываются при подсветке изнутри, но без подсветки их не видно. Детали хорошо прорисовываются при подсветке изнутри Если у вас нет 3D-принтера, можно купить в Интернете лампу типа Moon Lamp. Ниже я привожу перечень задействованного ПО. После ознакомления с методикой вы сможете сделать то же самое, что и я, при помощи обычных инструментов. Загрузите доработанную мной версию Banate CAD с GitHub. Пакет Banate CAD написан на Lua, поэтому для запуска скриптов на Windows установите Lua for Windows. Meshmixer На изображениях выше представлены продукты из PLA-пластика. Продукты, полученные в результате 3D-печати с использованием разных видов белого PLA-пластика, могут иметь разные оттенки. Поставщик пластика утверждает, что вариант B – самый лучший, но именно он, увы, застрял в моём принтере. Освещать модель Луны можно разными способами, источник света может питаться от аккумуляторов, от сети и так далее. На выбор источника света также влияют размеры модели. Вариантов очень много, и, если мы начнём их здесь обсуждать, то отклонимся от темы печати. Достаточно понимать, что вариантов очень много. Хочу отметить, что тёплый белый свет источника приятнее для глаз. Большинство моделей из PLA-пластика имеют выраженные отражающие свойства, поэтому я рекомендую делать поверхность матовой. Матовая аэрозольная краска легко решит проблему. Для моделирования потребуются два изображения Луны. Они находятся в папке BanteCAD/Examples. Я уменьшил разрешение до 720x360, его для модели должно быть достаточно. Если нужно, найдите изображения с большим разрешением в сети. Для моделирования поверхности существует специальная карта, обычно её называют картой рельефа. Оттенок серого указывает на высоту соответствующей точки на сфере. Имея карту рельефа, можно точно отобразить на модели все детали поверхности. Однако, если сравнить карту рельефа с Луной в небе, вы заметите, что они отличаются друг от друга. Детали настоящей Луны – это не только разные высоты в разных точках. Важен также цвет. Естественно, мы можем дать команду принтеру распечатать разные цвета, но, к счастью, настоящую Луну мы видим в оттенках серого. Чтобы свет проникал сквозь модель с разной интенсивностью, можно распечатать модель с разной толщиной стенок и наложить на модель изображение в градациях серого. Для настройки толщины стенок модели нам потребуется визуальная карта Луны. Карта лунной поверхности – это обычная карта рельефа. Нужно учесть внутреннюю толщину, поэтому с помощью функции Level (Уровень) я смещаю значение вправо (на карте рельефа будет выведено более яркое изображение). Внутренняя карта Луны – это форма внутренней поверхности модели. По этой карте мы определяем толщину в каждой точке поверхности, то есть нужный оттенок серого. Эта карта строится на основе визуальной карты, к которой, в свою очередь, применяются параметры толщины на основе карты рельефа. Или, если использовать другой метод вычисления, посредством вычитания карты рельефа из инвертированной визуальной карты. Если понизить уровень карты рельефа, возвышенности на поверхности будут меньше, уменьшится и провисание, но придётся по-другому распределить детали поверхности. Если сместить уровень визуальной карты влево, оболочка станет толще, и наоборот. При этом необходимо помнить, что смещать уровень слишком далеко вправо не следует. Оболочка должна иметь толщину не менее 0,4 мм (если используется сопловая насадка экструдера размером 0,4 мм), в противном случае придётся делать отверстие в оболочке вручную. Диапазон светло-серой шкалы зависит от диапазона уровней визуальной карты. Прилагаемые файлы: moon.xcf Оболочка должна быть не слишком толстой, но и не слишком тонкой, чтобы на ней в неожиданных местах не образовывались дырки, как на примере выше. Если оболочка тоньше, чем возможно напечатать, принтер просто ничего не напечатает, на поверхности в неожиданных местах могут даже образоваться дыры. Исправить это можно так. Откройте STL-файл, сформированный BanateCAD в программе Meshmixer. Удалите модель внутренней поверхности. Запустите команду Edit (Изменить). Выберите команду Hollow (Полость). Установите толщину 0,5 мм (для экструдера размером 0,4 мм). Ещё раз запустите команду Hollow (Полость). Примите изменения, теперь толщина оболочки лунной поверхности составляет 0,5 мм. Поворот и разрез плоскости осуществляются так же, как в настройках лунной оболочки. Экспортируйте STL-файл. Откройте STL-файл лунной оболочки в Microsoft 3d Builder. Устраните дефекты. Откройте STL-файл лунной поверхности с толщиной оболочки 0,5 мм. Устраните дефекты объекта. Выберите весь объект. Примите изменения, теперь толщина лунной оболочки составляет 0,5 мм. Экспортируйте STL-файл. BanateCAD может моделировать 3D-форму на основе карты рельефа. В папке примеров я выложил соответствующий скрипт. Он считывает карту поверхности и внутреннюю карту Луны, а затем моделирует обе формы. Ниже приведены шаги моделированию с помощью BanateCAD: Откройте файл BanateCAD.wlua. В меню File (Файл) выберите команду Open (Открыть). Откройте файл moonlamp.lua в папке Examples. Не обязательно: измените параметры. В меню Compile (Компилировать) выберите команду Compile and Render. Через некоторое время появится 3D-модель. В меню File (Файл) выберите команду Export -> Export STL. Введите имя файла STL и нажмите кнопку сохранения. Выходной диаметр сферы в дюймах, карта рельефа и внутренняя карта создаются на основе этого параметра: Коэффициент высоты поверхности:  Разрешение не должно быть больше разрешения изображения PNG: На базе изготовленных в BanateCAD форм мы можем создать оболочку посредством вычета из формы поверхности внутренней формы. Ниже приводится описание шагов по созданию оболочки с помощью Meshmixer: Откройте экспортированный файл STL с помощью Meshmixer. Дождитесь завершения загрузки. Выберите обе модели в Браузере объектов. В левой панели инструментов выберите команду Edit (Изменить), затем выберите пункт Boolean Difference (Булева разность). Дождитесь завершения расчёта. Выберите команду Accept (Принять). Дождитесь завершения расчёта. Оставьте одну модель в Браузере объектов, это будет лунная оболочка. Сохраните файл. Перед 3D-печатью можно настроить любые параметры. Есть такие варианты: Если вы хотите поставить модель Луны на рабочий стол, я предлагаю, чтобы ось Z поворачивалась от -45 до -60 градусов, так Луна будет направлена к вам привычной стороной. Если вы хотите подвесить модель Луны к потолку, я предлагаю, чтобы ось Z поворачивалась от 120 до 135 градусов по той же причине, что и выше. Если вы захотите внутри установить подсветку, не забудьте сделать отверстие для провода (если возникнут сложности с печатью отверстия на 3D-принтере, можете, как и я сам, после печати просто просверлить отверстие дрелью. 90% процентов Луны в разрезе – плоскость, так что можно спрятать швы и легко распечатать её без провисаний. Закончив настройку, экспортируйте STL-файл для печати. Откройте объект в 3D-слайсере, убедитесь, что в оболочке нет дыр, и запустите печать. Если Луна должна быть идеальной, можно пропустить предыдущий шаг с разрезанием плоскости и включить опцию суппорта. Но, на мой взгляд, убирать остатки суппорта довольно сложно. Если предыдущий шаг вызвал у вас затруднения и вы не смогли распечатать STL-файл, воспользуйтесь моим файлом. Соберите вместе верхнюю часть, источник света и нижнюю часть. Сейчас я пытаюсь напечатать лунную лампу более внушительного диаметра – 110 мм: это наибольший размер, который можно распечатать с помощью принтера Robo C2. Одна распечатка займёт десятки часов. Я хочу Луну с такими параметрами: Вам это удалось! Теперь можно хвастаться перед знакомыми результатами вашего труда или просто подарить готовую модель друзьям! Узнайте, как прокачаться в других специальностях или освоить их с нуля: Профессия Data Scientist Профессия Data Analyst Курс по Data Engineering ПРОФЕССИИ Профессия Fullstack-разработчик на Python Профессия Java-разработчик Профессия QA-инженер на JAVA Профессия Frontend-разработчик Профессия Этичный хакер Профессия C++ разработчик Профессия Разработчик игр на Unity Профессия Веб-разработчик Профессия iOS-разработчик с нуля Профессия Android-разработчик с нуля КУРСЫ Курс по Machine Learning Курс "Machine Learning и Deep Learning" Курс "Математика для Data Science" Курс "Математика и Machine Learning для Data Science"  Курс "Python для веб-разработки" Курс "Алгоритмы и структуры данных" Курс по аналитике данных Курс по DevOps