Нужен скрипт для поиска центра поворотной оси

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение NightV »

ridirt писал(а): что как только выключаешь драйвер и двигатель остается без тока в обмотках, вал поворачивается на какую то часть шага и координаты уже не те
у меня сервы сдвигаются, если вырубаю силовое питание на приводы, но основное остается, на экране видно видно как координаты убегают, шутка ли, ось Z килограмм 300-350, хотя есть противовес на цепях
Всё просто! если знаешь КАК!
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение SVP »

ridirt писал(а):
NightV писал(а):АК!!?? станок в ролике знает свое положение, судя по звуку, шаговые.. "homing" не делал.. но тогда КАК станок знает свое положение!!?? да еще и с Mach3!
А вы не забыли все я надеюсь , что как только выключаешь драйвер и двигатель остается без тока в обмотках, вал поворачивается на какую то часть шага и координаты уже не те. А когда включаешь , неизвестно сохранился ли микрошаг. У меня к примеру координаты сбивались на десятку а то и более иногда. Имхо, обмеры придется все равно проводить при каждом включении драйверов. Либо станок не вырубать круглые сутки, только нельзя забывать что шд кушают прилично.
Станок в ролике знает свое положение потому, что человек скорее всего после включения ткнулся зондом в датчик, который стоит на столе, и представляет собой ту самую "трубу". Практика показывает, что этой точности достаточно для 2+1 ювелирных применений.
По факту, даже после скидывания-подачи питания ничего не двигается на десятки. Может потому, что контроллер с watchdog, может
потому, что ток удержания 25% от паспортного, может еще почему. Но, хорошая привычка обнуляться после включения конечно
у нормальных операторов присутствует.
Аватара пользователя
ridirt
Мастер
Сообщения: 721
Зарегистрирован: 24 июл 2013, 23:52
Репутация: 277
Настоящее имя: Живописцев Андрей Викторович
Откуда: Спб
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение ridirt »

Да это все конечно дело, но скрипт для поворотки , а лучше несколько пока не найден я так понял. А все еще сложнее для 2х осевой поворотки, там помимо оси вращения патрона надо еще как то параллельность выставить) Если автор еще тут то предлагаю в первом посте выкидывать годные скрипты с видео и описанием работы
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение SVP »

Чукча вижу не читатель, ну не найден, и не найден, дело чукчи.
Аватара пользователя
ridirt
Мастер
Сообщения: 721
Зарегистрирован: 24 июл 2013, 23:52
Репутация: 277
Настоящее имя: Живописцев Андрей Викторович
Откуда: Спб
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение ridirt »

SVP писал(а):Чукча вижу не читатель, ну не найден, и не найден, дело чукчи.
Ну я читал предложенные версии, и предложенный скрипт

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

'VBScript поиск центра оси вращения "A" ощупыванием цилиндра.
'MasrerLomaster [12.03.2015] 
'Скрипт работает в метрической системе координат
	'=== Declaraciones ===
	Dim CurrentFeed ' Для запоминания текущей скорости подачи
	Dim CurrentZ ' Начальная высота по Z
	Dim R_probe ' радиус щупа
	Dim R_Cyl ' радиус цилиндра
	Dim FeedProbe  ' скорость подачи щупа
	
	Const DRO_Y = 1
	Const DRO_Z = 2
	CR = Chr(13)  :  LF = Chr(10)  :  CRLF = CR + LF  :  CRLF2 = CRLF+CRLF ' new line
	
	RightNow = Now() ' читаем текущую дату и время
	RightNowStr = Format(RightNow,"Medium Date") & "   " & Format(RightNow,"Long Time")
	
	Title$ = "Поиск нуля (Y,Z) оси-А по цилиндру"
	PromptDprobe$ = "Введите диаметр щупа ( D ) в мм"
	PromptDcyl$ = "Измерьте штангелем и введите диаметр цилиндра ( D ) в мм"
	PromptFeedprobe$ = "Введите желаемую скорость подачи щупа"
	Default_Dprobe$ = "4" ' текущий диаметр щупа
	Default_Dcyl$ = "20" ' текущий диаметр цилиндра
	Default_Feedprobe$ = "100" ' текущая скорость подачи щупа
	
	R_probe = (InputBox$(PromptDprobe$, Title$, Default_Dprobe$))/2 
	R_Cyl = (InputBox$(PromptDcyl$, Title$, Default_Dcyl$))/2 
	FeedProbe = InputBox$(PromptFeedprobe$, Title$, Default_Feedprobe$) 
	
