CAD для разработки снежинок: SnowFlaker


    Привет всем.
    Да да, это CAD, для разработки снежинок, написанный мной за пару дней.

    Предисловие


    Вырезая на днях очередную снежинку я задумался. Очень уж неудобно вырезать снежинку вслепую, разворачивать её, и убеждаться, что сделал не то что хотел.
    Сначала я стал прибегать к карандашу. Сворачиваем снежинку, рисуем, вырезаем. Но мое воображение продолжало играть со мной злые шутки, я разворачивал и видел очередного уродца.
    Почему бы не разработать CAD, чтобы поставить точку в этой ужасной несправедливости?

    В статье не будет никакого процесса разработки и программирования. В ней я поделюсь с вами получившейся программой, и расскажу как ей пользоваться. Под катом много картинок.
    Забрать сборку под win можно тут: sourceforge.net/projects/snowflaker
    Там же исходный код в GIT. Сборки под linux пока нет, но программа написана на fpc, и должна собираться и работать под linux-ом. Добавлена сборка под Linux.

    О программе


    В программе мы проектируем контур, по которому будем вырезать, и отправляем на печать. Получаем распечатанный лист, складываем, вырезаем по контуру.
    Поскольку не у всех есть принтер — изображение для печати можно предварительно растеризовать в png. Чтобы потом распечатать снежинок, прийти домой, сложить и вырезать.

    Основы работы


    Теперь к самой программе. Так как во многих случаях проще показать — дальше будет много картинок.
    Итак интерфейс у неё следующий:



    В рабочей области 2 линии — это границы листа после сворачивания. Тут мы можем таскать область правой кнопкой мыши, и зумить колесом:



    Чтобы создать первый контур — выбираем инструмент линия, и левой кнопкой мыши рисуем ломаную. Как только решили что нам хватит — правой кнопкой выключаем инструмент.


    hint: взять инструмент линия так же можно двойным щелчком на пустой области или на любой вершине.

    Но пока у нас прямые линии. Давайте изогнем их (хватаем за линию или за специальные контрольные точки, и тащим):



    Надо что-то куда-то передвинуть? Выделяем группу вершин, тащим их, или вообще удаляем клавишей Del:


    hint: удалять любые примитивы (линии, вершины, заливку) можно щелчком правой кнопкой мыши по примитиву

    Удалили лишнего? Не беда. Делаем двойной щелчок на линии, и получаем дополнительную вершину:



    Работали в Paint-e? Там есть инструмент заливка. Можно обвести определенную область, потом капнуть в центр и залить. Берем заливку, капаем в снежинку, и видим в области просмотра наше чудо:



    Важно! Заливаемый контур должен быть замкнут. Вот что будет, если разомкнуть контур:



    Работает 1 в 1 как заливка в паинте.
    Заливка не влияет на изображение при печати. Это только для предпросмотра.
    Сохранение, открытие файла я разжевывать не буду. С печатью все просто, жмем кнопку печати, выбираем принтер, печатаем.

    Хочу лишь обратить внимание на пункт сохранения снежинки для печати в PNG формате. Он вот тут:



    Работаем с результатом печати


    После печати у вас будет примерно вот такая картинка:



    Поскольку тут много больших фото, то
    как все это сложить смотрим под спойлером
    Переворачиваем лист так, чтобы стрелка с наконечником была в левом верхнем углу, и гнем лист справа на лево и сверху вниз:



    Теперь надо согнуть до линии сведения. Можно не доводить миллиметр из-за толщины бумаги:



    Дальше гнем по стрелке с двумя наконечниками:



    Теперь с тремя:



    Полученный результат вырезаем:




    Правила проектирования


    Чтобы не возникло казусов: «Я вырезал снежинку, а она у меня рассыпалась» я хочу ознакомить всех с простыми правилами грамотного проектирования.

    Снежинка состоит из линий разреза. Для снежинки есть верхняя линия разреза, которая обязательно должна пересекать обе стороны:



    Дальше могут быть внутренние вырезы. Их обязательное условие — пересекать только одну сторону:



    Ну и наконец у самой последней, нижней линии, вырезающей центр — могут быть пересечения с обоих сторон:



    Если вы хотите вырезать не снежинку, а шаблон (например для нанесения на стекло), то у вас в распоряжении есть только одна верхняя линия. Никаких внутренних вырезов.

    В заключение


    Я думаю я опоздал с софтом, и снежинки у большинства уже нарезаны. Однако если это не так — я буду рад, если программа поможет вам сделать что-то замечательное. Так же буду рад, если найдете баги ;)

    Всем новогоднего настроения, хороших праздников и удачи в будущем году.

    Спасибо за внимание!

    Upd.
    Пример снежинок, спроектированных в SnowFlaker и вырезанных мной на какой то офисной бумаге стандартной плотности:
    вырезал небрежно, тапком не кидать
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 43
    • +12
      Толковый подход к манипуляции сплайнами и тангентами. Удобнее даже чем в Иллюстраторе!
      • НЛО прилетело и опубликовало эту надпись здесь
      • +2
        Браво!
        • +1
          Вот это вовремя! Спасибо!
          • 0
            Здорово! Такое в CADе реально? Пыталась что-нибудь вырезать, но бумага д.б. тоньше обычной для печати (80 г/м2).
            • +5
              В этом CAD-е нет. Он очень сильно заточен под снежинки сейчас, и можно сделать только шестиугольные формы. За 2 дня разработки это максимум, что я успел.
            • +1
              www.gismeteo.ru/cards/flakes/
              В прошлом кажется году запущено было
              • 0
                Хм… неплохо, но слишком сыро.
                • 0
                  Слизали отсюда. Там оно с начала нулевых висит, по крайней мере в 2002 я её уже пользовал. Можно даже в истории сообщений ссылку найти на старые снежинки.
              • +9
                Вот на такие снежинки в ВК навели:



                Шрёдингер
                Эйнштейн
                Кюри

                https://vk.com/leprum
                • +2
                  Вот только на бумаге стандартной плотности вряд ли получится.
                  1) Даже если разгладить утюгом после всего, то всё равно будет складываться под собственным весом и малой площадью соединения
                  2) Внешние части довольно сложно режутся (из-за толщины), а про внутренние я вообще молчу.
                  3) Опять же идеально сложить пополам толщина бумаги не даст, по этому левое и правое отображение не сходятся.

                  А так задумка классная.
                  • 0
                    Открою вам секрет: такие вещи режут не ножницами, а канцелярским ножом. Так что вырезать это как раз никаких проблем лично я не вижу. Тем не менее, это рендер.
                  • +3
                    Источник:
                    Deck the halls with Nobel physicists

                    Там же есть видео, как сделать снежинки
                  • +1
                    Прекрасно! Отличный подарок! А экспорт в векторный формат есть?
                    • +1
                      Пока нет. Но сделать его совершенно не сложно. Может быть сделаю, но уже не в этом году.
                      • 0
                        Хорошо бы в SVG сразу… Отличная идея!
                    • +5
                      Офигенно. Нужно больше постов по тегу «из пушки по воробьям»!
                      • +10
                        Нужен экспорт в DXF, тогда можно будет вырезать на фрезерном станке или лазерном резаке…
                        • +1
                          Или печатать на 3D-принтере. Или сделать робота для вырезания…
                          • 0
                            К фрезеру есть спец. флюгерный нож — как раз для таких дел.
                        • +4
                          Молодому стартапу требуется специалист по созданию снежинок. Опыт от 3-х лет. Достойная з/п.
                          • 0
                            Скажите, а работа с сплайнами реализуется каким-то готовым программным средством (библиотекой)?
                            • +2
                              Нет, работа со сплайнами написана целиком мной.
                              • 0
                                Здорово! А вообще есть желание сделать удобный редактор, заточенный на максимальное юзабилити в создании и векторных объектов?
                                • 0
                                  Да не особо. По крайней мере пока.
                            • 0
                              Мама на днях спрашивала такую программу, спасибо. Передам ей на тестирование.
                              • +2
                                Знаете, чего не хватает? Четырёх- и восьмиконечных снежинок.
                                • 0
                                  Таких не бывает.
                                • +2
                                  немного попроще, но зато в браузере rectangleworld.com/PaperSnowflake/
                                  • 0
                                    А складывания в восемь раз не предусмотрено? (Пополам, пополам, пополам, пополам :-) Отец так в детстве учил, потом заметил что у Перельмана в «Занимательных задачах и опытах» тоже такой способ есть.
                                    • 0
                                      Настоящая снежинка — шестиугольная. Вот только её складывать сложнее. Для этого я специально добавил линию для складывания.
                                      Кроме того, шестиугольную снежинку и вырезать легче, т.к. надо прорезать 12 слоев бумаги, а не 16.
                                      Так что выбирая между шестиугольной и восьмиугольной — выбрал шести.
                                      • При складывании в 4 раза (не в 8) получается слишком толстая «заготовка», и при разрезании получается некрасиво
                                    • 0
                                      Отличная идея. Можно портировать на Андроид
                                      • 0
                                        Увы, в таком виде нельзя. Неудобно пальцем тыкать по мелким точкам. Нужно пересматривать интерфейс.
                                      • 0
                                        теперь нужно сервис типа thingiverse сделать, для снежинок :)
                                        • 0
                                          Спасибо, залип.
                                          • 0
                                            Делал именно таким методом на адобе флеш. Делается быстро (если знать, сколько будет 360 / 6), редактировать снежинки удобно, изменения отображаются в реальном времени. Можно и анимацию сразу прикрутить, градиенты, блеск, стразики и блекджек. Но инженерам наверно в каде удобнее…

                                            PS: ждем мануал, как рисовать квадратики в экселе!
                                            • 0
                                              Вот для iOS похожая штука. И флэш версия.
                                              • 0
                                                А вырезать все эти выкрутасы как? ))
                                                • 0
                                                  Очень уж неудобно вырезать снежинку в слепую,

                                                  Не надо мучать инвалида.

                                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.