LinuxCNC - стартовая программа

Материал из NikiWiki
Перейти к:навигация, поиск
YourBunnyWroute.pngАвтор предупреждает! Статья не дописана!
Данная статья не дописана и требует до- или, даже, переработки. Примеры и данные в этой статье могут быть не проверены, тесты не отлажены, а информация не действительна. Я постараюсь, чтобы таких статей было по-меньше, но пока они есть. Смотрите: NikiWiki:Отказ от ответственности


Введение

Демонстрационная программа

Вожусь я со станком своим уже несколько недель. И, настроив почти все, что я хотел настроить, уперся в проблему установки компенсации длинны инструмента. На форум ходил, спрашивал у гугла, но все безрезультатно. Не хочет у меня устанавливаться эта самая длинна.

И пришла мне в голову мысль. Что уж стартовую программу, которая надпись LinuxCNC вырезает, уж точно писали и вылизывали много разных умных людей, которые эту самую LinuxCNC знают вдоль и поперек.

И решил я проанализировать этот код. Что в нем написано. А сюда решил записать, чтобы не забыть и, в случае амнезии, быстро восстановить знания.

Анализ

Забегая вперед скажу, что эта программа написана, естественно, "чисто" (насколько мне позволено судить).

Комментарии

В начале, разработчик рекомендует Touch Off Z axes - т.е. проверить уровень инструмента. В этом-то у меня и кроется основная проблема.

Вторая рекомендация - изменить масштаб, если для станка, на котором производится эта работа проект большой или маленький.

Установка начальных значений

#<depth>=2.0

- глубина погружения инструмента в материал.

#<scale>=1.0

- масштаб.

Меня и то и другое устраивает. Далее вызываются коды:

G21

- это выбираются единицы измерения миллиметры;

G90

- смена режима на абсолютные координаты для линейной системы координат;

G64

- приоритет скорости, даже если станку потребуется что-либо "скруглить" для достижения результата;

G40

- отмена коррекции на режущий инструмент. Вот это новость! Сначала говорят Touch Off, а потом отменяют что попросили сделать. Я думаю, что я чего-то не понимаю, но статья, определенно идет в категорию Путаница.

Фрезеровка

G00 Z3.0

- опускаемся на высоту Z=3.0. И эти люди просили меня отюстировать инструмент по оси Z. А если материал толще? А если фреза длиннее? А если что?

G17

- выбираем плоскость обработки XY. А почему не раньше? Зачем было сначала ехать? Я бы разместил эту команду выше, в коде инициализации.

M3 S1000

- включаем шпиндель на скорости 10000 оборотов в минуту;

G0 X[1.75781*#<scale>] Y[0.5*#<scale>]

- переезжаем в точку начала вырезания буквы L

G1 F100.0 Z[-#<depth>]

- погружаем инструмент на глубину -2мм (т.е. всего на 5 от текущей позиции по Z)

(i) Мдель построена таким образом, что 0 по оси Z олицетворяет плоскость заготовки. А мои настройки указывают на 0 станка. Таким образом эта программа вырежет надпись LinuxCNC на поверхности станка, заглубившись на 2 мм. Чего допустить нельзя.
....

- пропустим вырезание всех граней;

G0 Z3.0

- вынимаем инструмент из материала;

G0 X[18.72461*#<scale>]

- едем в точку начала буквы i;

G1 F100.0 Z[-#<depth>]

- опять погружаем инструмент и начинаем вторую букву;

...

Дальше идет много строк кода, по-сути своей похожего. Все операции выполняются либо G01 либо при помощи G02. Рассматривать повторяющиеся команды с одинаковыми по-сути, но разными по-значению параметрами, не вижу смысла.

G2 X[118.27432*#<scale>] Y[23.8889*#<scale>] I[12.16539*#<scale>] J[3.2454*#<scale>]

А вот G02 стоит рассмотреть. В переводе на русский язык в кадре сказано: "Пропилить дугу в точку X и Y из текущей с радиусом вокруг точки I, J.

Окончание

M5

- выключаем шпиндель;

M2

- заканчиваем программу.

Запуск

В том состоянии, что на снимке экрана выше, LinuxCNC не начнет работу, а выдаст предупреждение Программа выходит за минимум оси Z.

Вариантов решения этой задачи ровно два:

  1. Установить отступ по оси Z вручную. Так я делал, кайфа никакого. Да, LinuxCNC выполнит код и "вырежет" надпись, но это не принесет удовлетворения, поскольку Вы не знаете точно, а где же находится этот самый 0 и Ваш инструмент и все Ваши указания будут, пусть и верными, но ручными и умозрительными.
  2. Скорректировать инструмент автоматически. Это куда более правильный вариант. Но над его решением я пока и работаю.