Младший очень любит роботов-доставщиков, поэтому в какой-то момент мы купили ему такую игрушку. Не ту, что дорогая на радиоуправлении, а простенькую, с оттяжным моторчиком и светодиодами. Старшая это увидела и тоже себе такую попросила, купили и ей. Потом младший случайно увидел, что в доме есть второй ровер, и не его! Устроил скандал, пришлось ему отдать, а старшей купить третьего и попросить, чтобы спрятала.
И тут я подумал: а мог бы я сам сделать что-то типа такого дома, если бы игрушки не продавались, или вместо покупки второго-третьего-пятого? Вызов принят, засел за компас. Думал, что сделаю за вечер, но на самом деле с продумыванием конструкции, что где как должно соединяться, просидел дня четыре. И ещё столько же на сборку, потому что нельзя просто взять и с первого раза угадать все допуски и посадки :)
Моя версия крупнее, чем покупная игрушка, батареек хватает на подольше, и даже есть своего рода подвеска. Конечно, пространство для улучшений остаётся, но, получилось, кажется, довольно мило. Если вы хотите своим детям сделать прикольный сюрприз, я не поленился сверстать инструкцию по сборке, прикладываю её и все файлы. В архиве есть и редактируемый исходник в формате STEP. Просьба, кто напечатает, покажите в комментах :)
#diy@clockstackwheels#hobby@clockstackwheels
https://www.python.org/dev/peps/pep-0498/
#Interpolation
# Python supports multiple ways to format text strings.
# These include %-formatting,
# str.format(),
# and string.Template
# The !s, !r, and !a conversions are not strictly required.
# Because arbitrary expressions are allowed inside the #f_strings,
# this code:
»> a = 'some string'
»> f'{a!r}'
"'some string'"
Is identical to:
»> f'{repr(a)}'
"'some string'"
Similarly, !s can be replaced by calls to #str() and !a by calls to #ascii().