В 2015 году я прочитал статью @AlexeyStn про открытку-лабиринт — подарок, который невозможно открыть, не разгадав головоломку. Восемь лет спустя я повторил этот DIY-проект на новом технологическом уровне. Получилась 3D-печатная фоторамка с секретным отделением для подарка и длинной историей создания.
В процессе я сломал 3D-принтер, столкнулся с загадочными багами Cura, чуть не поругался с косплеерами и, кажется, наступил на все возможные грабли, но успел до Нового года. А теперь вот написал эту статью.
Описание оригинальной головоломки#
Для начала несколько слов о конструкции головоломки. Автор идеи, Алексей Станкевич достаточно подробно описывает ее в своей статье:
Лабиринт представляет собой многослойную конструкцию. Нижний слой – плотное картонное основание; средний слой – сам лабиринт, составленный из спичек, приклеенных к картону; верхний слой – тонкое оргстекло. Сверху стекло закрывается листом бумаги с окошками на старте и на финише…
В отверстие на старте закладывается плоский магнит. Задача – провести его сквозь лабиринт вслепую, перемещая по поверхности другой магнит… На финише находится замок, который нужно открыть магнитом. Крючок держит петлю, а та в свою очередь фиксирует планку с обратной стороны лабиринта. Если повернуть крючок и освободить петлю, можно приподнять планку и открыть конверт с подарком.
Концепт мне так понравился, что я накупил крафтовой бумаги и к началу 2016 года, как сумел, склеил свой вариант.
Эта открытка-лабиринт сохранилась на нескольких мутных фотографиях на пыльном жестком диске. Они попались мне на глаза весной 2023 года. Тогда я решил повторить проект, но уже при помощи 3D-печати, и завертелось… но прежде чем перейти к деталям — дисклеймер: у меня околонулевой опыт в 3D-моделировании, так что в процессе я наделал кучу ошибок. Надеюсь, что мой опыт кому-то пригодится, и прошу специалистов отнестись с пониманием.
Проектирование новой головоломки#
Автор оригинальной открытки использовал лист картона 200 на 300 мм — великовато для моего 3D-принтера. Старенький Anycubic i3 mega печатает на столе 200 на 200 мм. Конечно, можно было разрезать модель на части, но я подумал, что это плохо скажется на эстетике конечного изделия. Сперва решил ориентироваться на размеры первой попавшейся на глаза открытки — 120 на 160 мм.
Второе заметное изменение касалось места размещения подарка. Единственное, что смущало в оригинальном дизайне открытки — конверт и планка-запор, которая выглядит как символическое препятствие на пути к содержимому конверта. Вместо этого хотелось сделать некий контейнер, куда поместятся и записка, и деньги, и даже мелкий сувенир.
Мне не хватало насмотренности, чтобы сразу придумать удачное решение, так что я полез в сеть. Сперва заинтересовался красивой механической диафрагмой. Даже напечатал одну, но она оказалась очень тонкой, а диаметр отверстия — недостаточно большим для моих целей. Я понял, что не стоит усложнять. Взял за отправную точку конструкцию сдвигающейся крышки типа той, что закрывает отсек с батарейками телевизионного пульта.
В выборе принципа работы запорного механизма помогла моделька поворотной защелки с Thingiverse. Я никак не мог выбрать форму запора, так что решил действовать итеративно: напечатать и взглянуть на него в реальности.
Здесь видно пару ошибок, которые можно было бы предугадать еще до печати:
- Направляющая, по которой должен двигаться ящик, не работает, так как должна. Поддержки, необходимые для ее печати, испортили геометрию. Шип не входит в паз. А мне хотелось, чтобы детали подходили друг к другу без постобработки.
- Выбраны неправильные габариты коридора для магнита и нет зазоров для нормального вращения задвижки. Выяснилось, что у меня напрочь отсутствует «чувство размера» и понимание необходимых допусков, и к концу проекта это вылилось примерно в полкило потраченного впустую пластика.
Поглядев на прототип, я решил сделать треугольную в сечении направляющую для ящика, которая будет печататься без поддержек. Еще увеличил зазоры, решил добавить второй замок, чтобы открыть головоломку было сложнее, и принялся за лабиринт.
Чтобы не придумывать лабиринт с нуля, я использовал онлайн-сервис с десятком алгоритмов генерации лабиринтов.
В основу головоломки лег результат работы алгоритма Kruskal с небольшими доработками. Получился вполне приличный лабиринт, и даже осталось место для второй задвижки. Чтобы поместить магнит внутрь, я решил сделать отверстия в торце открытки.
На этом этапе я решил еще раз напечатать модель и проверить, надежно ли фиксируется ящик, вращаются ли задвижки, и, главное, хватает ли магнитам силы, чтобы их открыть.
Хотелось бы, чтобы все пошло по плану, но через 4 часа печати лабиринта началась недоэкструзия, а затем пластик совсем перестал давиться. Засорился хотэнд, так что я отправился прокаливать сопло и пересобирать эту часть принтера. Вот только вскоре после этого Anycubic i3 mega перестал держать температуру и начал останавливаться в произвольные моменты времени. Диагностировать проблему я так и не смог. Возможно, стоявшая в эти дни жара доконала управляющую плату. Прошло около полутора месяцев, прежде чем я раздобыл Ender 3 s1 pro и продолжил печать уже на нем.
Хорошая новость состояла в том, что 5 мм неодимовые магниты позволяли повернуть задвижки через миллиметровый слой пластика.
Плохая — в том, что ящик не входил на свое место до конца из-за выпирающих углов. Технологичным решением проблемы была бы установка кастомной прошивки с поддержкой linear advance, например, от ThomasToka, но проще и быстрее оказалось скруглить углы на чертеже. А самая плохая новость заключалась в том, что на торцах модели, на уровне где начинались стенки лабиринта, там где на 3D-модели была обычная плоскость, с трех сторон появилась странная выступающая фаска.
Принтер я толком не калибровал и сперва предположил, что при печати стенок лабиринта происходит переэкструзия. Чтобы проверить гипотезу, поменял настройки слайсера и запустил повторную печать.
Рождение новой концепции проекта и загадочный глюк#
Пока принтер трудился, я думал о художественном оформлении открытки. Можно было бы использовать оберточную бумагу, но, когда в твоем распоряжении 3D-принтер, хочется задействовать его по полной. Значит, надо обрамить лабиринт и сделать по краям рельефные узоры. Здесь в голове щелкнуло: можно накрыть лабиринт фотографией и сделать фоторамку!
Самостоятельное моделирование красивого багета я не осилил бы, но вскоре нашел работу boothyboothy с cults3d. Эта рамка не выглядит слишком вычурной, доступна в cad-формате и распространяется под открытой лицензией. Импортировал ее в проект и подогнал размеры под распространенный фотоформат 150 на 200 мм.
Части рамки решил соединить при помощи пазов и, заодно, протестировал два типа соединений: овальные и трапециевидные штифты. Они работали одинаково хорошо, так что приводить соединения к единообразию я не стал.
Объединил ящик с багетом в единую деталь. Вынув ящик, можно будет поменять фотографию. Для надежного соединения лабиринта и рамки добавил четыре ласточкина хвоста.
К этому моменту допечатался еще один лабиринт с измененными настройками. Фаска никуда не делась. Я поменял еще несколько параметров и напечатал версию с ласточкиными хвостами, но и на ее торце красовался заметный выступ.
Причем по бокам фаска постепенно сходила на нет, на нижнем торце детали была выражена по всей длине, а на ласточкиных хвостах ее не было вовсе. Напечатал фрагмент рамки с теми же настройками — никаких дефектов.
Какой-то уж очень сложный, «плавающий» дефект… Здесь я понял, что проблема не в калибровке принтера, а на программном уровне. И точно. Если смотреть на визуализацию, то Cura нарезала все правильно, но в то же время выдавала глючный G-Code. Я нарезал ту же деталь в PrusaSlicer, и она сразу получилась как надо. Кстати, после обновления Cura до версии 5.4 этот баг пропал.
Разобравшись со слайсером, я осмотрел рамку и совершил новое открытие: магнит высотой 2 мм без сопротивления передвигается по лабиринту с высотой стенки 2 мм, но застревает во входном отверстии той же высоты. Видимо, между стенками лабиринта и крышкой остается дополнительный зазор, в то же время отверстие печатается без поддержек, и пролет немного провисает. Что же, к тому времени я уже привык все переделывать.
Доработка механизма#
Первая сборка фоторамки тоже прошла не совсем гладко. Я ожидал, что соединения потребуют доработки напильником, но даже после этого прилегание получилось неидеальным. При разработке моделей во всех точках контакта между деталями нужно было оставлять зазор как минимум 0,2-0,3 мм.
Чего я не ожидал, так это того, что лабиринт будет виден на просвет. Это можно исправить увеличением плотности заполнения, выбором более темного пластика или покраской, но в тот момент прозрачность сослужила хорошую службу. Первые испытания головоломки закончились тем, что задвижка застряла в промежуточном, нерабочем положении, и, благодаря просвечивающему пластику, это получилось заснять.
А еще закуток, который остался от лабиринта, здорово сбивал с толку, когда поворачиваешь задвижку вслепую. Оба элемента пришлось перемоделить, и только после этого задвижка заработала как надо.
Оставались последние штрихи.
Добавление функциональных элементов#
Теперь нужно была сделать фишку-ключ от головоломки — в ее качестве выступил цилиндр с шариком-навершием. В основание цилиндра я вклеил 5 мм магнит, а, чтобы фишка не потерялась, сделал отделение для хранения в верхней части рамки. Туда вклеена еще пара магнитов, которая надежно удерживает содержимое внутри.
Кроме того, я добавил точки подвеса для крепления на стену и подставку, как у настоящей фоторамки. Штифт для подставки сделал из распрямленной скрепки. Проволока вставляется через специальный канал со стороны ящика.
Получился набор из 14 готовых к покраске деталей: лабиринт, крышка лабиринта, 5 фрагментов рамки, пара задвижек, ящик, совмещенный с верхней частью рамки, язычок подставки, пара фишкек-ключей (одна запасная) и крышка отсека для хранения фишек. Плюс 10 одинаковых магнитов: 2 вклеиваются в фишки, 4 в отсек для хранения фишек, 2 в крышку отсека и еще два будут свободно путешествовать по лабиринту.
Чтобы открыть рамку, нужно взять такой «свободный» магнит, поместить в отверстие в нижней части рамки и при помощи фишки на ощупь провести магнит по лабиринту, повернув задвижку в конце. Затем придется пройти лабиринт снова, добравшись до второй задвижки.
Декоративное оформление и покраска#
В таком виде рамку можно собрать и использовать по назначению, особенно если перепечатать ее в высоком разрешении из полимерной смолы или, например, декоративного композитного пластика «под дерево», но я решил покрасить ее, как настоящий багет.
К этому моменту прошло уже шесть месяцев работы над проектом. Чтобы успеть к новогодним праздникам, я решил не изучать тонкости покраски с нуля, а передать задачу профессионалам. Нашел в сети ребят, занимающихся изготовлением реквизита для косплея, которые согласились взяться за заказ.
Даже на этом этапе не обошлось без ошибок.
Чтобы рамка смотрелась как настоящая, все неподвижные детали нужно надежно склеить, а затем замаскировать швы на длинной стороне рамки. Щели по углам багета, наоборот стоит оставить, — они часто встречаются у настоящих рам, так что не будут бросаться в глаза и замаскируют выдвижной ящик.
В декоративной покраске нуждается только сама рама. Если при печати не было проблем с адгезией деталей к столу, то лабиринт можно даже не тонировать из баллончика. Поверхность и так будет ровной и красивой. Деталь будет выглядеть как вставка в раму.
Я объяснил все это мастерам на словах, но детальных письменных инструкций не оставил, а надо было. Полтора месяца спустя выяснилось, что раму из пяти частей склеили в единую бесшовную деталь, а лабиринт, напротив, — скреплять с остальными деталями не стали. Более того, подогнанные до десятой доли миллиметра соединения специально расточили, чтобы деталь можно было вынуть из рамы даже после покраски.
Ребята подумали, что иначе я не смогу уставить на место задвижки (они не требовали покраски и могли потеряться, поэтому я не отдал их в мастерскую), а позвонить и спросить почему-то не догадались. На самом деле, крышка лабиринта достаточно тонкая и гибкая, чтобы задвижки можно просунуть на место и надеть на штифты уже после полной сборки фоторамки.
И если спереди рамка выглядела неплохо, то с тыльной стороны получилось иначе. Мастера загрунтовали и покрыли жирным слоем краски все детали без исключения. В результате подставка не укладывалась в отведенный для нее паз, а сточенные ласточкины хвосты зияли огромными щелями. Я был чертовски раздосадован, потому что вид получился совсем не подарочный.
Чтобы исправить ситуацию, пришлось выкинуть все, кроме рамы и ящика, а затем срочно перепечатать недостающие детали и установить без покраски.
На лицевой части рамы также остались дефекты. Если приглядеться — видно, что местами рельеф «поплыл», но это не бросается в глаза из-за винтажной стилистики.
Я не учел, что излишки грунтовки после высыхания будут удалять при помощи бормашинки, которая во время работы прогревает место контакта. Следовало использовать вместо PLA более термостойкий филамент, который не начнет размягчаться уже при 50–60 градусах Цельсия.
Заключение#
По грубым оценкам работа над головоломкой заняла около 60 часов возни c Fusion 360 по вечерам, но по факту растянулась почти на полгода. Во многом первый блин комом, но, несмотря на ошибки, проект удался. Я успел к Новому году и спрятал внутри билеты на мюзикл. Фоторамка-лабиринт порадовала близкого мне человека, и это главное.
Радуйте близких, друзья.