Независимый Ювелирный Форум
https://forum.jwiki.ru/

Mach3 макро для определения нулей двумя зарезами и нониусами
https://forum.jwiki.ru/viewtopic.php?f=21&t=1408
Страница 1 из 1

Автор:  Прохожий [ 09 фев 2015, 08:29 ]
Заголовок сообщения:  Mach3 макро для определения нулей двумя зарезами и нониусами

Mach3 макросы для определения нулей двумя зарезами или нониусами:
Y и Z (относительно A) или X и Z (относительно B)

Mach3 недолго уже осталось, но пока что она используется вовсю. Так что может кому пригодятся выложенные тут макро.

Я слабо ориентируюсь во всяких screensets для Mach3, может в каких-то screensets все функции этих макро есть. Но преимущества макро в том, что их можно использовать с любым screenset'ом. Недостаток в том, что возможен конфликт переменных со screenset'ом — подробности далеко ниже.

С этими макро человек, впервые в жизни ищущий нули, может найти их минут за 10, бОльшую часть этого времени сидя сложа руки.

4 пары макросов:

m1111.m1s,
m1112.m1s — определение нулей Y и Z относительно A двумя зарезами. Для 4-х и 5-осных станков.

m1121.m1s,
m1122.m1s — для 5-осных станков. Определение нулей X и Z относительно B двумя зарезами.

m1113.m1s,
m1114.m1s — уточнение нуля Y относительно A по нониусу, без вычислений вручную.

m1115.m1s,
m1116.m1s — уточнение нуля Z относительно A по нониусообразной шкале, тоже без ручных вычислений.

Эти макро использовались очень давно, и я уже толком не помню, были ли в них какие недочёты. Они использовались только на одном станке, так что нельзя сказать, что они тщательно протестированы. К тому же я сейчас повыбрасывал из них всякую лишнюю всячину, так что код изменился. Но вроде всё работает. Но если что, то обломками фрез в меня не бросаться.

Вложения:
Mach3-macros-for-X-Y-Z-zeros-with-Vernier-m1111,m1112,m1121,m1122,m1113,m1114,m1115,m1116.zip [9.34 КБ]
Скачиваний: 4001

Автор:  Прохожий [ 09 фев 2015, 08:41 ]
Заголовок сообщения:  Mach3 макросы для определения нулей Y и Z двумя зарезами

Mach3 макросы для определения нулей Y и Z (относительно A) двумя зарезами:
m1111.m1s и m1112.m1s

Эти макросы ничего не двигают, только изменяют числа в значениях координат Y и Z (и A, если хотите).

Вот есть пластинка воска:
Вложение:
00_wax.gif
00_wax.gif [ 381 байт | Просмотров: 47228 ]


Поставили её в станок:
Вложение:
01_wax-in-mill.gif
01_wax-in-mill.gif [ 4.1 КБ | Просмотров: 47228 ]
Горизонтальность восковки не важна.

Делаем зарез в произвольном месте:
Вложение:
02_1st-notch.gif
02_1st-notch.gif [ 4.17 КБ | Просмотров: 47228 ]
Точность метода падает только если зарез совсем уж рядом с нулём. Можно врЕзаться где-нибудь с краю пластинки, оставив центр для финального контрольного зареза, и остальное пространство для нониуса. Если будет корректироваться и A, то чем дальше от центра — тем точнее, но тоже не принципиально где.

Не меняя положение Y и Z (по X можно двигать куда угодно), запускаем первое макро — m1111.m1s:
Вложение:
03_m1111.png
03_m1111.png [ 28.08 КБ | Просмотров: 47228 ]
Это макро запоминает положение Y и Z и дату и время. В этих макро это называется закладкой. Следует глянуть на Y и Z и дату/время в сообщении макроса, чтобы вскоре их опознать.

Уводим фрезу от восковки и поворачиваем A на 180 градусов:
Вложение:
04_A-180.gif
04_A-180.gif [ 4.17 КБ | Просмотров: 47228 ]

Не меняя положение A, делаем второй зарез так, чтобы верхушки зарезов соприкоснулись, т. е. чтобы их Y и Z совпали. Ну то есть всем известно, как должны выглядеть эти зарезы:
Вложение:
05_2nd-notch.gif
05_2nd-notch.gif [ 4.21 КБ | Просмотров: 47228 ]
Если рука набита и глаз вооружён, то на этом этапе поиск нулей может и закончиться. А например у меня точность руки и глаза далеко не ювелирные, и мне было проще сделать макросы с нониусами, чем пытаться точно совместить зарезы. Так что лезть из кожи вон, стараясь идеально совместить зарезы, не обязательно, можно позже воспользоваться нониусами.

