По мере приближения праздников люди могут подумать о поделках из дерева своими руками и подарить им подарки. Но часто возникает разрыв между проектированием объекта и поиском наилучшего способа его создания.
Теперь исследователи из Вашингтонского университета создали Carpentry Compiler — цифровой инструмент, позволяющий пользователям разрабатывать проекты в области деревообработки. После разработки проекта инструмент создает оптимизированные инструкции по изготовлению на основе материалов и оборудования, доступных пользователю. Команда представила это исследование 19 ноября на выставке SIGGRAPH Asia в Брисбене, Австралия.
«Чтобы создать хороший дизайн, вам нужно подумать о том, как он будет создаваться», — сказала старший автор Адриана Шульц, доцент Школы компьютерных наук и компьютерных наук Пола Г. Аллена. Инженерное дело. «Затем у нас возникает очень сложная проблема оптимизации инструкций по изготовлению, в то время как мы также оптимизируем дизайн. Но если вы думаете и о дизайне, и о производстве как о программах, вы можете использовать методы языков программирования для решения проблем в столярных работах, что действительно круто. . «
Для Carpentry Compiler исследователи создали систему под названием Hardware Extensible Languages for Manufacturing, или HELM. HELM состоит из двух разных языков программирования: языка высокого уровня для проектирования объекта и языка низкого уровня для инструкций по изготовлению.
«Допустим, я хочу сделать кусок дерева, разрезанный под углом 45 градусов», — сказал Шульц. «В пользовательском интерфейсе дизайна я создаю рамку, а затем рисую линию там, где я хочу, чтобы был разрез, и говорю компьютеру:« Уберите эту часть ». Это язык высокого уровня. Затем язык низкого уровня говорит: «Возьмите пилу два на четыре, возьмите отрезную пилу, установите отрезную пилу под углом 45 градусов, совместите пиломатериал с отрезной пилой и нарежьте». ‘»
Когда пользователь проектирует объект с использованием языка высокого уровня, который похож на стандартное программное обеспечение САПР, компилятор проверяет возможность проектирования на основе того, какие инструменты и материалы, указанные пользователем, у них есть. Когда пользователь заканчивает проектирование, компилятор предлагает набор оптимальных инструкций по изготовлению, основанных на различных затратах.
«Если вы хотите сделать книжный шкаф, у вас будет несколько вариантов его изготовления», — сказал Шульц. «Один может использовать меньше материала. Другой может быть более точным, потому что он использует более точный инструмент. А третий быстрее, но требует большего количества материала. На всех этих планах делается один и тот же книжный шкаф, но они не идентичны с точки зрения стоимость. Это примеры компромиссов, которые может изучить дизайнер «.
Компилятору приходится просеивать огромное количество возможных комбинаций инструкций, чтобы найти лучшие. Но если он обращается с инструкциями по изготовлению как с программой, то может использовать уловки программирования, чтобы упростить поиск и выбрать перспективных кандидатов.
«В одной программе может быть хороший способ сделать край стола, в другой — хороший способ сделать ножки», — сказал соавтор Захари Татлок, доцент школы Аллена. «И мы можем найти их и перекомбинировать, чтобы составить лучший общий план».
В настоящее время Carpentry Compiler оптимизирует производственные планы с учетом времени и точности изготовления. В будущем команда хотела бы учитывать ориентацию зерен и неопределенность при использовании определенных типов инструментов. После этого команда надеется распространить эту идею на более сложные проекты, такие как проект, требующий обработки дерева и 3D-печати.
«Будущее производства — это возможность создавать разнообразные, настраиваемые высокопроизводительные детали», — сказал Шульц. «Предыдущие революции были в основном связаны с производительностью. Но теперь речь идет о том, что мы можем сделать. И кто может это сделать».