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

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

О программе В программе мы проектируем контур, по которому будем вырезать, и отправляем на печать. Получаем распечатанный лист, складываем, вырезаем по контуру.Поскольку не у всех есть принтер — изображение для печати можно предварительно растеризовать в png. Чтобы потом распечатать снежинок, прийти домой, сложить и вырезать.Основы работы Теперь к самой программе. Так как во многих случаях проще показать — дальше будет много картинок.Итак интерфейс у неё следующий: 2d84d63dd4b14a3ab3c46ae42eb4f764.pngВ рабочей области 2 линии — это границы листа после сворачивания. Тут мы можем таскать область правой кнопкой мыши, и зумить колесом: 508f79204ec645f684afc89b4f25989a.gifЧтобы создать первый контур — выбираем инструмент линия, и левой кнопкой мыши рисуем ломаную. Как только решили что нам хватит — правой кнопкой выключаем инструмент.b066bff12fc6405ca8f34ec53f033418.gifhint: взять инструмент линия так же можно двойным щелчком на пустой области или на любой вершине.Но пока у нас прямые линии. Давайте изогнем их (хватаем за линию или за специальные контрольные точки, и тащим): 8f3f45c66b5541369a1755352ac33ccf.gifНадо что-то куда-то передвинуть? Выделяем группу вершин, тащим их, или вообще удаляем клавишей Del: fedaf544cf5c45e6b885fe1f073c0003.gifhint: удалять любые примитивы (линии, вершины, заливку) можно щелчком правой кнопкой мыши по примитивуУдалили лишнего? Не беда. Делаем двойной щелчок на линии, и получаем дополнительную вершину: c555ee3a0cc4499b928cbc3547f11096.gifРаботали в Paint-e? Там есть инструмент заливка. Можно обвести определенную область, потом капнуть в центр и залить. Берем заливку, капаем в снежинку, и видим в области просмотра наше чудо: 1f7ef00143684314803c802be313af51.gifВажно! Заливаемый контур должен быть замкнут. Вот что будет, если разомкнуть контур: e2fcbb24ba434f3e9ab46d5a4389d63f.gifРаботает 1 в 1 как заливка в паинте.Заливка не влияет на изображение при печати. Это только для предпросмотра.Сохранение, открытие файла я разжевывать не буду. С печатью все просто, жмем кнопку печати, выбираем принтер, печатаем.Хочу лишь обратить внимание на пункт сохранения снежинки для печати в PNG формате. Он вот тут: 8ba3a0db40844de7920a5ce4737132ce.pngРаботаем с результатом печати После печати у вас будет примерно вот такая картинка: f08bf8ba0ec9419490121a0c2348005e.pngПоскольку тут много больших фото, то как все это сложить смотрим под спойлером

Правила проектирования Чтобы не возникло казусов: «Я вырезал снежинку, а она у меня рассыпалась» я хочу ознакомить всех с простыми правилами грамотного проектирования.Снежинка состоит из линий разреза. Для снежинки есть верхняя линия разреза, которая обязательно должна пересекать обе стороны: 87569f660645453f8662b483e97c1a53.pngДальше могут быть внутренние вырезы. Из обязательное условие — пересекать только одну сторону: bb3002bf2e374512bc9d90cb5b05368b.pngНу и наконец у самой последней, нижней линии, вырезающей центр — могут быть пересечения с обоих сторон: c42361e6fe434e78b563f0a0e5c9a4d8.pngЕсли вы хотите вырезать не снежинку, а шаблон (например для нанесения на стекло), то у вас в распоряжении есть только одна верхняя линия. Никаких внутренних вырезов.В заключение Я думаю я опоздал с софтом, и снежинки у большинства уже нарезаны. Однако если это не так — я буду рад, если программа поможет вам сделать что-то замечательное. Так же буду рад, если найдете баги ;)Всем новогоднего настроения, хороших праздников и удачи в будущем году.Спасибо за внимание!

© Habrahabr.ru