54,1
рейтинг
27 декабря 2014 в 12:52

Разработка → 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 и вырезанных мной на какой то офисной бумаге стандартной плотности:
вырезал небрежно, тапком не кидать
Александр Бусаров @MrShoor
карма
129,5
рейтинг 54,1
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (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.
      Так что выбирая между шестиугольной и восьмиугольной — выбрал шести.
    • 0
      При складывании в 4 раза (не в 8) получается слишком толстая «заготовка», и при разрезании получается некрасиво
  • 0
    Отличная идея. Можно портировать на Андроид
    • 0
      Увы, в таком виде нельзя. Неудобно пальцем тыкать по мелким точкам. Нужно пересматривать интерфейс.
  • 0
    теперь нужно сервис типа thingiverse сделать, для снежинок :)
  • 0
    Спасибо, залип.
  • 0
    Делал именно таким методом на адобе флеш. Делается быстро (если знать, сколько будет 360 / 6), редактировать снежинки удобно, изменения отображаются в реальном времени. Можно и анимацию сразу прикрутить, градиенты, блеск, стразики и блекджек. Но инженерам наверно в каде удобнее…

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

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

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