ВОПРОС реализован ли средствами CANDLE поиск центра отверстия

Статус
В этой теме нельзя размещать новые ответы.
  • Последнее редактирование:
Последнее редактирование:
Зачем делать лишние вычисления, если в конце присваивать X и Y нули? При левом подводе обнулять X, при правом, делить результат, присваивать значение и ехать к нулю X, аналогично и для Y.
Я и вручную так делаю.
Вот как программно взять данные касания и поделить пополам, без макроса, это уже проблема, т. к. сижу пока в 1.1.7., че-то 1.2.12 не вкатила...
Я не нашел, где я присваиваю нули X и Y?
Я пробником нахожу центры двух штырьков, нахожу середину между ними по х и у, вывожу в эту точку шпиндель и обнуляю систему координат в этой точке.
Играться с обнулением координаты при отводе я бы не советовал, так как не уверен, что шпиндель остановится сразу при разрыве контакта. По инерции он может пройти еще какое то расстояние и остановиться на каком то расстоянии от штырька. соответственно мы будем отталкиваться от неправильной координаты. Поэтому нужно запоминать и вычислять.
И потом, как я помню, параметр vars.PRBy дает абсолютные координаты станка, а в макросе мы используем относительные координаты.
В candle 1.1.7 тоже есть кнопки 1,2,3,4. в них тоже можно установить код макроса. Код поиска "стенки" будет такой:

( f-скорость по XY
( ff-скорость отхода
( r>0, d>0 стенка на тебя
( r<0, d<0 стенка от тебя
G21G91;
{var f = 100;var ff = 10; var r = -30; var d = -2};

G38.2Y{-r}F{f};
G38.4Y{d}F{ff};
{var q = vars.PRBy};

G90G1Y{q};

код поиска центра между "стенками" по Y, будет такой:

G21G91;
{var f = 100;var ff = 10; var r = -30; var d = -2};

G38.2Y{-r}F{f};
G38.4Y{d}F{ff};
{var q1 = vars.PRBy};
G38.2Y{2*r}F{f};
G38.4Y{-d}F{ff};
{var q2 = vars.PRBy};
{var q = (q1+q2)/2};

G90G0Y{q};

В конце, шпиндель должен выйти в середину между "стенками".
 
  • Последнее редактирование:
Последнее редактирование:
Поиск центра в отверстии произвожу кодом одной из программ Candle. Долго разбирался, пока понял для чего этот код. В версии 1.2.8b уже прописано было на программируемой кнопке 1:
G21G91;
{var f = 100; var r = 10; var d = 1}G38.2X{r}F{f};
{var q = vars.PRBx}G0X{-d};
G38.2X{-r};
G0X{(q - vars.PRBx) / 2};
G38.2Y{r};
{var q = vars.PRBy}G0Y{-d};
G38.2Y{-r};
G0Y{(q - vars.PRBy) / 2}

На сколько я понял, изучая этот код, то получается следующее:
var f = 100 - подача поиска
var r = 10 - должно быть больше половины диаметра отверстия.
var d = 1 - диаметр зонда (Всё тот же вывод "Зонд Z"

Выставляем приблизительно в центр и запускаем код, всё... Через минуту центр найден.
Ваши сообщения автоматически объединены:

На программируемой кнопке 2, всё в той же версии Кренделя, реализован поиск центра для вала, сейчас только разобрался с ним... Вот что там прописано:

G21G90;
{var f = 100; var r = 10; var d = 1; var h = 10}G0X{r};
G0Z{-h};
G38.2X0F{f};
G91G0X{d};
{var q = vars.PRBx}G90G0Z0;
G0X{-r};
G0Z{-h};
G38.2X0;
G91G0X-1;
G90G0Z0;
G91G0X{(q - vars.PRBx) / 2 + d};
G90G0Y{r};
G0Z{-h};
G38.2Y0F{f};
G91G0Y{d};
{var q = vars.PRBy}G90G0Z0;
G0Y{-r};
G0Z{-h};
G38.2Y0;
G91G0Y-1;
G90G0Z0;
G91G0Y{(q - vars.PRBy) / 2 + d}

Здесь, как я понял:
var f = 100 - подача при поиске
var r = 10 - на какое расстояние отъезжать от центра для зондирования (радиус + 5...10 мм)
var d = 1 - диаметр зонда
var h = 10 - глубина опускания зонда от поверхности детали (ноль по верху детали)

Так же приблизительно ставим в центр шпиндель (инструмент) и запускаем. Через минуту центр найден.
 
По инерции он может пройти еще какое то расстояние и остановиться на каком то расстоянии от штырька. соответственно мы будем отталкиваться от неправильной координаты.
Ну это решается просто, как и при поиске дома, двойным подходом на разных скоростях, а вот с относительными координатами получается почти также, только со сменой знака при переезде в ноль. Или Вы имели ввиду машинные, вот это можно крайне не рекомендовать трогать. И, да, в 1.2.8 уже готовые макросы есть...
 
  • Последнее редактирование:
Последнее редактирование:
Поиск центра в отверстии произвожу кодом одной из программ Candle. Долго разбирался, пока понял для чего этот код. В версии 1.2.8b уже прописано было на программируемой кнопке 1:
G21G91;
{var f = 100; var r = 10; var d = 1}G38.2X{r}F{f};
{var q = vars.PRBx}G0X{-d};
G38.2X{-r};
G0X{(q - vars.PRBx) / 2};
G38.2Y{r};
{var q = vars.PRBy}G0Y{-d};
G38.2Y{-r};
G0Y{(q - vars.PRBy) / 2}

На сколько я понял, изучая этот код, то получается следующее:
var f = 100 - подача поиска
var r = 10 - должно быть больше половины диаметра отверстия.
var d = 1 - диаметр зонда (Всё тот же вывод "Зонд Z"

Выставляем приблизительно в центр и запускаем код, всё... Через минуту центр найден.
Ваши сообщения автоматически объединены:

На программируемой кнопке 2, всё в той же версии Кренделя, реализован поиск центра для вала, сейчас только разобрался с ним... Вот что там прописано:

G21G90;
{var f = 100; var r = 10; var d = 1; var h = 10}G0X{r};
G0Z{-h};
G38.2X0F{f};
G91G0X{d};
{var q = vars.PRBx}G90G0Z0;
G0X{-r};
G0Z{-h};
G38.2X0;
G91G0X-1;
G90G0Z0;
G91G0X{(q - vars.PRBx) / 2 + d};
G90G0Y{r};
G0Z{-h};
G38.2Y0F{f};
G91G0Y{d};
{var q = vars.PRBy}G90G0Z0;
G0Y{-r};
G0Z{-h};
G38.2Y0;
G91G0Y-1;
G90G0Z0;
G91G0Y{(q - vars.PRBy) / 2 + d}

Здесь, как я понял:
var f = 100 - подача при поиске
var r = 10 - на какое расстояние отъезжать от центра для зондирования (радиус + 5...10 мм)
var d = 1 - диаметр зонда
var h = 10 - глубина опускания зонда от поверхности детали (ноль по верху детали)

Так же приблизительно ставим в центр шпиндель (инструмент) и запускаем. Через минуту центр найден.
У меня эти коды по моему срабатывали не так как я ожидал. Шпиндель уезжал куда попало.
Ваши сообщения автоматически объединены:

Ну это решается просто, как и при поиске дома, двойным подходом на разных скоростях, а вот с относительными координатами получается почти также, только со сменой знака при переезде в ноль. Или Вы имели ввиду машинные, вот это можно крайне не рекомендовать трогать. И, да, в 1.2.8 уже готовые макросы есть...
А зачем вносить заведомо хоть и маленькую, но ошибку? Запомнить получается надежнее.
Сейчас уже не помню. возможно и машинные. Но я зарекся в относительных координатах переезжать по вычисленным из vars.PRBy координатам.
 
У меня эти коды по моему срабатывали не так как я ожидал. Шпиндель уезжал куда попало.
Нужно делать обнуление по осям X и Y! (В приблизительном центре искомого отверстия или вала)
Ваши сообщения автоматически объединены:

Приблизительно выставил в центр отверстия (на глаз) и жмешь обнуление:
Снимок.JPG
А потом запускаешь поиск. Всё работает как часы.
 
Нужно делать обнуление по осям X и Y! (В приблизительном центре искомого отверстия или вала)
Ваши сообщения автоматически объединены:

Приблизительно выставил в центр отверстия (на глаз) и жмешь обнуление:
Снимок.JPG
А потом запускаешь поиск. Всё работает как часы.
Ясно. Спасибо.
 
А можно ли в макросах candle использовать циклы, условные и без условные переходы? Если да, то какой формат?
 
А можно ли в макросах candle использовать циклы, условные и без условные переходы? Если да, то какой формат?
Циклы не поддерживаются. А условно-безусловно это как?
 
А условно-безусловно это как?
Ну это как при написании программ ( не УП), переход по выполнению условий, или без условный перепрыг. Вот для чего, это вопрос. А вот что GRBL не поддерживает подпрограмм и циклов, сильно печалит, можно было бы сильно укорачивать некоторые УП.
 
serchel, вот здесь читайте, все коды перечислены, которые ГРБЛ поддерживает:
Ваши сообщения автоматически объединены:

Вот для чего, это вопрос
Вспомнил.:) В некоторых стойках есть такая возможность. В УП задаётся проверка, если оператор нажмёт какую-то кнопку (переключатель), то по одной ветке выполняется, если не нажмёт, то по другой.
 
Вспомнил.:) В некоторых стойках есть такая возможность. В УП задаётся проверка, если оператор нажмёт какую-то кнопку (переключатель), то по одной ветке выполняется, если не нажмёт, то по другой.
На Фанюке можно выполнять подпрограммы, допустим описал прцедуру расфрезеровки отверстия или паза, а их на детали десятка 2, обозвал модуль и только в УП обозначаешь координаты разметки и вызов процедуры.
 
Ну это как при написании программ ( не УП), переход по выполнению условий, или без условный перепрыг. Вот для чего, это вопрос. А вот что GRBL не поддерживает подпрограмм и циклов, сильно печалит, можно было бы сильно укорачивать некоторые УП.
Да и поворот координат не поддерживает G68. А так можно было бы на candle остаться
 
не поддерживает G68
И G16, полярной СК нету
Да я Вас умоляю. Candle то тут причём? GRBL по причине жёстко урезанной памяти и скорострельности микроконтроллера в принципе поддерживает минимальный набор команд, годных, чтобы станок хоть чем то шевелил.
 
Ну, я про ГРБЛ и говорю. Кренделю по барабану, какой код передавать.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

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

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать