[WIKI] Работа с центроискателем в LinuxCNC

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
verser
Мастер
Сообщения: 1885
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1278
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение verser »

UAVpilot писал(а): Вот хитрец какой! Нет чтобы сделать крепление центроискателя так, чтобы оно ломалось при определённой нагрузке, но ты решил сделать его весь пластиковый, чтобы он весь ломался и к тебе выстраивалась очередь за новыми. Изображение
Очередь из "сверх-супер криворуких"? Хорошего же ты мнения о моих покупателях :hehehe:
Аватара пользователя
verser
Мастер
Сообщения: 1885
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1278
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение verser »

Для того, чтобы в .axisrc подсунуть свой вариант error_task, надо понимать, что error_task() - это метод внутри класса LivePlotter, и вызов его в axis.py происходит как-то так: LivePlotter.error_task()
И как правильно тогда переопределять error_task() в .axisrc? Надо вроде тогда весь класс LivePlotter наследовать?
Типа так

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

OldLivePlotter = LivePlotter(o)
class LivePlotter(OldLivePlotter):
    def __init__(self, *args, **kw):
        OldLivePlotter.__init__(self, *args, **kw)

    def error_task(self):
        error = e.poll()
        while error: 
            kind, text = error
            if kind in (linuxcnc.NML_ERROR, linuxcnc.OPERATOR_ERROR):
                icon = "error"
            else:
                icon = "info"
            notifications.add(icon, text)
            # здесь мои доп действия
            # ...
            error = e.poll()
        self.error_after = self.win.after(200, self.error_task)
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение Serg »

verser писал(а):Надо вроде тогда весь класс наследовать?
Не надо.

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

def my_error_task(self):
    blah-blah-blah

LivePlotter.error_task = my_error_task
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
verser
Мастер
Сообщения: 1885
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1278
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение verser »

Важное обновление Probe Screen ver. 1.1.0:

-Исправлен способ чтения канала ошибок, улучшающий безопасность поиска. Теперь, если случайно сработает probe не в момент поиска, то измерение сразу прерывается.

При установке Probe Screen для Axis необходимо дополнительно скопировать файл .axisrc в папку ~/
Если .axisrc уже используется, тогда добавьте в него содержимое и моего .axisrc
Для gmoccapy установка без изменений.

Исходники.

P.S. Спасибо UAVpilot за идею и помощь с .axisrc
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение nkp »

может и в этом случае удобней :
USER_COMMAND_FILE = ./axisrc
в Axis есть:

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

rcfile = "~/.axisrc"
user_command_file = inifile.find("DISPLAY", "USER_COMMAND_FILE") or ""
if user_command_file:
    rcfile = user_command_file
rcfile = os.path.expanduser(rcfile)
все всегда в папке конфига...
ну как вариант...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение Nick »

Кстати, может после обработки потока вызывать старую функцию axis, т.е.

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

Old_err = axis.err
Axis.err = MY.ERR
Def my.err
  If probing :
   error.poll()
  ... 
  Old_err()

Извиняюсь за корявый код, пишу с телефона.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение Serg »

Nick писал(а):Кстати, может после обработки потока вызывать старую функцию axis, т.е.
Старой полезет читать поток, а там уже пусто.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение Nick »

Там же есть условие, что мы читаем поток, только если мы в процессе probing, в противном случае отдаем все старой функции.
Кстати, а нельзя ли прочитать сообщение и если оно нам не подходит бросить его обратно в поток?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение Serg »

Nick писал(а):Кстати, а нельзя ли прочитать сообщение и если оно нам не подходит бросить его обратно в поток?
И снова его прочитать, и снова бросить его в поток, и снова ...
Прошёл год...
:)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
verser
Мастер
Сообщения: 1885
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1278
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение verser »

Пользователь lerman с форума linuxcnc.org подкинул неплохую идею по быстрой программной калибровке центра стилуса центроискателя. Идея не новая, но в Probe Screen пока не представлена.

Смысл идеи в измерении центра референсного отверстия дважды с разворотом центроискателя на 180°, затем нехитрый автоматический расчет и запись в таблицу инструмента новых, подкорректированных офсетов для probe, в которых будет учтено отклонение центра стилуса от центра :).

Есть, правда, один нюанс, после такой "калибровки", если чуть провернуть центроискатель, то все собьется, поэтому затрудняюсь сказать, насколько такая фича необходима?
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: [WIKI] Работа с центроискателем

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

я еще одну идею подкидывал - но она только для беспроводного варианта - измерять на ходу, при вращении шпинделя на малой скорости (несколько об/сек). При этом центровка вообще не будет иметь значения, нужно только определить "эффективный диаметр" стилуса. Что можно сделать по референсному отверстию или пазу.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
verser
Мастер
Сообщения: 1885
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1278
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение verser »

