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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

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

Сообщение atomichammer » 27 фев 2019, 17:17

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

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

Сообщение nkp » 27 фев 2019, 18:03

nkp
Мастер
 
Сообщения: 8260
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1539
Медальки:

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

Сообщение atomichammer » 28 фев 2019, 14:53

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

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

Сообщение Сергей Саныч » 01 мар 2019, 10:13

Обычно такое делают для автоматизированного ввода координат, например [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
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
 
Сообщения: 8841
Зарегистрирован: 30 май 2012, 14:20
Откуда: Тюмень
Репутация: 2766
Медальки:

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

Сообщение alex030272 » 20 апр 2020, 19:13

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

G68G17X0Y0R5.25

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

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

Сообщение nkp » 20 апр 2020, 19:16

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

G68G17X0Y0R5.25

где R это наш угол
и вся система координат XY разворачивается
причем изменяя угол в + поворот против часовой стрелке
а в минус поворот по часовой.

когда утомит ексель(ну к старости точно :) ) напиши - я тебе лично проще штуку пришлю :D
nkp
Мастер
 
Сообщения: 8260
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1539
Медальки:

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

Сообщение alex030272 » 20 апр 2020, 19:32

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
Настоящее имя: Александр


Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: and361, Andreychpu, axel, Bing [Bot], CybSys, darkmorro, Dimka, drey82, Gestap, Google [Bot], Majestic-12 [Bot], MegaBlackJoe, Mikhgen, mmg, nevkon, niksooon, pegas13, shalek, sima8520, svm, SVP, Yandex [bot], Леонид Владимирович

Reputation System ©'