Страница 2 из 3

Re: Мини токарный станок с ЧПУ

Добавлено: 03 дек 2017, 15:03
sidor094
sidor094 писал(а):Да следующая позиция будет рассчитываться легко.
Прибавить к предидущему углу новый и повернуть ранее рассчитанный радиус

Re: Мини токарный станок с ЧПУ

Добавлено: 07 дек 2017, 14:12
sidor094
Извините.Был не прав.Ваша формула работает.Проверил.Спасибо.Я вычислял синус по таблице ,с последующей интерполяцией для увеличения точности.Ваша формула работает быстрее.

Re: Мини токарный станок с ЧПУ

Добавлено: 07 дек 2017, 16:15
АндрейА
sidor094 писал(а):Извините.Был не прав.Ваша формула работает.Проверил.Спасибо.Я вычислял синус по таблице ,с последующей интерполяцией для увеличения точности.Ваша формула работает быстрее.
Здравствуйте.
Формула взята из интернета(не помню откуда ) просто я переделал ее под себя.
Спасибо что проверили.
Тут вот как раз думаю как мне вводить в свой станок параметры круговой проточки,
в связи с тем, что ввод происходит на месте решил вводить радиус и две точки на окружности.
Будет подразумеваться, что отрезок между точками перпендикулярен лучу проходящему из центра через середину отрезка.
Может другое что-то подскажете буду признателен.
Спасибо.

Re: Мини токарный станок с ЧПУ

Добавлено: 07 дек 2017, 16:23
aegis
АндрейА писал(а):вводить радиус и две точки на окружности.
наверно таки радиус + координаты одной точки. Координаты исходной точки зачем вбивать то)))

Re: Мини токарный станок с ЧПУ

Добавлено: 07 дек 2017, 16:26
АндрейА
aegis писал(а):
АндрейА писал(а):вводить радиус и две точки на окружности.
наверно таки радиус + координаты одной точки. Координаты исходной точки зачем вбивать то)))
А как узнать тогда как располагается окружность проходящая через точку, в системе координат ?
Имеется ввиду где будет центр ?

Re: Мини токарный станок с ЧПУ

Добавлено: 07 дек 2017, 16:29
aegis
АндрейА, направлением обхода. по или против часовой

Re: Мини токарный станок с ЧПУ

Добавлено: 07 дек 2017, 16:32
АндрейА
aegis писал(а):АндрейА, направлением обхода. по или против часовой
Тогда надо вводить координаты центра, а в моем случае это сложно.
Да и проточку нужно обозначить начало-конец.

Re: Мини токарный станок с ЧПУ

Добавлено: 07 дек 2017, 19:43
sidor094
Андрей,а чего тут думать.Делайте сразу как в жкодах координаты конечной точки(подразумевается что начальную мы знаем и в ней находимся),координаты центра относительно начальной точки или вместо координат центра - радиус.Ну и направление обхода.Находите угол начальной точки ,угол конечной,делите на заданный угол,получаете число углов.ну а затем шагаете по формуле.

Re: Мини токарный станок с ЧПУ

Добавлено: 07 дек 2017, 20:17
АндрейА
sidor094 писал(а):Андрей,а чего тут думать.Делайте сразу как в жкодах координаты конечной точки(подразумевается что начальную мы знаем и в ней находимся),координаты центра относительно начальной точки или вместо координат центра - радиус.Ну и направление обхода.Находите угол начальной точки ,угол конечной,делите на заданный угол,получаете число углов.ну а затем шагаете по формуле.
Направление обхода задаю когда ввожу начало и конец обработки, просто надо будет устанавливать положение центра по перпендикуляру к хорде,
в принципе это то-же что и вы имели в виду, но с другого подхода.
Координаты центра надо считать, вроде нашел как, здесь решили эту задачу:
http://mathhelpplanet.com/viewtopic.php ... c&start=10
Теперь все собираю в рабочую функцию, как соберу выложу.
Спасибо.

Re: Мини токарный станок с ЧПУ

Добавлено: 07 дек 2017, 20:32
sidor094
АндрейА писал(а):Направление обхода задаю когда ввожу начало и конец обработки,
Как это.При задании дуги с помощью центра дуга через две точки может быть как по большому так и по малому кругу.А при задании с помощью радиуса дуга всегда должна быть меньше 180градусов ,но и в этом случае центр может находиться как справа,так и слева от дуги(в зависимости от направления обхода.Так ,что направление обхода задавать обязательно.

Re: Мини токарный станок с ЧПУ

Добавлено: 07 дек 2017, 20:35
sidor094
Андрей,почитайте про gcode g2 и g3.Там все описано.

Re: Мини токарный станок с ЧПУ

Добавлено: 07 дек 2017, 21:12
АндрейА
sidor094 писал(а):
АндрейА писал(а):Направление обхода задаю когда ввожу начало и конец обработки,
Как это.При задании дуги с помощью центра дуга через две точки может быть как по большому так и по малому кругу.А при задании с помощью радиуса дуга всегда должна быть меньше 180градусов ,но и в этом случае центр может находиться как справа,так и слева от дуги(в зависимости от направления обхода.Так ,что направление обхода задавать обязательно.
Вы правы,
просто в моем случае(вращающаяся деталь)дуга 180 гр это шар,поэтому подразумевается < 180,
кроме того центр вращения не обязательно центр шара, например ролик для трубогиба.

Re: Мини токарный станок с ЧПУ

Добавлено: 07 дек 2017, 21:22
АндрейА
sidor094 писал(а):Андрей,почитайте про gcode g2 и g3.Там все описано.
Смотрел, искал, но реализации формулы для микроконтроллера не нашел.

Re: Мини токарный станок с ЧПУ

Добавлено: 08 дек 2017, 02:41
sas_75
Направление обхода от начальной к конечной точке (по часовой или против часовой стрелки) можно задать как +R и -R.

Re: Мини токарный станок с ЧПУ

Добавлено: 08 дек 2017, 09:12
sidor094
АндрейА писал(а):Смотрел, искал, но реализации формулы для микроконтроллера не нашел.
Это не формула,а описание стандартных команд задания дуг для станка чпу через две точки и радиус или центр .

Re: Мини токарный станок с ЧПУ

Добавлено: 08 дек 2017, 12:58
АндрейА
sidor094 писал(а):
АндрейА писал(а):Смотрел, искал, но реализации формулы для микроконтроллера не нашел.
Это не формула,а описание стандартных команд задания дуг для станка чпу через две точки и радиус или центр .
Все верно, но у меня нет пока поддержки g кодов.
Я пишу программу под микроконтроллер.
Мне требуется программное решение задачи круговой интерполяции с учетом особенностей моей системы управления и ввода параметров.

Спасибо.

Re: Мини токарный станок с ЧПУ

Добавлено: 08 дек 2017, 18:38
sidor094
Так в чем проблема?Формула правильная и достаточно простая.Что надо вычислить?

Re: Мини токарный станок с ЧПУ

Добавлено: 08 дек 2017, 18:52
АндрейА
sidor094 писал(а):Так в чем проблема?Формула правильная и достаточно простая.Что надо вычислить?
Проблема была найти координаты центра окружности, но она уже решена(смотрите выше).
Теперь делаю алгоритм обработки, думаю как удалить холостые проходы при заглублении в деталь.

Re: Мини токарный станок с ЧПУ

Добавлено: 08 дек 2017, 19:03
sidor094
АндрейА писал(а):Теперь делаю алгоритм обработки, думаю как удалить холостые проходы при заглублении в деталь.
Обычно предварительно делают продольные проточки(лесенку),приблизительно повторяющую контур обработки.И уже затем чистовой проход по контуру.Это рассчитывает либо CАМ программа,либо сам оператор.И только в серьезных системах чпу есть возможность задать продольную проточку до контура.

Re: Мини токарный станок с ЧПУ

Добавлено: 08 дек 2017, 19:30
АндрейА
sidor094 писал(а):
АндрейА писал(а):Теперь делаю алгоритм обработки, думаю как удалить холостые проходы при заглублении в деталь.
Обычно предварительно делают продольные проточки(лесенку),приблизительно повторяющую контур обработки.И уже затем чистовой проход по контуру.Это рассчитывает либо CАМ программа,либо сам оператор.И только в серьезных системах чпу есть возможность задать продольную проточку до контура.
Лесенка хорошо, но я думаю находить точки пересечения окружности с хордой, и делать обработку между этими точками,
затем сдвигать центр окружности на установленный шаг глубины реза,снова находить точки пересечения, снова работать по ним,ну когда центр
будет на месте проходить последний проход с установленной глубиной последнего прохода(типа чистовой проход, у меня так в циклах резьбы и проточки
сделано).
Кстати во что получается с вычислением координат центра:
//находим координаты центра окружности
float posCx,posCy;
void calcCenterCircle(bool internal,float posX1,float posY1,float posX2,float posY2,float R)
{
float x,x1,x2,y,y1,y2,j;

j=sqrtf(square (x2-x1)+square(y2-y1));
if(internal)
{
posCx=(x1+x2)*2-(y2-y1)*sqrtf(square(R)/square(j)-0.25);
posCy=(y1+y2)*2+(x2-x1)*sqrtf(square(R)/square(j)-0.25);
}
else
{
posCx=(x1+x2)*2+(y2-y1)*sqrtf(square(R)/square(j)-0.25);
posCy=(y1+y2)*2-(x2-x1)*sqrtf(square(R)/square(j)-0.25);
}
}