Не меняя положение Y и Z (по X можно двигать куда угодно), запускаем второе макро этой пары — m1112.m1s:
Вложение:
06_m1112.png
06_m1112.png [ 36.3 КБ | Просмотров: 47228 ]
Оно показывает, какая нашлась закладка. Следует глянуть на координаты или время, чтобы убедиться, что всё нормально — что это та закладка, которую только что сделали на первом зарезе.
Нажимаем OK,
и макрос вычисляет нули Y и Z: среднее значение координат первого и второго зарезов:
Вложение:
07_Y-Z-zeros.gif
07_Y-Z-zeros.gif [ 4.43 КБ | Просмотров: 47228 ]
При этом оси никуда на едут, только меняются числа в значениях координат Y и Z. Если теперь послать Y и Z в 0, то они приедут в только что вычисленный ноль — в центр вращения оси A.

Следующим номером программы можно скорректировать A так, что при A=0 восковка станет горизонтально, т. е. вершина первоначального положения первого зареза и вершина второго зареза будут на одной горизонтали, а именно на Z=0:
Вложение:
08_A-zero.gif
08_A-zero.gif [ 6.59 КБ | Просмотров: 47228 ]
Макрос сообщает, что сейчас скорректирует A, если не нажмёте Cancel, и спрашивает, по часовой стрелке крутится A или против. Насколько я помню, в данном случае по часовой стрелке — это A крутится в плюс по часовой стрелке, если смотреть на голову A с положительного конца оси A на отрицательный. Снова оси никуда на едут, только меняется число в значении координаты A.

Эти 2 макро, так же как и остальные макро, после выполнения каждой своей задачи выдают соответствующее сообщение в строке сообщений. Если нажать Cancel, то макро закроется, ничего не сделав, и соответственно сообщения в строке сообщений не будет.

Для полировки нулей Y и Z — дальше (через 1 пост) следуют нониусные макро.

Автор:  Прохожий [ 09 фев 2015, 08:44 ]
Заголовок сообщения:  Mach3 макросы для определения нулей X и Z двумя зарезами

Mach3 макросы для определения нулей X и Z (относительно B) двумя зарезами:
m1121.m1s и m1122.m1s

Всё то же самое, что и в предыдущих двух макросах, но для нулей X и Z для восковки, вращающейся по оси B.

Выглядящая ненужной фича корректировки координат поворотной головы – это рудимент другого макро, сейчас утерянного, которое по 4-м зарезам поворачивало A так, чтобы ось B была параллельна Y, что важно для 5-осевого станка.

При выходе из Mach3 дата закладки забывается (хотя раньше вроде сохранялась, не помню точно), но координаты сохраняются, так что при необходимости между первым и вторым зарезом можно закрыть Mach3.

Автор:  Прохожий [ 09 фев 2015, 08:54 ]
Заголовок сообщения:  Mach3 макросы для уточнения нуля Y (относительно A) нониусом

Mach3 макросы для уточнения нуля Y (относительно A) нониусом:
m1113.m1s и m1114.m1s

Соответствующая пара для X (относительно B) утеряна, но эти макросы очень простые и короткие, на порядок короче их описания, так что переделать макро для Y в макро для X легко и просто.

Первый макрос m1113.m1s вырезает нониус, затем человек рассматривает его (нониус), считает прорези и запускает второй макрос m1114.m1s, в который вводит номер совпадающей прорези. Макрос m1114.m1s корректирует значение Y, ничего не двигая.

Вставляем в станок плитку воска:
Вложение:
10_wax.gif
10_wax.gif [ 381 байт | Просмотров: 47228 ]

Первую прорезь делаем вручную. Это будет середина шкалы. Она не обязана быть в середине восковки, может быть в любом месте. Наверно имеет смысл расположить шкалу так, чтобы место Y=0 осталось нетронутым, чтобы в конце процесса сделать там финальный контрольный зарез.

