Что представляет человек, когда слышит словосочетание "фрезерно-гравировальный станок"? Скорее всего, воображение нарисует ему тяжелое устройство с инструментом, который может перемещаться в плоскости определенного размера и выполнять определенные действия - фрезеровку или гравировку, в зависимости от того, фреза или лазер установлены на станок. В результате такой работы из первоначальной заготовки появляется конечный продукт путем удаления (или прожига) определенных участков.
3D-принтер в плане технологии работы - полностью противоположное устройство. Вместо того, чтобы удалять части заготовки, он как бы понемногу добавляет материал к той части изделия, которая уже напечатана. Именно из-за такого принципа эти технологии называют аддитивными. Конечно, существует множество различных видов 3D-принтеров, на которых можно печатать все, что угодно, начиная оригинальными кулинарными изделиями, и заканчивая целыми домами, но суть при этом не меняется.
Казалось бы, что общего может быть между двумя принципиально разными технологиями? На самом деле, может показаться удивительным, но оба эти устройства работают по одному и тому же принципу. В процессе работы станок перемещается по рабочему полю, на котором лежит заготовка, и в каждой точке он может либо сделать углубление, либо не сделать ничего. Принтер изначально перемещается по пустому полю и в каждой точке может наплавлять или не наплавлять пластик. После того, как работа над одним слоем полностью завершена, инструмент станка должен немного отпуститься (в случае гравировки весь процесс происходит на одной плоскости), а экструдер принтера - подняться.
Зная это, можно примерно представить себе, как создаются программы для таких устройств. Сначала необходимо в специальной программе сконструировать модель - процесс чем-то похож на рисование в Paint-е, только в результате получается объёмное тело, а не фигура на плоскости. После этого запускается постпроцессор, который переводит полученный результат в управляющую программу, которую умеет распознавать контроллер устройства. Такие программы состоят из команд на G-коде - очень примитивном языке программирования, большая часть синтаксиса которого отвечает за способ перемещения, включение и выключение шпинделя, настройку параметров работы, вроде скорости подачи и интенсивности охлаждения. Готовая программа передается на контроллер и выполняется до конца или до первой ошибки.
Некоторые отличия
Несмотря на то, что принцип работы устройств очень похож, все же в подготовке программ имеются некоторые отличия. По большей части они возникают из-за некоторых геометрических соображений. Представьте себе, что мы поставили задачу напечатать на принтере кружку с ручкой. Если начать печатать модель, разместив ее дном на рабочем поле, то при печати ручки возникнет проблема - принтеру будет просто не на что наплавлять пластик этой ручки, поскольку экструдер не может вращаться. Попытка положить модель боком на рабочее поле тоже не даст хорошего результата. Чтобы справиться с этим, при моделировании необходимо расставлять поддержки - дополнительные "стойки", которые послужат опорой для печати. Естественно, после завершения процесса их нужно будет самостоятельно отпилить.
У фрезерного станка в этом плане все гораздо сложнее. Казалось бы, если фреза может перемещаться в трех измерениях, значит с ее помощью можно изготовить совершенно любую вещь, лишь бы заготовка была достаточного размера. К сожалению, это не так - даже самый обычный шар при помощи простого станка изготовить не получится - в лучшем случае можно сделать полушарие. И простого решения у этой проблемы нет - чтобы обойти такое препятствие приходится модернизировать конструкцию станка, путем добавления к нему поворотных осей, способных вращать заготовки. Куда проще обстоят дела с гравировкой, и именно ей будет посвящен следующий раздел.