Сегодня проверил алгоритм, понравился, очень простой. Мой намного "тяжелее". Спасибо за совет.Сергей Саныч писал(а):Это тот самый случай, про который сказано: "Нет ничего практичнее хорошей теории".
Вот что получилось, код на одно направление, остальные два аналогичны.
void axayaz()//ax>ay и ax>az
{
long os=0;long os1=0;// погрешность
long nx=0;
os=2*ay-ax;// погрешность ay
os1=2*ay-az;// погрешность az
while (nx<ax)
{
if(vn>vx && ax-nx>q) { skp();}//ускорение
if(vn<=4*vx && ax-nx<q) { skm();}// торможение
perx();nx++; // перемещение x всегда шагает
if(os>=0){pery();os=os+2*(ay-ax);} else os=os+2*ay; // y шагает если остаток больше нуля
if(os1>=0){perz();os1=os1+2*(az-ax);} else os1=os1+2*az;// z шагает если остаток больше нуля
pz(); stp();// папуза, стоп
}nx=0;
lcdxyz();//индикация.
}
Завтра проверю на станке.