X: насколько глубоко по X сделана первая прорезь, настолько же глубоко по X будут делаться и остальные прорези. В этом смысл первой ручной прорези.
Фреза будет ходить 5 мм по X, так что прорезь никак не должна быть глубже 4 мм.

Y: первая шкала будет резаться на 10.3 мм в обе стороны от первой ручной прорези.
Потом A повернётся на -180, и вторая шкала будет резаться зеркально по Y, прямо над первой шкалой.

Z: т. к. первая прорезь будет прорезана макросом снова, когда будут делаться и остальные прорези, то может быть имеет смысл прорезать первую прорезь на пару миллиметров выше ноля. Макрос будет резать все прорези на Z=0. Первая ручная прорезь нужна только для задания глубины по X.
Для выхода из прорези фреза будет подыматься на 4 мм.

F: G1 движения в воздухе будут делаться с той feedrate, которая задана в Mach3. Режущие G1 движения в воске будут в 2 раза медленнее.

A: при повороте A фреза убирается на 5 см вправо и 5 см вверх.

Итак, сделали первую прорезь и запускаем m1113.m1s.
Скрипт выдаёт окошко с вышесказанным текстом, и сразу после нажатия OK приступает к работе и больше уже ничего не спрашивает.
Первым делом проверяется наличие необходимого пространства: фреза идёт в Z+50, затем сдвигается на +50 по X и заходит в крайние точки по Y: чтобы если что-то с чем-то столкнётся, то сразу, пока оператор смотрит, а не потом, когда он отвлечётся.

Затем режет первую шкалу — с шагом 1 мм:
Вложение:
11_Y-vernier-1.gif
11_Y-vernier-1.gif [ 1.03 КБ | Просмотров: 47228 ]
Каждая 5-я прорезь выделена, чтобы легче считать.

Затем фреза убирается на +50 по Z и X, и A поворачивается на -180:
Вложение:
12_A-180.gif
12_A-180.gif [ 1.02 КБ | Просмотров: 47228 ]

Режется вторая шкала — с шагом 1.01 мм (рисунок не в масштабе, а как получилось):
Вложение:
13_Y-vernier-2.gif
13_Y-vernier-2.gif [ 1.45 КБ | Просмотров: 47228 ]
На этом макрос свою работу заканчивает, сообщив в строке сообщений «To correct Y if needed, run M1114».
А мы рассматриваем нониус и ищем совпадающие метки.
Положение фрезы сохранять не требуется. Можно отодвинуть фрезу и вынуть восковку.

Прорези нумеруются от -10 до +10 в направлении от -Y к +Y,
в том положении восковки, в котором закончилась резка — т. е. шкала с выделенными 5-ми метками внизу:
Вложение:
14_Y-matching-notch.gif
14_Y-matching-notch.gif [ 3.59 КБ | Просмотров: 47228 ]
Средняя метка, где резалась ручная метка — это №0.
Если ноль идеальный, то средние метки совпадают, и никакой коррекции не нужно.
На рисунке совпадают метки номер -5.
Тут нужно быть внимательным — не сдвинуты ли шкалы настолько сильно, что сдвиг больше расстояния между метками, т. е. больше 1 мм. При таком плохом нуле к нониусу обращаться рано.

Запоминаем номер совпавшей метки и запускаем следующее макро: m1114.m1s:
Вложение:
15_m1114.png
15_m1114.png [ 29.53 КБ | Просмотров: 47228 ]
Выбираем номер совпавшей метки и нажимаем OK.
Ничего никуда не едет, только изменяется значение координаты Y, о чём и сообщается в строке сообщений.
Всё.

Если теперь послать Y в 0, то фреза приедет в скорректированный 0.

Внутри m1114.m1s — две задержки по 0.222 секунды. Если кажется, что макрос тормозит — то это не глюки компьютера, а так надо для надёжности. Хотя в данном конкретном случае это лишнее.

Автор:  Прохожий [ 09 фев 2015, 09:00 ]
Заголовок сообщения:  Mach3 макросы для уточнения нуля Z нониусоподобной шкалой

Mach3 макросы для уточнения нуля Z (относительно A) нониусоподобной шкалой:
m1115.m1s и m1116.m1s

Это не нониус. Я не знаю, как называется такая шкала. Поэтому тут она называется нониусоподобной.

Соответствующая пара макросов для Z относительно B тоже утеряна.