If MsgBox ("Если вы не забыли вручную разместить щуп примерно по центру" & CRLF & _
	"оси А на расстояние 3-5 мм над цилиндром, нажмите OK" & CRLF & _
	"иначе нажмите Отмена" & CRLF2 & _
	"Диаметр щупа  = " & R_probe*2 & " mm" & CRLF & _
	"Диаметр цилиндра = " & R_Cyl*2 & "mm" & CRLF & _
	"Скорость подачи щупа = " & FeedProbe & CRLF, _
	65, Title$) = 1 _ 
	Then   ' 1=OK
	Message "Осуществлен запус скрипта поиска центра оси А:  " & RightNowStr 
	

	Code "G90" ' перейдем в абсолютную систему координат
	CurrentFeed = FeedRate		'Запомнить текущюю скорость, для того чтобы восстановить после коррекции.
	CurrentZ = GetDRO(DRO_Z)'Запоминаем  текущее значение по Z 	
'-------------------------------------------------------------------------------	
' Опускание до касания
'-------------------------------------------------------------------------------	
	Code "F" &FeedProbe		'Задать скорость подачи до касания инструментом
	Code "G91" ' перейдем в относительную систему координат
	Code "G31Z" & -R_Cyl
	While IsMoving()		'Подождать пока произойдет касание.
	Wend
	Code "G0 Z" & R_probe  'отьехать вверх на радиус пробника от точки касания
	While IsMoving ()
	Wend	
'-------------------------------------------------------------------------------	
' Отъезд по Y и опускание с одной стороны цилиндра
'-------------------------------------------------------------------------------	
	Code "G0 Y" & -(R_Cyl+R_probe+2)
	Code "G0 Z" & -(R_Cyl+R_probe)
'-------------------------------------------------------------------------------	 
' Движение по Y до касания
'-------------------------------------------------------------------------------	
	Code "G31Y" & R_Cyl
	While IsMoving()	'Подождать пока произойдет касание.
	Wend
	
	YPos1 = GetVar(2001)      'Считать 1-e значение касания по Y
	
	Code "G0 Y" & -R_probe  'отьехать назад на радиус пробника от точки касания
	While IsMoving ()
	Wend	
'-------------------------------------------------------------------------------	 
' Поднятие  переезд на другую сторону и опускание 
'-------------------------------------------------------------------------------	
	Code "G0 Z" & (R_Cyl+R_probe)'вверх
	Code "G0 Y" & (R_Cyl*2+R_probe*2+R_probe)
	Code "G0 Z" & -(R_Cyl+R_probe) ' вниз
'-------------------------------------------------------------------------------	 
' Движение по Y до касания
'-------------------------------------------------------------------------------	
	Code "G31Y" & -R_Cyl
	While IsMoving()	'Подождать пока произойдет касание.
	Wend
	
	YPos2 = GetVar(2001)      'Считать 2-e значение касания по Y
	
	Code "G0 Y" & R_probe  'отьехать назад на радиус пробника от точки касания
	While IsMoving ()
	Wend
'-------------------------------------------------------------------------------	 
' Движение наверх и в центр
'-------------------------------------------------------------------------------	
	Code "G0 Z" & (R_Cyl+R_probe)'вверх
'	Code "G0 Y" & -(R_Cyl+R_probe*2)
	YCenter = (YPos1 + YPos2) / 2   'центр находится между YPos1 и YPos2
	Code "G90" ' перейдем в абсолютную систему координат
	Code "G0 Y" &YCenter      ' Быстрое перемещение в центр
	While IsMoving ()
	Wend

	SetDro(DRO_Y,0) ' Обнулить Y
'-------------------------------------------------------------------------------	
' Опускание до касания
'-------------------------------------------------------------------------------	
	Code "G31Z" & GetDRO(DRO_Z)-R_Cyl
	While IsMoving()		'Подождать пока произойдет касание.
	Wend
	SetDro(DRO_Z,R_Cyl) ' присвоить Z радиус цилиндра
	Code "G0 Z" & R_Cyl+R_probe  'отьехать вверх на радиус пробника от точки касания
	While IsMoving ()
	Wend	

	
Else 
	Message "Скрипт отменен!!!"                   
End If
Message "Обнуление YZ завершено"     
впринципе тех условия удовлетворяет, но он подходит только к поиску центра маленьких заготовок, то есть чтобы к примеру резать большую начиная от 50 придется сначала зажимать маленькую искать центр потом вынимать и зажимать большую. лучше конечно в качестве маленькой кусок полированного вала от направляющей юзать. Если же к примеру сразу на большой заготовке искать центр там надо искать по 3м точкам и вписанной между ними окружностью, то есть алгоритм следующий: диаметр заготовки измерять не нужно центроискатель ставится примерно по центру потом опускается до касания, потом уходит влево на 20 опускается до касания отьежжает еще влево на 1мм меняет скорость проводит точные измерения потом вверх и тоже самое делает справа. делим пополам, получаем центр едем наверх и в центр опускаем до касания, получаем три точки вычисляем центр, обнуляем.
плюс такого скрипта ненужно каждую заготовку мерить, ибо за точность поиска в основном отвечает как точно мы измерили диаметр цилиндра, машина обычно делает более точные измерения чемчеловек.
а можно даже определить центр вообще по любым трем точкам, даже необязательно сначала искать центр по У . примерно в центр ставим ищем любые три точки запоминаем координаты
далее вычисляем центр опираясь на уравнение окружности :
Уравнение окружности

