Автоматический Поиск Центра Отверстия, Чем воспользоваться? |
Здравствуйте, гость ( Вход | Регистрация )
Автоматический Поиск Центра Отверстия, Чем воспользоваться? |
28.3.2012, 13:59
Сообщение
#1
|
|
Новичок Группа: Пользователи Сообщений: 47 Регистрация: 10.3.2012 Пользователь №: 33478 |
Встал такой вопрос : можно ли в мач3 или какой нибудь другой программе определить центр отверстия или центр круглой заготовки/детали.
Нигде в интернете пока ничего вразумительного не нашел, может плохо искал правда. Здесь на форуме тоже похожей темы нет. Если у кого то есть опыт в этом деле то хотя бы намекните в каком направлении двигаться а то тыкаюсь сейчас как слепой котенок. Просто встал вопрос о последующей фрейзерной обработке цилиндрического изделия выточенного на токарном станке, а вот как центр этого изделия найти пока не понятно. Хочется так же знать есть ли в мач такая очень нужная функция как определение верха заготовки по z ? |
|
|
28.3.2012, 14:35
Сообщение
#2
|
|
Постоялец Группа: Пользователи Сообщений: 71 Регистрация: 14.8.2007 Пользователь №: 447 |
Ставите на концевик одной из осей щуп,тарируете его,касаетесь одной стенки отверстия,касаетесь другой стенки.Считаете. Вроде вот такой алгоритм должен подойти.Сам не делал,только идея.
По З дожно быть аналогично. А потом фреЙЙЙзеровать можно. )) Сообщение отредактировал Андр1 - 28.3.2012, 14:35 |
|
|
28.3.2012, 14:48
Сообщение
#3
|
|
Постоялец Группа: Пользователи Сообщений: 91 Регистрация: 19.11.2009 Пользователь №: 29841 |
Способов и инструментов масса(по слову probe ищется на раз). Вот один из примеров реализации http://youtu.be/TRUa81Oxfv8 (сам поиск центра с 1мин18сек)
|
|
|
29.3.2012, 12:22
Сообщение
#4
|
|
Новичок Группа: Пользователи Сообщений: 47 Регистрация: 10.3.2012 Пользователь №: 33478 |
probe значит..., оке спасибо, а вообще в том фидео показана реализация щупаа по программной части ничего нет, а меня интересует как раз эта часть , так как в остальном то все просто.
Андр1, алгоритм не верный, нужно коснуться 4 стенок , когда 2 стенок касаемся можно только центр отрезка найти, алгоритм то и ежу понятен, хочется чтобы "где то вот взял прогу скачал поставил и не мучаешься" |
|
|
29.3.2012, 15:51
Сообщение
#5
|
|
Завсегдатай Группа: Пользователи Сообщений: 114 Регистрация: 3.12.2009 Из: Украина Пользователь №: 29923 |
Вот скрипт для щупа по отвестию,под Мач3.Использовал скрипт для поиска "0" по габаритам-автор не я(взял либо тут на форуме либо еще гдето не помню уже).Переписал для отверстия.Причем отвестие любое-овал,прямоугоьник. XY и глубина Z
вносятся отдельно.Рекомендую сначала опробовать скрипт на незакрепленной болванке с отверстием,но у меня работает. Code "G92.2 " Dww = GetOEMDRO(1000)/(2) Zww = Question ("Mass Z ?") Xww = Question ("Mass X ?") Yww = Question ("Mass Y ?") ' setting_X ' Code "G91" Code "G04 p1" Code "G31 Z" & -Zww & "F1000" Code "G31 X" & 5.0-Xww/2 & "F1000" Code "G04 p1" Code "G31 X" &-10 & "F75" Code "G04 p1" Code "G00 X3" Code "G90 " While IsMoving() Wend Call SetDRO(0,0) While IsMoving() Wend Code "G91" Code "G04 p1" Code "G31 X" & Xww-10 & "F1000" Code "G04 p1" Code "G31 X" & 20 & "F75" Code "G04 p1" Code "G00 X-3" Code "G90 " While IsMoving() Wend Xw = GetDRO(0)-Dww*2 While IsMoving() Wend Call SetDRO(0, (GetDRO(0))/2) While IsMoving() Wend Code "G04 p1" Code "G91" Code "G90" Code "G31 G90 X" & 0 & "F1000.0" Code "G31 X" &0 & "F100" While IsMoving() Wend ' setting_Y ' Code "G91" Code "G31 Y" & 5.0-Yww/2 & "F1000" Code "G04 p1" Code "G31 Y" &-10 & "F75" Code "G04 p1" Code "G00 Y3" Code "G90 " While IsMoving() Wend Call SetDRO(1,0) While IsMoving() Wend Code "G91" Code "G04 p1" Code "G31 Y" & Yww-10 & "F1000" Code "G04 p1" Code "G31 Y" & 20 & "F100" Code "G04 p1" Code "G00 Y-3" Code "G90 " While IsMoving() Wend Yw = GetDRO(1)-Dww*2 Call SetDRO(1, (GetDRO(1))/2) While IsMoving() Wend Code "G04 p1" Code "G91 " Code "G90" Code "G31 G90 Y" & 0 & "F1000.0" Code "G31 Y" &0 & "F100" Code "G00 Z20" Code "G90 " While IsMoving() Wend responde = MsgBox ("MassX" &Xw&) responde = MsgBox ("MassY" &Yw&) Сообщение отредактировал Alexeon - 29.3.2012, 16:01 |
|
|
30.3.2012, 16:20
Сообщение
#6
|
|
Новичок Группа: Пользователи Сообщений: 47 Регистрация: 10.3.2012 Пользователь №: 33478 |
Alexeon, спасибоо огромное обязательно опробую как только доберусь до станка.
с меня пиво Сообщение отредактировал ridirt - 30.3.2012, 16:24 |
|
|
27.7.2013, 18:25
Сообщение
#7
|
|
Новичок Группа: Пользователи Сообщений: 47 Регистрация: 10.3.2012 Пользователь №: 33478 |
А как прикрутить макрос к какой нибудь команде, к примеру к команде включения шпинделя или просто к любой команде которая не понимается к примеру матчем . Вот есть к примеру какой то постпроцессор который к примеру почти подходящий к моему плазморезу, мои действия каковы, ? я должен как то поменять постпроцессор так чтобы там перед включением плазмы прописывался г-год, который бы запускал в матче макрос поиска верха заготовки, или переписать в матче комманду м3 ак чтобы она не просто включала к примеру плазму а перед этим еще верхзаготовки искала а потом только включала плазму. Вот есть к примеру какой то простенький постпроцессор с щиткама он мне выдал такую ерунду
N0000 G21 N0010 G17 N0020 G90 N0030 T10 N0040 G00 Z12.7000 N0050 X16.4112 Y138.0278 N0060 Z5.0000 N0070 G01 Z1.0000 F500 N0080 G02 X15.1881 Y129.0598 I11.3157 J134.1553 F5000.0 N0090 G03 X7.3548 Y71.6234 I39.9897 J96.4249 N0100 G03 X7.5567 Y71.4242 I8.1509 J72.2285 N0110 G02 X77.2862 Y-0.5682 I-173.6591 J-173.8606 N0120 G03 X78.9393 Y-0.5574 I78.1091 J-0.0000 N0130 G02 X148.7090 Y71.1964 I310.8167 J-156.2259 N0140 G03 X148.9226 Y71.4029 I148.1285 J72.0107 N0150 G03 X83.3670 Y121.2268 I116.2285 J96.4249 N0160 G01 X77.9956 Y114.1589 N0170 X72.6246 Y121.2265 N0180 G03 X15.1881 Y129.0598 I39.9897 J96.4249 N0190 G02 X6.2202 Y130.2829 I11.3157 J134.1553 N0200 G00 Z12.7000 N0210 M05 N0220 M05 N0230 M30 она работает и при этом рисуется сердечко, но вот чем здесь запускается плазма непонятно , ниаких кодов нет, только в конце выключения, а что выключать кгда ничего не включено. Темный лес до сих пор все это для меня |
|
|
20.11.2015, 1:19
Сообщение
#8
|
|
Новичок Группа: Пользователи Сообщений: 47 Регистрация: 10.3.2012 Пользователь №: 33478 |
Спустя почти 4 года я вновь озаботился всерьез проблемой поиска ценра отверстия, и в поиске яндекса вылетела на первой же странице тема созданная мной же. За более чем 3 года видимо в интернете ничего нового и не появилось, только старое, хорошенько покопавшись я нашел еще более старый пост с похожей тематикой на другом сайте, скрипт довольно простой , говорят что рабочий, поэтому я смело на следующей неделе попробую прикрутить его уже к своему станку
, может кого еще интересует выкину на всякий пожарный сюда Код Rem VBScript Поиск центра отверстия ProbeFeed = 100 'Скорость перемещения фрезы при поиске Rem У меня при этой скорости деталь даже не сдвигалась. ProbeDist = 30 ' Расстояние с запасом до краев отверстия. Если отверстие большое - увеличить до диаметра Code "M3" Code "G4 P1" 'пауза 1 секунда Code "F" &ProbeFeed 'Устанавливаем скорость поиска If GetOemLed (825) <> 0 Then 'Если фреза касается края отверстия выводим Code "(Probe plate is grounded, check connection and try again)" Else FeedCurrent = GetOemDRO(818) ' Запоминаем текущую скорость XCurrent = GetDro(0) YCurrent = GetDro(1) Code "G4 P1" ' Пауза в 1 секунду на всякий случай Rem Ищем влево XNew = Xcurrent - ProbeDist ' Точка за пределами отверстия Code "G31 X" &XNew While IsMoving() ' ждем пока коснется или остановится Wend XPos1 = GetVar(2000) 'предполагаем, что коснулись и считываем X1 Code "G0 X" &XCurrent 'быстро возвращаемся в исходную позицию Rem Ищем вправо XNew = XCurrent + ProbeDist ' Точка за пределами отверстия Code "G31 X" &XNew While IsMoving() ' ждем пока коснется или остановится Wend XPos2 = GetVar(2000) 'предполагаем, что коснулись и считываем X2 XCenter = (XPos1 + XPos2) / 2 ' так как отверстие круглое и фреза круглая, то центр по Х в середине Code "G0 X" &XCenter ' быстро устанавливаем в центр по Х Rem Ищем вперед YNew = YCurrent + ProbeDist ' Точка за пределами отверстия Code "G31 Y" &YNew While IsMoving() Wend YPos1 = GetVar(2001) 'предполагаем, что коснулись и считываем Y1 Code "G0 Y" &YCurrent Rem Ищем назад YNew = YCurrent - ProbeDist ' Точка за пределами отверстия Code "G31 Y" &YNew While IsMoving() Wend YPos2 = GetVar(2001) ' предполагаем, что коснулись и считываем Y2 YCenter = (YPos1 + YPos2) / 2 ' так как отверстие круглое и фреза круглая, то центр по Y в середине Rem Двигаемся в найденный центр по Y Code "G0 Y" &YCenter While IsMoving () ' ждем пока едет Wend Code "M5" Code "F" &FeedCurrent ' восстанавливаем скорость End If только мне в нем одно не понятно зачем нужны команды включения и выключения шпинделя |
|
|
27.11.2015, 13:53
Сообщение
#9
|
|
Мимо проходящий Группа: Пользователи Сообщений: 1 Регистрация: 27.11.2015 Пользователь №: 38422 |
только мне в нем одно не понятно зачем нужны команды включения и выключения шпинделя Мне тоже. Искал совершенно другое, но поиском случайно попал на этот форум. Вы хоть и не указали источник, но, по-видимому взяли этот скрипт из моего сообщения на одном форуме. Как я там пишу, исходник был не мой. Я его только доработал. В то время я просто не знал назначение команд М3-5, поэтому не удалил. :( На том же форуме можно в описании датчика касания найти и мой безопасный (встроен контроль касания при любом перемещении по осям, чтобы не повредить датчик касания) скрипт для поиска центра круглой шайбы по внешним габаритам. Это уже чисто мой алгоритм. Смешно, но туда тоже перекочевали и команды М3-5. Время правки закрылось поэтому изменить скрипт вряд ли возможно. Если есть желание и датчик касания, то можно потестировать тот скрипт и здесь. Я свой датчик касания разобрал, а собрать не смог. Есть идеи новой конструкции, но не хватает мотивации. |
|
|
27.11.2015, 20:07
Сообщение
#10
|
|
Новичок Группа: Пользователи Сообщений: 47 Регистрация: 10.3.2012 Пользователь №: 33478 |
Мне тоже. Искал совершенно другое, но поиском случайно попал на этот форум. Вы хоть и не указали источник, но, по-видимому взяли этот скрипт из моего сообщения на одном форуме. Как я там пишу, исходник был не мой. Я его только доработал. В то время я просто не знал назначение команд М3-5, поэтому не удалил. :( На том же форуме можно в описании датчика касания найти и мой безопасный (встроен контроль касания при любом перемещении по осям, чтобы не повредить датчик касания) скрипт для поиска центра круглой шайбы по внешним габаритам. Это уже чисто мой алгоритм. Смешно, но туда тоже перекочевали и команды М3-5. Время правки закрылось поэтому изменить скрипт вряд ли возможно. Если есть желание и датчик касания, то можно потестировать тот скрипт и здесь. Я свой датчик касания разобрал, а собрать не смог. Есть идеи новой конструкции, но не хватает мотивации. Эти команды как оказалось для исключения погрешности биения фрезы, по факту конечно он не нужен, погрешности там при цанговом зажиме и шлифованной поверхности быть не может, а вот определить центр не переставляя фрезу на обломок теоритически возможно, что упрощает задачу в разы, но есть риск повредить само отверстие в этом случа |
|
|
28.11.2015, 18:31
Сообщение
#11
|
|
Прописанный Группа: Главные администраторы Сообщений: 3127 Регистрация: 7.10.2006 Из: Санкт-Петербург Пользователь №: 4 |
Могу вам дать скрипт от CNC Magic Probe и спокойно найдете центр.
По сути это код поиска центра отверстия. На ю тубе поиском "CNC Magic Probe" посмотрите как этот работает. Цитата Rem VBScript To probe In the z axis If GetOemLed (825) <> 0 Then 'Check to see if the probe is already grounded or faulty Code "(Z-Plate is grounded, check connection and try again)" 'this goes in the status bar if aplicable Else Code "G4 P0" 'Pause 0 seconds to give time to position probe plate PlateOffset = GetUserDRO(1151) 'Get plate offset DRO CurrentFeed = GetOemDRO(818) 'Get the current feedrate to return to later Code "F15" 'slow down feedrate to 15 ipm Rem Probe In the z direction ZNew = GetDro(2) - 20 'probe move to current z - 20mm Code "G31Z" &ZNew While IsMoving() 'wait for probe move to finish Wend ZNew = GetVar(2002) 'read the touch point Code "G0 Z" &ZNew 'move back to hit point incase there was overshoot While IsMoving () Wend If PlateOffset <> 0 Then Call SetDro (2, PlateOffset) 'set the Z axis DRO to plate thickness Code "G4 P0.01" 'Pause for Dro to update. ZNew = PlateOffset + 0.5 Code "G0 Z" &ZNew 'put the Z retract height you want here Code "(Z axis is now zeroed)" 'puts this message in the status bar End If Code "F" &CurrentFeed 'Returns to prior feed rate End If Rem VBScript To center probe inside a pipe 'If GetOemLed (825) <> 0 Then 'Check to see if the probe is already grounded or faulty ' Code "(Probe plate is grounded, check connection and try again)" 'Else FeedCurrent = GetOemDRO(818) 'Get the current settings XCurrent = GetDro(0) YCurrent = GetDro(1) Code "G4 P0" 'Pause 0 second to give time to position probe plate Code "F15" 'slow feed rate to 15 ipm Rem Probe Left XNew = Xcurrent - 15 'probe -15mm to left Code "G31 X" &XNew While IsMoving() 'wait for the move to finish Wend XPos1 = GetVar(2000) 'get the probe touch location Code "G0 X" &XCurrent 'rapid move back to start point Rem Probe Right XNew = XCurrent + 15 'probe +15mm to right Code "G31 X" &XNew While IsMoving() Wend XPos2 = GetVar(2000) XCenter = (XPos1 + XPos2) / 2 'center is midway between XPos1 and XPos2 Code "G0 X" &XCenter 'rapid move to the x center location Rem Probe up YNew = YCurrent + 15 Code "G31 Y" &YNew While IsMoving() Wend YPos1 = GetVar(2001) Code "G0 Y" &YCurrent Rem Probe down YNew = YCurrent - 15 Code "G31 Y" &YNew While IsMoving() Wend YPos2 = GetVar(2001) YCenter = (YPos1 + YPos2) / 2 Rem move To the center Code "G0 Y" &YCenter While IsMoving () Wend Rem Code "G92 X0 Y0" While IsMoving() Wend code "G92 X0 Y0" code "G92 X0 Y0" Code "G0 Z" &ZNew +2 'put the Z retract height you want here Code "(Z axis is now zeroed)" 'puts this message in the status bar code "G0 X0 Y0" Code "F" &FeedCurrent 'restore starting feed rate Code "M5" 'End If Не буду долго разъяснять некие глюки мача по отработке скрипта и почему строчки повторяются. Это рабочий скрипт и с другими координатами применяется на ЧПУ CNC Magic Скопируйте цитату и вставьте в скрипт кнопки как текст. -------------------- Проблем нет,есть задачи.
|
|
|
29.11.2015, 19:37
Сообщение
#12
|
|
Новичок Группа: Пользователи Сообщений: 47 Регистрация: 10.3.2012 Пользователь №: 33478 |
ну на первый взгляд этот тот же самый скрипт, только пометки на англицком, Он рабочий я не спорю, в этом даже убрана команда включения шпинделя, но оставлена выключения)). В любом случае благодарю. Поиск центра ищется отлично.
|
|
|
29.11.2015, 21:53
Сообщение
#13
|
|
Прописанный Группа: Главные администраторы Сообщений: 3127 Регистрация: 7.10.2006 Из: Санкт-Петербург Пользователь №: 4 |
Прикольно... Здесь:
Цитата Способов и инструментов масса(по слову probe ищется на раз). Вот один из примеров реализации http://youtu.be/TRUa81Oxfv8 (сам поиск центра с 1мин18сек) Станок не наш, а экран мача, скрипты, в т.ч. определение координат датчика 0, определение длины инструмента-наше. -------------------- Проблем нет,есть задачи.
|
|
|
Текстовая версия | Сейчас: 24.4.2024, 2:48 |