- Регистрация
- 04.11.2019
- Сообщения
- 13
- Реакции
- 10
- Баллы
- 23
- Город
- Россия, респ Башкортостан
- Имя
- Евгений
Последнее редактирование:
Я не нашел, где я присваиваю нули X и Y?Зачем делать лишние вычисления, если в конце присваивать X и Y нули? При левом подводе обнулять X, при правом, делить результат, присваивать значение и ехать к нулю X, аналогично и для Y.
Я и вручную так делаю.
Вот как программно взять данные касания и поделить пополам, без макроса, это уже проблема, т. к. сижу пока в 1.1.7., че-то 1.2.12 не вкатила...
Я пробником нахожу центры двух штырьков, нахожу середину между ними по х и у, вывожу в эту точку шпиндель и обнуляю систему координат в этой точке.
Играться с обнулением координаты при отводе я бы не советовал, так как не уверен, что шпиндель остановится сразу при разрыве контакта. По инерции он может пройти еще какое то расстояние и остановиться на каком то расстоянии от штырька. соответственно мы будем отталкиваться от неправильной координаты. Поэтому нужно запоминать и вычислять.
И потом, как я помню, параметр 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};
В конце, шпиндель должен выйти в середину между "стенками".