r^2 = (x — h)^2 + (y — k)^2

где,

h,k — координаты центра Окружности
x,y — координаты точки окружности
r — радиус

Пример

Найдите координаты точки центра окружности, радиус и уравнение окружности, если известны координаты трех точек A (2,2), B (2,4) и C (5,5)
Решение :
Шаг:1

Подставляем координаты точек в формулу

(2 — h)^2 + (2 — k)^2 = r^2
(2 — h)^2 + (4 — k)^2 = r^2
(5 — h)^2 + (5 — k)^2 = r^2

Шаг :2

Найдем значение k упрощая 1 и 2 уравнения

(2 — h)^2 + (2 — k)^2 = (2 — h)^2 + (4 — k)^2
4 — 4h + h^2+ 4 — 4k + k^2 = 4 — 4h + h^2+16 — 8k + k^2
8 — 4k = 20 — 8k
k=3

Шаг :3

Найдем значение h упрощая уравнения 2 и 3

(2 — h)^2 + (2 — k)^2 = (5 — h)^2 + (5 — k)^2
4 — 4h + h^2+ 4 — 4k + k^2 = 25 — 10h + h^2+ 25 — 10k + k^2
8 — 4k — 4h = 50 — 10h — 10k
6k + 6h = 42

Подставив значение k=3 в уравнение

6h = 24
h=4

Получаем координаты точки центра (h,k) = (4,3)
Шаг :4

Подставим значения h,k в формулу

r^2 = (x — h)^2 + (y — k)^2
r^2 = (2 — 4)^2 + (2 — 3)^2
r^2 = (-2)^2 + (-1)^2
r^2 = 5
r = 2.24

Шаг :5

Подставим значения h, k в уравнение окружности

(x — h)^2 + (y — k)^2

Уравнение окружности = (x — 4)^2 + (y — 3)^2
Ответ :

Координаты точки центра окружности c(h,k) = c(4,3)
Радиус окружности r = 2.24
Уравнение окружности = (x — 4)^2 + (y — 3)^2 = (2.24)^2
после нахождения координат центра обнуляем просто вот и все

Жалко я программирование не любил никогда а тобы написал давно

По поворотной оси в принципе даже проще Если известно точное расстояние от центра вращения до поверхности стола или патрона, то делаем так:
выставляем ось примерно параллельно столу, зажимаем в патрон трубку, определяем по ней примерный центр, далее касаемся краев патрона и исходя из разницы поворачиваем ось параллельно столу, едем мерить цетр оси точно, далее повторяем операцию с парралельностью и цетром еще раз последнеей операцией будет поиск центра трубы, пяти измерений будет достаточно чтобы точно отыскать центр оси, единственное что это довольно долго. Как по другому определить центр я пока не знаю. Точность измерений в данном случае будет зависеть только от количества проведенных замеров.
это все пока пустой треп, никакого кода мной пока не предложено, только концепции
Аватара пользователя
ridirt
Мастер
Сообщения: 721
Зарегистрирован: 24 июл 2013, 23:52
Репутация: 277
Настоящее имя: Живописцев Андрей Викторович
Откуда: Спб
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение ridirt »

если 2х осевая поворотка изготовлена относительно точно и известно к примеру достаточно точно расстояние от стола до верха патрона , можно к примеру найти верх стола поднять Z на эту высоту повернуть ось немного набок подвесли датчиком к углу патрона далее наклонять в сторону параллельности пока ось не коснется датчика. после этого можно уже точнее определить и выставить параллельность померив датчиком высоту с другой стороны патрона выставить параллельность точно и найти центр патрона посредством трубы.
Rim
Новичок
Сообщения: 38
Зарегистрирован: 10 фев 2016, 11:51
Репутация: 3
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение Rim »

Я даже слегка потерялся от обилия комментов. Буду вчитываться )
пока что понял косяк - не тот скрипт мне дали. тот что я сюда скидывал от стрижа, он не центр искал, а компенсация высоты фрезы

если не ошибаюсь, то поиск отверстия в трубке у стрижа по 3ем осям происходит, т.е. сначала вниз по Z опускается, а потом центруется по XY в отверстии. только это не решает конкретную задачу - поиска центра вращения оси. это его ноли только и всего. но может кому пригодится (прятать не умею под кат не пинайте)
(для просмотра содержимого нажмите на ссылку)
Rem 'VBScript To center probe inside a pipe for Strizh
If GetOEMLED(23)<>0 Then DoOEMButton(1029) Else Code"G4 P0.1" ' test softlimits
If GetOEMLED(16)<>0 Then DoOEMButton(256) Else Code"G4 P0.1" ' test machine
If GetOemLed (825) Or GetOemLed (16) Or GetOemLed (23) <> 0 Then 'Check to see if the probe is already grounded or faulty
Code "(Probe plate is Grounded, check connection and try aGain)"
Else
Sleep(500)
FeedCurrent = GetOemDRO(818) 'Get the current settinGs
XCurrent = GetDro(0)
YCurrent = GetDro(1)
Code "F20"
Code "G91G31Z-10"
While IsMoving()
Wend
DoOEMButton(1024)
Sleep(500)
Code "G90"
Code "G53G0z1"
Code "M3 S0"
Code "G4 P0.5" 'Pause 0.5 second to Give time to position probe plate

Rem 'Probe Left
Code "G91G31 X-15"
While IsMoving() 'wait for the move to finish
Wend
XPos1 = GetVar(2000) 'Get the probe touch location
Code "G90f500"
Code "G1 X" & XCurrent 'rapid move back to start point

Rem 'Probe RiGht
Code "G91G31 X15f20"
While IsMoving()
Wend
XPos2 = GetVar(2000)
Code "G90f500"
XCenter = (XPos1 + XPos2) / 2 'center is midway between XPos1 and XPos2
Code "G1 X" & XCenter 'rapid move to the x center location

Rem 'Probe up
Code "G91G31 Y15f20"
While IsMoving()
Wend
YPos1 = GetVar(2001)
Code "G90f500"
Code "G1 Y" & YCurrent

Rem 'Probe down
Code "G91G31 Y-15f20"
While IsMoving()
Wend
YPos2 = GetVar(2001)
Code "G90f500"
YCenter = (YPos1 + YPos2) / 2

Rem 'move To the center
Code "G1 Y" & YCenter
While IsMoving()
Wend
Code "F" & FeedCurrent
Code "M05" 'restore startinG feed rate
DoOEMButton(119)
DoOEMButton(1022)
DoOEMButton(1023)
Sleep(2000)

Code "G53G0 Z80"
'DoOEMButton(1029)

End If
хотя у меня внезапно ноль по Х слетел, который руками задавал, непойму с чего бы это. по машинным координатам все как нужно, а фреза сместилась (раньше такое было когда софтлимиты отменил и влетел в датчик концевика оси, сейчас то не смещал датчик).. может быть вычисления ноля и помогло бы чтобы привязываться уже не по датчикам.. но это перебор

а про поиск центра оси щупом в ось - была такая мысль, но с учетом что у меня фреза не поворачивается на 90, то щуп какой-то хитрый нужно делать, просто так в виде буквы Г его не зажать вместо фрезы - будет вертеться
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение SVP »

Rim писал(а):если не ошибаюсь, то поиск отверстия в трубке у стрижа по 3ем осям происходит,
Ошибаетесь.
По двум. В определенных "релизах" этого скрипта он не требует ручного введения внутрь трубки, сам заезжает,
сам находит края, сам сбрасывает координаты, сам уезжает.
Но это не более, чем сервисные функции. (кстати весьма небезопасные)

Зондом нет смысла искать что-то по трем осям. Всё равно вставите инструмент, и длина по Z (X) изменится.
Rim
Новичок
Сообщения: 38
Зарегистрирован: 10 фев 2016, 11:51
Репутация: 3
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение Rim »

я говорю только о том, что мне передали обладатели стрижа. сначала замер по глубине, потом по отверстию. а есть польза по трем осям знать пределы - это хз. думаю есть, если он от этих значений отталкивается. и уже потом проверяет фрезой по Z чтобы работать. разные функции и скрипты.

про самостоятельный заезд - вроде как у них есть позиция "смены инструмента" откуда потом запускается скрипт, и начинает опускаться вниз и потом по отверстию датчика центр искать

про центровку - насколько я понял она заранее вычислена производителем и записана у них на бумажку, которую к столу прикрепили для памяти. но у самого стрижа, если не путаю опять же, нет концевых датчиков - потому в первом скрипте имхо критически важно определить пределы щупом по датчику, в том числе и по Z и по отверстию (XY)
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение SVP »