Всё то же, что и в предыдущей паре макросов:
первый макрос m1115.m1s вырезает нониусоподобную шкалу, затем человек рассматривает её, считает прорези и запускает второй макрос m1116.m1s, в который вводит номер совпадающей прорези. Макрос m1116.m1s корректирует значение Z, ничего не двигая.

Одна шкала точно такая же, как и в макросе для Y: шаг 1 мм, каждая 5-я метка выделена для лёгкого счёта.
В другой шкале шаг тоже 1 мм, но каждая метка сдвинута относительно соседней на 0.01 по Z:
Вложение:
21_Z-vernier-like.gif
21_Z-vernier-like.gif [ 1.42 КБ | Просмотров: 47228 ]

Метки нумеруются точно так же, как и с нониусом: от -10 до +10 в направлении от -Y к +Y,
в том положении восковки, в котором закончилась резка — т. е. шкала с выделенными 5-ми метками внизу:
Вложение:
22_Z-matching-notch.gif
22_Z-matching-notch.gif [ 3.56 КБ | Просмотров: 47228 ]
При идеальном нуле по Z совпадают средние метки №0.
На рисунке совпадают где-то -6 или -5. Ну возьмём -6.
Запускаем M1116, выбираем -6, нажимаем OK.
Всё.

Для глубокого морального удовлетворения делаем финальные контрольные зарезы с Y=0 и Z=0 и любуемся, как они совпадают.

Автор:  Прохожий [ 09 фев 2015, 09:04 ]
Заголовок сообщения:  Другое использование нониусных макро для определения нулей

Другое использование нониусных макро

Т.к. вышевыложенные нониусные макро
не зависят от screenset,
не используют никаких инструментов кроме самого станка,
занимают всего несколько минут,
результат не зависит от субъективных факторов типа умения/неумения человека или настроения,
и главное — результат легко выразить в двух числах,
то можно, например,

сравнить два станка, расположенные в разных местах,

периодически запускать макросы и наблюдать, деградируют ли нули и/или выравнивание осей,

оценить станок перед покупкой, прежде чем решать, стоит ли ехать смотреть его.
Можно, например, попросить продавца выполнить m1113 и m1115 близко к поворотной голове и потом как можно дальше от неё, и увидеть в цифрах, насколько не параллельна ось A.

m1114.m1s можно использовать с нониусом, опубликованным тут:
Т.к. шкалы такие же, то должно работать.
Т.е. вырезав нониус, не нужно ломать голову, что делать с номером совпавшей метки: прибавить или отнять, целиком или половину, и т. п., а можно запустить M1114 и выбрать нужный номер.

Автор:  Прохожий [ 09 фев 2015, 09:09 ]
Заголовок сообщения:  Технические и другие подробности макро для определения нулей

Технические и другие подробности макросов для определения нулей

Идея нониусных макросов и их траектория фрезы взяты в некоторой степени из G-программки, опубликованной в теме Нониус для установки 0 по Y.
Там не совсем понятно, чьё это изделие: Сергея Фокина, Л. Князева или их совместное.

Запуск макросов:
Запускаются макросы набором их имени в строке MDI (Manual Data Input). Набирать нужно только имя макроса, без расширения файла. Т.е. не
m1111.m1s
а
m1111
Регистр букв не важен.
Куда положить файлы макросов, можно прочитать в последнем абзаце поста Бакап настроек.

Совместимость:
Макросы для определения нулей двумя зарезами
m1111.m1s, m1112.m1s, и
m1121.m1s, m1122.m1s
используют следующие UserDRO и UserLabel:

m1111.m1s, m1112.m1s:
UserDRO 1112, 1113, 1122, 1123
UserLabel 111

m1121.m1s, m1122.m1s:
UserDRO 1111, 1113, 1121, 1123
UserLabel 111

Маловероятно, но возможно, что screenset тоже использует эти переменные. Тогда будет конфликт. Поэтому лучше сначала узнать у автора screenset'а, не используются ли в нём эти переменные. Или сделать бакап профайла Mach3. Какой файл бакапить, можно прочитать в посте Бакап настроек.

Нониусные макросы конфликта вызвать не могут, т. к. ничего в UserDRO и UserLabel не пишут.

Две пары макро для определения нулей Y, Z и X, Z не совсем продуманно сделаны в том плане, что они используют одни и те же переменные, и в результате затирают дату и Z, сохранённые ранее другим макро. Но на практике это совершенно не важно, ведь на практике определение нулей Y, Z и X, Z не происходит одновременно.

Если нужно изменить номера конфликтующих переменных, то делается это легко и просто:
в начале текста каждого макроса есть одни и те же строки:
const MachineX = 1111 : const ProgramX = 1121
const MachineY = 1112 : const ProgramY = 1122
и т. д.
Нужно в
m1111.m1s, m1112.m1s, и
m1121.m1s, m1122.m1s
заменить числа 1111, 1121, или какие там конфликтуют, на другие.

Автор:  SVP [ 09 фев 2015, 12:20 ]
Заголовок сообщения:  Re: Mach3 макро для определения нулей двумя зарезами и нониу

Кто-нибудь подтвердите, что смогли воспользоваться и прикрепим...

Автор:  Прохожий [ 01 мар 2015, 12:03 ]
Заголовок сообщения:  G-code файлы для вызова макросов

G-code файлы для вызова макросов

Чтобы не запоминать номера макросов и не набирать их в строке MDI, можно вызов макросов поместить в G-code.
Тогда G-code файл, вызывающий макро, можно запускать привычным путём — кнопкой Load или в меню File / Load G-Code.

G-code файлы можно поместить куда угодно и переименовать как угодно.
Файлы макросов по-прежнему должны быть в C:\Mach3\macros\НазваниеПрофайла

Приатачены следующие файлы:

Определение нулей Y и Z относительно A двумя зарезами:
YZ-A_1.txt Запускается после первого зареза (запускает m1111)
YZ-A_2.txt Запускается после второго зареза (запускает m1112)

Определение нулей X и Z относительно B двумя зарезами:
XZ-B_1.txt Запускается после первого зареза (запускает m1121)
XZ-B_2.txt Запускается после второго зареза (запускает m1122)

Нониус Y (относительно A):
Vernier-Y_1.txt Режет нониус (запускает m1113)
Vernier-Y_2.txt Корректирует Y (запускает m1114)

Нониусовидная шкала Z (относительно A):
Vernier-like-Z_1.txt Режет нониусовидную шкалу (запускает m1115)
Vernier-like-Z_2.txt Корректирует Z (запускает m1116)

--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---

Например, для определения нуля Y по нониусу:
запускаем g-code файл Vernier-Y_1.txt
рассматриваем вырезанный нониус
запускаем g-code файл Vernier-Y_2.txt
всё.

--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---

Макросы находятся во вложении в первом посте этой темы:
Mach3 макросы для определения нулей двумя зарезами или нониусами.

Продолжение темы Mach3 макро — в посте «Mach3 макросы для изменения ускорения» в теме про пропуск шагов.

Вложения:
Комментарий к файлу: Определение нулей Y и Z относительно A двумя зарезами, файл 1/2
YZ-A_1.txt [210 байт]
Скачиваний: 3848
Комментарий к файлу: Определение нулей Y и Z относительно A двумя зарезами, файл 2/2
YZ-A_2.txt [201 байт]
Скачиваний: 3792
Комментарий к файлу: Определение нулей X и Z относительно B двумя зарезами, файл 1/2
XZ-B_1.txt [210 байт]
Скачиваний: 3852
Комментарий к файлу: Определение нулей X и Z относительно B двумя зарезами, файл 2/2
XZ-B_2.txt [201 байт]
Скачиваний: 3849
Комментарий к файлу: Нониус Y (относительно A), файл 1/2
Vernier-Y_1.txt [212 байт]
Скачиваний: 3833
Комментарий к файлу: Нониус Y (относительно A), файл 2/2
Vernier-Y_2.txt [209 байт]
Скачиваний: 3793
Комментарий к файлу: Нониусовидная шкала Z (относительно A), файл 1/2
Vernier-like-Z_1.txt [222 байт]
Скачиваний: 3844
Комментарий к файлу: Нониусовидная шкала Z (относительно A), файл 2/2
Vernier-like-Z_2.txt [219 байт]
Скачиваний: 3876

Автор:  mordhard [ 21 фев 2021, 02:16 ]
Заголовок сообщения:  Re: G-code файлы для вызова макросов

Здравствуйте, не могли бы вы проконсультировать по поводу обнуления 5 осевого станка. Выше говорилось о макросе для 5 осевого станка, не могли бы вы им поделится?

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/