Эта программа позволяет сгенерировать G-код для 3D-принтера, используя код на C++. G-код используется для команд принтеру относительно перемещения и экструзии пластика для создания желаемого объекта. Используется для генерации трижды периодической минимальной поверхности типа Scwartz-Diamond из уравнений описывающих эту поверхность.
Примечание: Этот проект находится в стадии разработки и может содержать баги и ошибки. Пожалуйста, используйте его осторожно. Рекомендуется внимательно проверять G-код перед использованием.
- Поддержка нескольких экструдеров
- Управление температурой сопел и подогрева стола
- Функция очистки экструдера
- Функции перемещения для абсолютного и относительного позиционирования
- Управление слоями
- Различные функции печати, включая линии, дуги и формы
Для использования генератора G-кода выполните следующие шаги:
-
Клонирование репозитория:
git clone https://github.com/Onishenko-sci/G-Code-From-math
-
Адаптация кода в
main.cpp:
Отредактируйте файл
main.cpp
в соответствии с вашими потребностями, добавьте или измените функциональность. -
Сборка проекта и g-code файла:
Используйте
make
для сборки проекта и g-code.make
Программа выполнит генерацию G-кода на основе обновленного кода в main.cpp и сохранит его в директорию проекта.
Инициализирует объект gcode
и открывает файл для записи G-кода.
file_name
: Имя файла для записи G-кода.
Устанавливает активный экструдер.
Устанавливает температуру сопла экструдера.
temperature
: Требуемая температура.extr
: Номер экструдера.and_wait
: Флаг, указывающий, ждать ли достижения температуры (по умолчаниюfalse
).
Устанавливает температуру подогрева стола.
temperature
: Требуемая температура подогрева.and_wait
: Флаг, указывающий, ждать ли достижения температуры (по умолчаниюfalse
).
Запускает процедуру очистки указанного экструдера.
Управляет экструзией (выдвижением) пластика. Используется для откатов.
how_much
: Количество выдвигаемого пластика.
Перемещает печатающую головку в начальное положение (нулевые координаты).
Перемещает печатающую головку в указанное абсолютное положение с заданной скоростью.
where
: Координаты назначения.spd
: Скорость перемещения (по умолчанию3600
).
Перемещает печатающую головку в указанное абсолютное положение по осям X и Y с заданной скоростью.
x
,y
: Координаты назначения.spd
: Скорость перемещения (по умолчанию3600
).
Перемещает печатающую головку в указанное абсолютное положение по осям X, Y и Z с заданной скоростью.
x
,y
,z
: Координаты назначения.spd
: Скорость перемещения (по умолчанию3600
).
Перемещает печатающую головку на указанное относительное расстояние с заданной скоростью.
where
: Вектор относительного перемещения.spd
: Скорость перемещения (по умолчанию3600
).
Перемещает печатающую головку на указанное относительное расстояние по осям X и Y с заданной скоростью.
x
,y
: Расстояние относительного перемещения.spd
: Скорость перемещения (по умолчанию3600
).
Переходит на следующий слой поднимая экструдер на заданную высоту.
layer_height
: Высота слоя.
Печатает линию от текущей позиции с заданной скоростью.
where
: Координаты конечной точки линии.spd
: Скорость печати (по умолчанию0
).
Печатает линию от текущей позиции по осям X и Y с заданной скоростью.
x
,y
: Координаты конечной точки линии.spd
: Скорость печати (по умолчанию0
).
Печатает линию от текущей позиции до указанных координат по осям X и Y с заданной скоростью.
x
,y
: Абсолютные координаты конечной точки линии.spd
: Скорость печати (по умолчанию0
).
Печатает дугу с указанным радиусом, углом и скоростью.
radius
: Радиус дуги.angle
: Угол начальной точки дуги.arc_angle
: Угловой размер дуги (по умолчанию90.0
).spd
: Скорость печати (по умолчанию0
).