Rim писал(а):я говорю только о том, что мне передали обладатели стрижа. сначала замер по глубине, потом по отверстию. а есть польза по трем осям знать пределы - это хз. думаю есть, если он от этих значений отталкивается. и уже потом проверяет фрезой по Z чтобы работать. разные функции и скрипты.
Вы думаете я всё придумываю, что пишу :) ?
Не знаю уж чем там обладают ваши обладатели, я в своей жизни видел десятки этих стрижей разных ревизий,
а лично у меня дома, у супруги стоит машина, вероятно с серийником менее 10, а может даже и 5.
А у коллеги, вероятно, с номером (мах-10).
Я лично разбирался со всеми этими скриптами, с тем, откуда растут ноги и почему и как они работают.
Приходилось подключать такие датчики к другим станкам по просьбе их владельцев...
Итд итп.

Всего было несколько версий этого скрипта. Новые опускаются, и вовсе не для замера по глубине - зачем измерять
длину зонда-то ? Или вы фрезой собрались датчик фрезеровать :) ? Опускаются они для того, чтобы знать, что они
"внутри" трубы по Z. Ранние версии, хвала богам, этой функциональности не имеют. Аккуратно ввести зонд в датчик
не вызывает вообще никаких проблем, зато позволяет избавиться от многих потенциальных "незадач".

Длина инструмента и коррекция по Z устанавливается отдельно, после замены зонда на рабочий инструмент...

Rim писал(а): про самостоятельный заезд - вроде как у них есть позиция "смены инструмента" откуда потом запускается скрипт, и начинает опускаться вниз и потом по отверстию датчика центр искать
В "новых" ревизиях есть - крайне вредная в нетиповых случаях функциональность.
До 25% серьезных проблем у начинающих начинаются с нажатия этой кнопки.
Вообще идея искать по виртуальным координатам реальный датчик весьма порочна.
Она работает, только когда реальные координаты отличаются от виртуальных не более,
чем на диаметр "трубы".
Rim писал(а): про центровку - насколько я понял она заранее вычислена производителем и записана у них на бумажку, которую к столу прикрепили для памяти. но у самого стрижа, если не путаю опять же, нет концевых датчиков - потому в первом скрипте имхо критически важно определить пределы щупом по датчику, в том числе и по Z и по отверстию (XY)
Нет - концевиков нету. Вместо них как-раз датчик.
Расстояние от датчика до центра поворотки(по Z-Y) действительно бывает написано на бумажке.
Однако это легко устанавливаемая простыми экспериментами величина. Даже при отсутствии индикатора.
Собственно все "пользователи" рано или поздно самостоятельно вводят поправки, т.к. после различного рода
обслуживания "убегают" координаты физически.

Вам-бы почитать про machinig coordinates из справки к мачу, и про (вероятно, не скажу точно как называются) logic/working coordinates.
Там уже все до вас придумано с тем, каким образом можно что-то померять в одном месте и автоматом пересчитать
всю систему рабочих координат. Никто никаких координат с бумажки в ежедневной работе никуда не вводит.
Rim
Новичок
Сообщения: 38
Зарегистрирован: 10 фев 2016, 11:51
Репутация: 3
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение Rim »

я не понимаю о чем спор. вы хотите сказать что в скрипте стрижа нет определения координат ноля по Z когда он внутри датчика по отверстию двигается? т.е. он не опускается вниз а только по краям отверстия определяет XY точку? или все же он по Z находит?

и я понимаю, что найдя точку в пространстве по датчику он вполне может пересчитать координаты пределов для самого станка. так не о том же речь.
мне данная фишка никак не поможет определить координаты центра вращения, даже если я себе такой датчик поставлю вместо моего и скрипт запущу. у меня датчики на краю осей стоят. возможно это менее точно и пагубно для самих координат, потому как датчики бесконтактные, и подозреваю что точность у них все же хуже.

вопрос то был в вычислении центра оси вращения. в стриже, насколько я понимаю, этот центр запилами находится, а совсем не скриптом и датчиками. вот эту проблему хочется решить, а не спорить как именно датчик работает в стриже.

я пробовал вручную подводить к оси и записывать значения, все равно получилось не точно. и это совсем не радует
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение SVP »

Rim писал(а):я не понимаю о чем спор. вы хотите сказать что в скрипте стрижа нет определения координат ноля по Z когда он внутри датчика по отверстию двигается? т.е. он не опускается вниз а только по краям отверстия определяет XY точку? или все же он по Z находит?
Я вообще не спорю, я лишь намекаю, что вы неверно понимаете то, что он делает и других вводите немного в заблуждение.
Да - в скрипте шедшим с станком моей супруги нету никаких движений по Z.
Для поиска "центра трубы" движения по Z не нужны.
В следующих версиях есть. Их функция сервисная исключительно, для тех кому лень подвести ручками.
И еще раз напишу: по Z это всё более или менее безопасно, а вот использования кнопочек приводящих станок
без концевиков в позицию над датчиком по XY - КРАЙНЕ ОПАСНАЯ практика.
Rim писал(а): и я понимаю, что найдя точку в пространстве по датчику он вполне может пересчитать координаты пределов для самого станка. так не о том же речь.
мне данная фишка никак не поможет определить координаты центра вращения, даже если я себе такой датчик поставлю вместо моего и скрипт запущу. у меня датчики на краю осей стоят. возможно это менее точно и пагубно для самих координат, потому как датчики бесконтактные, и подозреваю что точность у них все же хуже.
Да там он тоже стоит на краю осей. Датчик.
Заметьте, про "датчик" вы начали. Я лишь обратил ваше внимание, что при повороте шпинделя на 90 градусов тут
применено решение о поиске центра поворотки используя отверстие в самой поворотке, а не датчик.
Датчик вообще непричем :), но по смыслу происходит тот-же поиск центра трубы.
И, к слову, ничего там при этом поиске по X не ищется, т.к. "дно" у поворотки недостижимо.
Rim писал(а): вопрос то был в вычислении центра оси вращения.
(Ymax-Ymin)/2
(Zmax-Zmin)/2
чего уж проще-то ?
Rim писал(а): в стриже, насколько я понимаю, этот центр запилами находится, а совсем не скриптом и датчиками. вот эту проблему хочется решить, а не спорить как именно датчик работает в стриже.
Вы неверно понимаете, точнее у вас каша в голове.

В положении "шпиндель повернут вниз" смещение центра поворотки и её высота относительно датчика действительно находятся запилами.

В положении "шпиндель паралельно столу" центр поворотки находится непосредственно путем введения зонда внутрь поворотки,
и исполнения скрипта поиска центра "трубы".

Rim писал(а): я пробовал вручную подводить к оси и записывать значения, все равно получилось не точно. и это совсем не радует
В этом нет ничего удивительного. Оценить положение инструмента относительно чего-то можно только используя микроскоп и "с трех сторон".
Чем вам проверенные способы "с запилами" не нравятся ?
Позволяют весьма точно отюстироваться без индикатора (если сама ось стоит параллельно X и не "торчит вверх").
Если есть индикатор, то можно, и им, а если еще и скалка... то можно и положение оси выставить.
Rim
Новичок
Сообщения: 38
Зарегистрирован: 10 фев 2016, 11:51
Репутация: 3
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение Rim »

SVP писал(а):Да там он тоже стоит на краю осей. Датчик.
на стриже есть датчики на краю осей? не знал. ок приму к сведению
SVP писал(а):Для поиска "центра трубы" движения по Z не нужны.
я не говорил, что центр ищется через Z. я сказал что скрипт в датчике сразу по всем осям находит позицию. для Z он опускается на датчик подпружиненный, а затем уже ищет края отверстия. это разные действия в одном скрипте. если в вашей или какой-то другой версии этого нет, я чесслово не виноват. мне так обьяснили у тех, у кого именно так это работает. из этого и было сказано что датчики на краях не нужны, потому как с помощью датчика и получают лимиты. сорри если терминология моя слаба
SVP писал(а):(Ymax-Ymin)/2
(Zmax-Zmin)/2
чего уж проще-то ?
ничего особенного, кроме того, что у меня в станке нет поворота оси шпинделя для поиска центра в отверстии вала поворотной. а так все ок.
да и опять же - вот этот момент к сожалению не помню, но по Z такой замер не даст центра, а только по XY
SVP писал(а):Вы неверно понимаете, точнее у вас каша в голове.
с кашей все ок. я и поспрашивал и видео посмотрел как именно и что делается на стриже. мне это все не подходит. потому никакого обсуждения с поворотом шпинделя даже не обсуждается. задача именно в том чтобы в положении "шпиндель головой вниз" найти центр оси вращения
SVP писал(а):Чем вам проверенные способы "с запилами" не нравятся ?
ничем не нравится. есть станок с датчиками, но зачем использовать его возможности, когда можно все на глазок находить. поверьте мне, я и запилами центр находил, но по непонятным причинам бывает что слетает он. вариант с запилами это когда или лень, или нет датчика.
Вложения
P1170559.JPG (3537 просмотров) <a class='original' href='./download/file.php?id=73790&mode=view' target=_blank>Загрузить оригинал (2.87 МБ)</a>
P1210590.JPG (3537 просмотров) <a class='original' href='./download/file.php?id=73791&mode=view' target=_blank>Загрузить оригинал (3.06 МБ)</a>
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение SVP »

