G54 - переключение на заданную оператором систему координат
Автор предупреждает! Статья не дописана! Данная статья не дописана и требует до- или, даже, переработки. Примеры и данные в этой статье могут быть не проверены, тесты не отлажены, а информация не действительна. Я постараюсь, чтобы таких статей было по-меньше, но пока они есть. Смотрите: NikiWiki:Отказ от ответственности |
Команда G54 и до команды G58 включительно применяется для установки относительной системы координат с порядковым номером от 1 до 5 из 254 возможных, например:
N001 G54 N002 G00 X2 Y2 Z2
В приведенном примере станок переместиться в позицию, указанную в INI файле, включив режим относительных координат и, если эта система начинается, например, в позиции X=10,Y=10,Z=10? то команда в строке N002 переместит шпиндель в абсолютную позицию X=12,Y=12,Z=12, а совсем не X=2,Y=2,Z=2
Данная команда удобна для изготовления большого количества одинаковых деталей из одной заготовки. Всего относительных систем координат может быть 254 штуки.
Параметры систем координат задаются G10 или хранятся в ini файле.
Данная команда является модальной. Т.е. ее включение гарантирует переход станка в относительную систему координат пока не будет применена другая команда этой же группы.
Обратите внимание на тот факт, что команда G54 и ее "клоны" вызовет ошибку выполнения при включенной компенсации на радиус инструмента. Иными словами вызов G40 перед сменой системы координат почти обязателен. |
G-код выбора системы координат | CS
Система координат |
X | Y | Z | A | B | C | U | V | W | R |
---|---|---|---|---|---|---|---|---|---|---|---|
G54 | 1 | 5221 | 5222 | 5223 | 5224 | 5225 | 5226 | 5227 | 5228 | 5229 | 5230 |
G55 | 2 | 5241 | 5242 | 5243 | 5244 | 5245 | 5246 | 5247 | 5248 | 5249 | 5250 |
G56 | 3 | 5261 | 5262 | 5263 | 5264 | 5265 | 5266 | 5267 | 5268 | 5269 | 5270 |
G57 | 4 | 5281 | 5282 | 5283 | 5284 | 5285 | 5286 | 5287 | 5288 | 5289 | 5290 |
G58 | 5 | 5301 | 5302 | 5303 | 5304 | 5305 | 5306 | 5307 | 5308 | 5309 | 5310 |
G59 | 6 | 5321 | 5322 | 5323 | 5324 | 5325 | 5326 | 5327 | 5328 | 5329 | 5330 |
G59.1 | 7 | 5341 | 5342 | 5343 | 5344 | 5345 | 5346 | 5347 | 5348 | 5349 | 5350 |
G59.2 | 8 | 5361 | 5362 | 5363 | 5364 | 5365 | 5366 | 5367 | 5368 | 5369 | 5370 |
G59.3 | 9 | 5381 | 5382 | 5383 | 5384 | 5385 | 5386 | 5387 | 5388 | 5389 | 5390 |
Легко видеть, что каждая система координат занимает ровно по 10 переменных (по числу параметров) и начавшись с какого-либо номера, например 5381 занимает непрерывный диапазон "имен" (правильнее сказать "номеров") переменных.
Пример
Сразу оговорюсь, что проверка этого примера через пару дней привела к ошибке. В системе координат откуда ни возьмись появились дополнительные отступы и еще что-то мне, пока, не понятное. По сему пример можно считать неработоспособным.
О сколько нам открытий чудных |
Почему вспомнил - не знаю, но сюда, да и вообще к LinuxCNC - подходящая эпиграмма.
Для примера, "пойдем" в файл linuxcnc.var и сменим указания для 2ой системы координат (G55). Нас интересуют переменные: 5241, 5242 и 5243, отвечающие за координаты X,Y и Z соответственно. Нам ведомо, что позиции HOME станка находятся в точках X=1, Y=317, Z=99 (мы же отступили на 1мм от датчиков HOME, чтобы не было желания у них сработать в процессе выполнения программы). Нас же интересует система с началом координат в левом переднем нижнем углу станка (HOME у него в левом заднем верхнем).
Соответственно, пишем в файл linuxcnc.var вот что:
5241 20.000000 5242 20.000000 5243 20.000000
Иными словами, станок командой G00 X0 Y0 Z0 после команды G55 должен приехать в абсолютную позицию X20 Y20 Z20.
Обращаем внимание на тот факт, что переменные:
5221 1.000000 5222 317.000000 5223 99.000000
установлены ровно туда, где у нас указан "Home position", задаваемый в Step Conf Wizard. Иными словами, станок всегда использует систему координат номер один (G54), что расходится с той документацией, что я находил в интернете, где систем координат вообще 254, но, видимо, это "упрощение" LinuxCNC. Или, что скорее - я еще не нашел всех способов задания системы координат.
Протестируем наши настройки кодом из файла testG55.ngc (тут он приведен целиком, посему отдельной загрузки для него не предусмотрено):
% N0000 G17 G49 G21 G40 G92.1 ( перейдем в старотовой системе координат в позицию 0,0,0) N0010 G00 X0 Y0 Z0 ( нарисуем квадратик в текущей позиции) N0021 G01 X20 F200 N0022 G01 Y20 F200 N0023 G01 X0 F200 N0024 G01 Y0 F200 ( переключим систему координат на вторую ) N0030 G55 ( переместимся в начало координат новой системы отсчета ) N0040 G00 X0 Y0 (нарисуем второй квадратик, из позиции ) N0050 G01 X20 F200 N0051 G01 Y20 F200 N0052 G01 X0 F200 N0053 G01 Y0 F200 N0060 M30 %
Объяснять тут мало что стоит. Все видно на снимках экрана LinuxCNC.