Робимо модель острова з фанери
Місяць тому у мене з’явився чудовий апарат Snapmaker 2.0 A150 3-в-1, який вміє друкувати пластиком як 3D-принтер, різати та гравіювати за допомогою лазера, а також у нього є фрезерна голівка, якою також можна робити об’ємні моделі чи робити друковані плати.
В комплекті з апаратом йде кілограмова котушка чорного PLA філаменту для 3D-друку, 2 фанерки розміром 150*150 мм для тестування можливостей лазера та акрилова пластинка для тестування фрезерування.
Першим ділом я поставив головку для 3D-друку і був вражений. Вражений самим процесом, тим як шар за шаром з’являється готовий виріб. Не маючи жодного попереднього досвіду у мене вийшло з першої спроби (майже с першої) надрукувати кілька предметів.
Наступним кроком, було тестування лазерної голівки. Мені не хотілось вирізати просту тестову скриньку, яка доступна в бібліотеці проєктів в Luban. Хотілось чогось цікавого.
В пошуках натхнення
За порадою Федора Гонци я вирішив зробити модель рельєфу, вирізавши його частини з тих двох тестових фанерок, які йшли в комплекті. Я вже бачив кілька прикладів моделей рельєфу створених з шарів фанери в пості Еріка Гюндерсона, засновника Mapbox, кілька років тому і тепер настав час зробити щось подібне самостійно.
Для цього мені треба було знайти дані про цифрову модель рельєфу якоїсь місцевості. Це можуть бути як сирі дані, які можна обробити використовуючи спеціалізовані системи обробки геопросторових даних, наприклад QGIS, або ж можна спробувати пошукати вже готові ізолінії.
Mapbox Outdoors - стиль від Mapbox на якому є ізолінії
Як варіант, можна перейти в Mapbox Studio та взяти тільки їх, скориставшись набором даних Mapbox Terrain v2 (https://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-v2/), який якраз і містить потрібні мені ізолінії. Зробити це досить просто, зважаючи на те наявність докладної документації з прикладами коду й тому подібне.
Отримання ізоліній
Однак, мені трапився ще один інструмент, який вже мав в собі все те, що я тільки но збирався зробити сам. https://contours.axismaps.com/#12/27.7434/-18.0547
Залишалось тільки знайти місцевість з виразним рельєфом. Мій вибір пав на Канарські острови, на острів Ієрро (або як його ще називають Isla del Meridiano). Висота найвищої точки острова - 1501 м, він має круті схили та виразні бухти - саме те що мені треба.
Обравши крок в 500 футів, я отримав 10 шарів, які мені потрібно було вирізати з двох фанерок.
Фанерки у мене то дві, а як зробити так, щоб умістити на них 10 шарів? Рішення було досить простим - з однієї фанерки вирізати шари в 500, 1500, 2500, 3500 та 4500 футів, з іншої - 1000, 2000, 3000 та 4000 футів. У мене вийшли б шари які перекривають один одного - саме те що мені треба, у мене тільки дві фанерки й мені треба бути заощадливим, і мати якомога менше відходів.
Обробка *.svg, підготовка для вирізання
Я зберіг ізолінії в файл *.svg
та спробував відкрити його безпосередньо в Luban. Тут мене спіткала перша проблема. Річ в тому, що я сподівався, що Luban дасть мені можливість виділити кожну лінію з *.svg
файлу окремо та призначити їй відповідні інструкції. На одній фанерці я збирався прорізати ізолінії 500, 1500, 2500, 3500 та 4500 футів і випалювати ізолінії 1000, 2000, 3000 та 4000 футів, на іншій - навпаки. Виявилось, що в Luban можна задати параметри тільки для всіх ліній з файлу одразу - у нього немає можливості обирати окремі лінії з файлу для різу чи випалювання.
Тут на допомогу мені прийшов Inkscape в якому я розділив отриманий файл на три частини: в першу частину я виніс ізолінію берегової лінії у 0 футів; у другий - ізолінії 500, 1500, 2500, 3500 та 4500 футів; в третій - ізолінії 1000, 2000, 3000 та 4000 футів. Крім цього я обрізав файли так щоб їх сторона дорівнювала 150 мм, стороні моєї фанерки. Також буде корисним виконати спрощення ліній, це дозволить трохи розвантажити наш апарат від вирізання занадто малих деталей та зменшить розмі файлів з 400 кБ до 17-25 кБ кожний. Зберігайте файли у форматі Plain SVG (*.svg).
Берегова лінія | Непарні ізолінії | Парні ізолінії |
---|---|---|
берегова лінія (*.svg) | непарні ізолінії (*.svg) | парні ізолінії (*.svg) |
Тепер можна відкривати ці файли в Luban та призначати кожному з них параметри для різу чи випалювання.
Зменшимо для всіх файлів розмір в Luban до 140 мм.
Для першої фанерки беремо всі три файли: файл з береговою лінією - її ми будемо випалювати, файл з ізолініями 500, 1500, 2500, 3500 та 4500 футів, які ми також будемо випалювати (вони будуть слугувати нам орієнтиром для подальшого збирання нашої моделі) і файл с ізолініями 1000, 2000, 3000 та 4000 футів - по яких ми будемо різати.
Для другої фанерки беремо лише файли с ізолініями (без берегової лінії) і ті, які ми на першій фанерці випалювали, тепер будемо різати, а ті по яких ми на першій фанерці різали - будемо випалювати.
Виходить що відстань між ізолініями для вирізання дорівнює 1000 футів на обох фанерках.
Складання моделі острова після вирізання та випалювання
Фанерка на якій ми випалювали нашу берегову лінію буде основою для складання. На неї ми будемо наклеювати найбільший елемент з другої фанерки, потім наступний елемент з першої фанерки клеїти зверху елемента з другої… і так крок за кроком у нас складеться рельєф місцевості.
Можна починати складання як з найнижчого шару і рухатись вгору, так і з найвищого шару і, відповідно, рухатись вниз.
Через те що у мене на одній з фанерок не у всіх місцях лазер прорізав її наскрізь і мені довелось розділяти деталі макетним ножем, я вирішив складати острів від вершини до берегової лінії, виймаючи найменші елементи спочатку і накладаючи їх на більші.
В процесі складання я подумав, що було б добре додати назву острова та його координати на фон, найбільшу деталь, на якій я лазером вигравіював берегову лінію. Після цього я приклеїв острів до основи.
Дивіться, що я зробив!
— Andrey Golovin (@andygol_) February 5, 2022
Матеріал: 2 фанерки 1,5мм 150×150мм
Ізолінії: Elevation tiles by Mapzen
Обробка: Inkscape
Вирізання, випалювання: #snapmaker 2.0 A150
Складання: Я сам. pic.twitter.com/2TAbXT71jH