Rim писал(а):на стриже есть датчики на краю осей? не знал. ок приму к сведению
Вижу по-простому совсем не получается.
"Он" в русском языке относится к последнему существительному.
В данном случае речь о датчике шла. Датчик у стрижа стоит в конце хода по XY.
Rim писал(а):я не говорил, что центр ищется через Z. я сказал что скрипт в датчике сразу по всем осям находит позицию. для Z он опускается на датчик подпружиненный, а затем уже ищет края отверстия. это разные действия в одном скрипте. если в вашей или какой-то другой версии этого нет, я чесслово не виноват. мне так обьяснили у тех, у кого именно так это работает. из этого и было сказано что датчики на краях не нужны, потому как с помощью датчика и получают лимиты. сорри если терминология моя слаба
Вы читать будете что вам пишут, или я писать перестану, и оставайтесь со своими буйными фантазиями в одиночестве ?
Привязка по XY на стриже осуществляется при установленном в шпиндель зонде (обычно хвостовике фрезы) и определять
высоту этого зонда по Z нет никакого смысла. Понимаете ? Его потом достанут, и вставят на его место фрезу, и все
ваши "измерения" и "нахождения" (по Z) улетят в трубу.
Объясняю еще раз, для тугих: поскольку множество пользователей дремучи и глухи к словам, и не в состоянии читать
написанное, или понимать его, с некоего момента в скрипт "поиска машинного нуля по XY" были добавлены такие сервисные
функции, как
1. Снижение зонда до нужной для поиска нуля по XY высоты (это для косоглазых, которые не в состоянии сами опустить зонд)
2. Автопринятие центра отверстия в датчике, как машинного нуля (это для тех, кто не в состоянии нажать клавишу)
3. Подъем из датчика вверх на безопасню высоту (это для тех, кто нажимает GX0Y0 находясь внутри датчика).
Никакого. Еще раз подчеркну ВООБЩЕ НИКАКОГО отношения к измерениям эти "примочки" не имеют.

С тем же успехом вы можете в процедуру поиска записать включение света в помещении, или поход в туалет.
Без этого в общем-то тоже "никак"...
Rim писал(а): ничего особенного, кроме того, что у меня в станке нет поворота оси шпинделя для поиска центра в отверстии вала поворотной. а так все ок.
да и опять же - вот этот момент к сожалению не помню, но по Z такой замер не даст центра, а только по XY
Включить голову и вставить куда-нибудь зонд не позволяют какие-то верования ?
Если в станке нет ничего, чем можно корректно ощупать посадочное в поворотке, то вам не светит найти его положение. Никак.
(может быть удастся ощупать внешнюю часть, тогда да, можно, но точность посадки должна быть высока)
К слову - положение обычно ищут по ZY, по X(если поворотка стоит вдоль X) оно абсолютно никому не нужно.
Но если есть необходимость узнать по X координаты края цанги к примеру - это легко сделать касанием.

Зы. Я тут подумал... да какой смысл разорятся. Но стирать раз уж написано не стал. Вам вряд-ли пригодится, остальным может быть.
Если у кого-то ко мне по теме остались конкретные прикладные вопросы - можно написать в ЛС.
Rim
Новичок
Сообщения: 38
Зарегистрирован: 10 фев 2016, 11:51
Репутация: 3
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение Rim »

я не заставляю вас разоряться. если у нас все переходит на такое общение то смысла и правда мало

у меня на каждой оси по концевому датчику. и при включении станка по рекомендации того кто мне станок делал я запускаю REF ALL HOME (причем у стрижа вообще свой интерфейс со своими кнопками) где идет каждая ось к своему датчику и обнуляет, насколько я понимаю координаты машинные чтобы дальше спокойно работать. если в стриже какой-то свой датчик один на XY то я за него рад. мне это ничем не поможет и не изменит ничего. значит я криво все так понял, что работа у стрижа идет всего лишь по одному датчику с которым и работает станок через фрезу по отверстию центрируясь.
SVP писал(а):определять высоту этого зонда по Z нет никакого смысл
вопрос - каким образом стриж узнает софтлимиты по Z? т.е. ниже и выше чего по Z нельзя двигаться?
SVP писал(а):Включить голову и вставить куда-нибудь зонд не позволяют какие-то верования ?
интересно насколько внимательно вы читали, то что я пишу, но повторю - я определял подведением "зонда" границы поворотной оси - подводя слева и справа, высчитвая вручную центр а потом опускал сверху на ось. зондом была та самая перевернутая фреза.

в моем случае мне нужно корректно определить центр оси по Х и по Z, т.к. ось стоит параллельно Y. повернуть шпиндель и зондом замерить центр отверстия, куда вставляется поворотная ось у меня нет возможности ПОТОМУ ЧТО НЕ ПОВОРАЧИВАЕТСЯ БОКОМ ШПИНДЕЛЬ КАК В СТРИЖЕ, и ощупать можно только внешний размер поворотной оси по Х и сверху на Z. Попытки сделать это вручную были и результат не устроил.
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение SVP »

Rim писал(а):вопрос - каким образом стриж узнает софтлимиты по Z? т.е. ниже и выше чего по Z нельзя двигаться?
Исходя из заданных в mach софтлимитов конечно. А как еще-то ?