На форуме linuxcnc.org мне подсказали (дважды) об ошибке в инструкции по установке ProbeScreen. Вместо RAPID_FEED надо RAPID_SPEED. Исправил. На нашем форуме это даже за ошибку никто не считает :good: , но я здесь тоже исправил для порядка. :)
Сергей Саныч писал(а):я еще одну идею подкидывал - но она только для беспроводного варианта - измерять на ходу, при вращении шпинделя на малой скорости (несколько об/сек). При этом центровка вообще не будет иметь значения, нужно только определить "эффективный диаметр" стилуса. Что можно сделать по референсному отверстию или пазу.
Например, на 10 оборотах в секунду и при скорости уточняющего измерения 10 мм/мин погрешность измерения может уже не вписаться 0.01мм (будет 0.016мм + погрешность сработки самогО центроискателя 0.005, итого 0.021мм), так что поаккуратнее с этим способом.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение Nick »

Во многих случаях погрешность в 0.02 это даже слишком хорошо :)
yell
Опытный
Сообщения: 183
Зарегистрирован: 28 июн 2013, 14:27
Репутация: 22
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение yell »

Не полностью влезает в экран. Разрешение 1024x768. Подскажите, что можно сделать?
Вложения
axis_probe_screen.jpg (2499 просмотров) <a class='original' href='./download/file.php?id=60491&sid=9e6b67640e214ed2f0bd0c46cdde36d6&mode=view' target=_blank>Загрузить оригинал (195.47 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение Nick »

Такая же проблема - можно сделать окно шире экрана и вытаскивать его, чтобы была видна вся панель.
yell
Опытный
Сообщения: 183
Зарегистрирован: 28 июн 2013, 14:27
Репутация: 22
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение yell »

Хм. Буквально в начале ветки обсуждалось, что 1024x768 довольно распространенное разрешение (по крайней мере в нашей среде). Думал это было все таки учтено. А оказывается вон оно как...
yell
Опытный
Сообщения: 183
Зарегистрирован: 28 июн 2013, 14:27
Репутация: 22
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение yell »

А может где-то код AXIS можно изменить, что бы уменьшить левую панель там, где ручное управление. И уменьшить минимально допустимый размер окна с g-кодом...
yell
Опытный
Сообщения: 183
Зарегистрирован: 28 июн 2013, 14:27
Репутация: 22
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение yell »

И ещё вопрос. Что я делаю не так? При нажатии на какую бы-то ни было кнопку не вижу полноценной попытки что-либо измерить. Например, в группе кнопок Measurement outsitde нажимаю на кнопку Y-, происходит перемещение инструмента в сторону увеличения координат по Y, потом опускается по Z и всё останавливается. Попытки коснуться боковой грани не вижу. Хотя, если в любой момент во время этого движения датчик внезапно во что-то упрется, то останавливается.

Так же обнаружил следующее поведение:
1) Если датчик находится в состоянии касания (т.е. щуп отклонен), это не является препятствием для того, чтобы началось движение при нажатии кнопки.
2) Если сделать двойное нажатие по кнопке, прервать движение инструмента во время движения внезапным касанием, инструмент остановится, а после ликвидации этого искусственного касания начнет исполнять второе нажатие так, как будто до этого ничего не происходило.
Аватара пользователя
verser
Мастер
Сообщения: 1885
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1278
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение verser »

yell писал(а):Не полностью влезает в экран. Разрешение 1024x768. Подскажите, что можно сделать?
Хм, это я не подрасчитал, делал под 1024x768 теоретически, но проверить было не на чем, короче, ужму немного при очередном обновлении.
yell писал(а):Так же обнаружил следующее поведение:
1) Если датчик находится в состоянии касания (т.е. щуп отклонен), это не является препятствием для того, чтобы началось движение при нажатии кнопки.
2) Если сделать двойное нажатие по кнопке, прервать движение инструмента во время движения внезапным касанием, инструмент остановится, а после ликвидации этого искусственного касания начнет исполнять второе нажатие так, как будто до этого ничего не происходило.
Думаю, это баги, которые нужно исправлять, приму к сведению, спасибо за наводку.
yell писал(а):Попытки коснуться боковой грани не вижу.
Останавливается в момент, когда стартует G38, странно ... а ошибки какие-нибудь пишет при этом?
yell
Опытный
Сообщения: 183
Зарегистрирован: 28 июн 2013, 14:27
Репутация: 22
Контактная информация:

Re: [WIKI] Работа с центроискателем

Сообщение yell »

В нижнем правом углу никаких окон с ошибками не выпадает.
Ответить

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