Поворот координат по двум(трем) точкам

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
atomichammer
Опытный
Сообщения: 136
Зарегистрирован: 20 янв 2017, 13:10
Репутация: 7
Настоящее имя: Anton
Откуда: Алматы
Контактная информация:

Поворот координат по двум(трем) точкам

Сообщение atomichammer »

Добрый день
Пилил несколько деталей на своем роутере и под конец, когда уже проходил контуры, сдвинулась заготовка. Материал (и время) выкидывать жалко и я знаю, что есть возможность заново закрепить заготовку с уже насверлеными отверстиями и забазироваться по ним. Проблема только в том, что лень идеально выставлять заготовку параллельно осям. Поэтому ведь можно как-то посмотреть текущие координаты пары отверстий и на основании этой инфы подвинуть/повернуть систему координат? Как это сделать?
atomichammer
Опытный
Сообщения: 136
Зарегистрирован: 20 янв 2017, 13:10
Репутация: 7
Настоящее имя: Anton
Откуда: Алматы
Контактная информация:

Re: Поворот координат по двум(трем) точкам

Сообщение atomichammer »

Ну эт понятно... а готового решения нет? Чтобы вбить туда координаты точек из файла и реально измеренные, а оно как-нибудь само повернет...
Я делал подобное для сверления платы, чтобы совпадало с фотовыводом. Фотовывод был не ахти какой точный, и пришлось масштабировать/поворачивать точки. Ну там самому пришлось прогу писать, а я думал, что уже какой-нибудь интузиаст такое придумал для LinuxCNC, просто я не нашел.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 8856
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2770
Откуда: Тюмень

Re: Поворот координат по двум(трем) точкам

Сообщение Сергей Саныч »

Обычно такое делают для автоматизированного ввода координат, например [WIKI] Работа с центроискателем в LinuxCNC #1
Но и для ручного ввода измеренных координат можно доработать.
Или вот еще, попроще, для случая, похожего на ваш

Код: Выделить всё

o<scoffset> sub

; Смещение СК по данным замера координат двух точек (центров отверстий) и заданным их координатам

; Здесь принимаем из полей ввода pyvcp заданные координаты двух точек (#<_x1_setup>, #<_y1_setup>) и (#<_x2_setup>, #<_y2_setup>)
; А фактические координаты, измеренные при помощи центроискателя, уже лежат в переменных (#<_x1_measure>, #<_y1_measure>) и (#<_x2_measure>, #<_y2_measure>)

 M66 E2 L0 
 #<_x1_setup> = #5399
 M66 E3 L0 
 #<_y1_setup> = #5399
 M66 E4 L0
 #<_x2_setup> = #5399
 M66 E5 L0
 #<_y2_setup> = #5399

 #<dy> = [#<_y2_measure> - #<_y1_measure>]
 #<dx> = [#<_x2_measure> - #<_x1_measure>]
 #<Am0> = atan[#<dy>]/[#<dx>] ; Угол наклона по данным измерения
 #<dy> = [#<_y2_setup> - #<_y1_setup>]
 #<dx> = [#<_x2_setup> - #<_x1_setup>]
 #<A0> = atan[#<dy>]/[#<dx>] ; Угол наклона по данным задания
 #<A> = [#<Am0> - #<A0>] ; Угол поворота CK
 G10 P0 L2 X0. Y0. ; Присваиваем текущей точке координаты 0, 0
 G10 P0 L2 R[#<A>] ; Поворачиваем СК на найденный угол
 G10 P0 L20 X#<_x1_setup> Y#<_y1_setup> ; Выставляем заданные координаты текущей точки

o<scoffset> endsub
Чудес не бывает. Бывают фокусы.
alex030272
Кандидат
Сообщения: 41
Зарегистрирован: 19 апр 2020, 21:11
Репутация: 2
Настоящее имя: Александр
Контактная информация:

Re: Поворот координат по двум(трем) точкам

Сообщение alex030272 »

а я делаю так.
центруюсь по отверстию
затем выставляю по какой то точке, например X100 Y5.5
забиваю это дело в эксель файл и формула мне показывает угол поворота. =ГРАДУСЫ(C4/B4), где С4 - X, a B4 - Y
а потом я просто этот угол вставляю в G код

G68G17X0Y0R5.25

где R это наш угол
и вся система координат XY разворачивается
причем изменяя угол в + поворот против часовой стрелке
а в минус поворот по часовой.
nkp
Мастер
Сообщения: 8265
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1545
Контактная информация:

Re: Поворот координат по двум(трем) точкам

Сообщение nkp »

alex030272 писал(а):а я делаю так.
центруюсь по отверстию
затем выставляю по какой то точке, например X100 Y5.5
забиваю это дело в эксель файл и формула мне показывает угол поворота. =ГРАДУСЫ(C4/B4), где С4 - X, a B4 - Y
а потом я просто этот угол вставляю в G код

G68G17X0Y0R5.25

где R это наш угол
и вся система координат XY разворачивается
причем изменяя угол в + поворот против часовой стрелке
а в минус поворот по часовой.
когда утомит ексель(ну к старости точно :) ) напиши - я тебе лично проще штуку пришлю :D
alex030272
Кандидат
Сообщения: 41
Зарегистрирован: 19 апр 2020, 21:11
Репутация: 2
Настоящее имя: Александр
Контактная информация:

Re: Поворот координат по двум(трем) точкам

Сообщение alex030272 »

nkp писал(а):
alex030272 писал(а):а я делаю так.
центруюсь по отверстию
затем выставляю по какой то точке, например X100 Y5.5
забиваю это дело в эксель файл и формула мне показывает угол поворота. =ГРАДУСЫ(C4/B4), где С4 - X, a B4 - Y
а потом я просто этот угол вставляю в G код

G68G17X0Y0R5.25

где R это наш угол
и вся система координат XY разворачивается
причем изменяя угол в + поворот против часовой стрелке
а в минус поворот по часовой.
когда утомит ексель(ну к старости точно :) ) напиши - я тебе лично проще штуку пришлю :D
В личку написал
Ответить

Вернуться в «LinuxCNC»