Это все целиком привязано к логическим координатам.
Поэтому если вы его выключите, открутите скажем вручную Z на 50мм вверх, а потом включите
и станете запускать эти скрипты (те, которые вначале на 50мм вверх едут, потом позицию над датчиком занимают,
снижаются сами и прочее-прочее) вы получите некислый такой "ударец" осью Z в верхний край оси Z со всеми вытекающими.
А если "открутите" XY, то он вье.... врежется короче по XY. Со всей дури холостого хода.

И да, софтлимиты на время поиска XY обычно выключаются, т.к. датчик для экономии места стоит в области за пределами софтлимитов.
Rim
Новичок
Сообщения: 38
Зарегистрирован: 10 фев 2016, 11:51
Репутация: 3
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение Rim »

SVP писал(а):Исходя из заданных в mach софтлимитов конечно.
насколько я понимаю, чтобы использовать софтлимиты по Z нужно иметь начальную точку, от которой будет станок плясать.
в моем станке датчик и задает ноль Z при начальном определении RAH. в случае стрижа ноля по Z у него нет? если собьется вы его определяете каким способом? неужели не по тому самому датчику что с отверстием? я верю что в вашем скрипте может и не быть во время определения центра отверстия обнуления Z, и оно может быть и не нужен, если все правильно настроено уже.

только возвращаясь к теме - нужно найти центр поворотной оси. а не спорить насколько нужно или нужно что-то там в скрипте который в другом станке работает.
у меня по непонятным пока причинам слетали выставленные уже в центр ноли по Х и Z при новых запусках станка. и обновление автоматом точки вращения оси мне совсем не помешают. а будет все настроено и не будет слетать - и не нужен будет такой скрипт. и опять же повторюсь мир не только вокруг Стрижа вертится. возможно и будет смысл сделать мне подобный датчик с отверстием и по нему центровать если и дальше будут проблемы с концевыми датчиками в плане точности, и тогда, скорей всего, один раз найдя запилами центр не нужно будет больше его искать. вот только я исхожу из того что сейчас есть - станок, датчик и скрипт (которого пока нет). выше приведены были варианты, но не успел еще как следует разобраться.
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение SVP »

Rim писал(а):насколько я понимаю, чтобы использовать софтлимиты по Z нужно иметь начальную точку, от которой будет станок плясать.
в моем станке датчик и задает ноль Z при начальном определении RAH. в случае стрижа ноля по Z у него нет? если собьется вы его определяете каким способом? неужели не по тому самому датчику что с отверстием? я верю что в вашем скрипте может и не быть во время определения центра отверстия обнуления Z, и оно может быть и не нужен, если все правильно настроено уже.
Конечно по датчику. Однако это абсолютно отдельная процедура никакого отношения к поиску XY не имеющая.
Для неё есть отдельная кнопка, которая только по Z и тыкается.
И в основном таким образом находят вовсе не софтлимиты по Z, а величину вылета ТЕКУЩЕГО ИНСТРУМЕНТА.
Находить эту величину для ЗОНДА нет смысла.
Rim
Новичок
Сообщения: 38
Зарегистрирован: 10 фев 2016, 11:51
Репутация: 3
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение Rim »

SVP писал(а):Конечно по датчику. Однако это абсолютно отдельная процедура никакого отношения к поиску XY не имеющая.
Для неё есть отдельная кнопка, которая только по Z и тыкается.
если у вас в скрипте это отдельно от XY значит так оно и есть у вас. мне это ничем не поможет. вы старательно от темы уходите продолжая клювать одно и то же место про датчик и скрипт в стриже. у меня все иначе чем в стриже - мне это ничем не поможет. Z у меня одновременно с XY при нажатии RAH выставляется в ноли в машинных. и в определении центра оси вращения это ничем не помогает. Высота фрезы тоже отдельная операция у меня, и тоже ничем в определении центра оси вращения не поможет. если вам по теме есть что сказать - велком. напомню что тема это скрипт для определения центра вращения поворотной оси
Аватара пользователя
igor44
Почётный участник
Почётный участник
Сообщения: 380
Зарегистрирован: 23 июл 2013, 10:10
Репутация: 257
Откуда: Костромская обл.
Контактная информация:

Re: Нужен скрипт для поиска центра поворотной оси

Сообщение igor44 »

Внимательно не вчитывался........в Ваш спор, но мне кажется Вы что то недопонимаете.
У меня есть Стриж, ещё у меня есть второй станок портальник по дереву.
Так вот, когда я на портальник изготовил четвёртую ось, я изготовил датчик как на стриже
Немного подправив макрос от Стрижа, я без проблем эксплуатирую четвёртую ось.
Посмотрите тут
Re: Мои работы на ЧПУ #63
Ответить

Вернуться в «Windows / Mach»