Очередь из "сверх-супер криворуких"? Хорошего же ты мнения о моих покупателяхUAVpilot писал(а): Вот хитрец какой! Нет чтобы сделать крепление центроискателя так, чтобы оно ломалось при определённой нагрузке, но ты решил сделать его весь пластиковый, чтобы он весь ломался и к тебе выстраивалась очередь за новыми.
[WIKI] Работа с центроискателем в LinuxCNC
- verser
- Мастер
- Сообщения: 1897
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1282
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Работа с центроискателем
- verser
- Мастер
- Сообщения: 1897
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1282
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Работа с центроискателем
Для того, чтобы в .axisrc подсунуть свой вариант error_task, надо понимать, что error_task() - это метод внутри класса LivePlotter, и вызов его в axis.py происходит как-то так: LivePlotter.error_task()
И как правильно тогда переопределять error_task() в .axisrc? Надо вроде тогда весь класс LivePlotter наследовать?
Типа так
И как правильно тогда переопределять 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
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: [WIKI] Работа с центроискателем
Не надо.verser писал(а):Надо вроде тогда весь класс наследовать?
Код: Выделить всё
def my_error_task(self):
blah-blah-blah
LivePlotter.error_task = my_error_task
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- verser
- Мастер
- Сообщения: 1897
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1282
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Работа с центроискателем
Важное обновление Probe Screen ver. 1.1.0:
-Исправлен способ чтения канала ошибок, улучшающий безопасность поиска. Теперь, если случайно сработает probe не в момент поиска, то измерение сразу прерывается.
При установке Probe Screen для Axis необходимо дополнительно скопировать файл .axisrc в папку ~/
Если .axisrc уже используется, тогда добавьте в него содержимое и моего .axisrc
Для gmoccapy установка без изменений.
Исходники.
P.S. Спасибо UAVpilot за идею и помощь с .axisrc
-Исправлен способ чтения канала ошибок, улучшающий безопасность поиска. Теперь, если случайно сработает probe не в момент поиска, то измерение сразу прерывается.
При установке Probe Screen для Axis необходимо дополнительно скопировать файл .axisrc в папку ~/
Если .axisrc уже используется, тогда добавьте в него содержимое и моего .axisrc
Для gmoccapy установка без изменений.
Исходники.
P.S. Спасибо UAVpilot за идею и помощь с .axisrc
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: [WIKI] Работа с центроискателем
может и в этом случае удобней :
USER_COMMAND_FILE = ./axisrc
в Axis есть:
все всегда в папке конфига...
ну как вариант...
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] Работа с центроискателем
Кстати, может после обработки потока вызывать старую функцию axis, т.е.
Извиняюсь за корявый код, пишу с телефона.
Код: Выделить всё
Old_err = axis.err
Axis.err = MY.ERR
Def my.err
If probing :
error.poll()
...
Old_err()
Извиняюсь за корявый код, пишу с телефона.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: [WIKI] Работа с центроискателем
Старой полезет читать поток, а там уже пусто.Nick писал(а):Кстати, может после обработки потока вызывать старую функцию axis, т.е.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: [WIKI] Работа с центроискателем
Там же есть условие, что мы читаем поток, только если мы в процессе probing, в противном случае отдаем все старой функции.
Кстати, а нельзя ли прочитать сообщение и если оно нам не подходит бросить его обратно в поток?
Кстати, а нельзя ли прочитать сообщение и если оно нам не подходит бросить его обратно в поток?
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: [WIKI] Работа с центроискателем
И снова его прочитать, и снова бросить его в поток, и снова ...Nick писал(а):Кстати, а нельзя ли прочитать сообщение и если оно нам не подходит бросить его обратно в поток?
Прошёл год...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- verser
- Мастер
- Сообщения: 1897
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1282
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Работа с центроискателем
Пользователь lerman с форума linuxcnc.org подкинул неплохую идею по быстрой программной калибровке центра стилуса центроискателя. Идея не новая, но в Probe Screen пока не представлена.
Смысл идеи в измерении центра референсного отверстия дважды с разворотом центроискателя на 180°, затем нехитрый автоматический расчет и запись в таблицу инструмента новых, подкорректированных офсетов для probe, в которых будет учтено отклонение центра стилуса от центра .
Есть, правда, один нюанс, после такой "калибровки", если чуть провернуть центроискатель, то все собьется, поэтому затрудняюсь сказать, насколько такая фича необходима?
Смысл идеи в измерении центра референсного отверстия дважды с разворотом центроискателя на 180°, затем нехитрый автоматический расчет и запись в таблицу инструмента новых, подкорректированных офсетов для probe, в которых будет учтено отклонение центра стилуса от центра .
Есть, правда, один нюанс, после такой "калибровки", если чуть провернуть центроискатель, то все собьется, поэтому затрудняюсь сказать, насколько такая фича необходима?
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: [WIKI] Работа с центроискателем
я еще одну идею подкидывал - но она только для беспроводного варианта - измерять на ходу, при вращении шпинделя на малой скорости (несколько об/сек). При этом центровка вообще не будет иметь значения, нужно только определить "эффективный диаметр" стилуса. Что можно сделать по референсному отверстию или пазу.
Чудес не бывает. Бывают фокусы.
- verser
- Мастер
- Сообщения: 1897
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1282
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Работа с центроискателем
На форуме linuxcnc.org мне подсказали (дважды) об ошибке в инструкции по установке ProbeScreen. Вместо RAPID_FEED надо RAPID_SPEED. Исправил. На нашем форуме это даже за ошибку никто не считает , но я здесь тоже исправил для порядка.
Например, на 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] Работа с центроискателем
Во многих случаях погрешность в 0.02 это даже слишком хорошо
-
- Опытный
- Сообщения: 183
- Зарегистрирован: 28 июн 2013, 14:27
- Репутация: 22
- Контактная информация:
Re: [WIKI] Работа с центроискателем
Не полностью влезает в экран. Разрешение 1024x768. Подскажите, что можно сделать?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: [WIKI] Работа с центроискателем
Такая же проблема - можно сделать окно шире экрана и вытаскивать его, чтобы была видна вся панель.
-
- Опытный
- Сообщения: 183
- Зарегистрирован: 28 июн 2013, 14:27
- Репутация: 22
- Контактная информация:
Re: [WIKI] Работа с центроискателем
Хм. Буквально в начале ветки обсуждалось, что 1024x768 довольно распространенное разрешение (по крайней мере в нашей среде). Думал это было все таки учтено. А оказывается вон оно как...
-
- Опытный
- Сообщения: 183
- Зарегистрирован: 28 июн 2013, 14:27
- Репутация: 22
- Контактная информация:
Re: [WIKI] Работа с центроискателем
А может где-то код AXIS можно изменить, что бы уменьшить левую панель там, где ручное управление. И уменьшить минимально допустимый размер окна с g-кодом...
-
- Опытный
- Сообщения: 183
- Зарегистрирован: 28 июн 2013, 14:27
- Репутация: 22
- Контактная информация:
Re: [WIKI] Работа с центроискателем
И ещё вопрос. Что я делаю не так? При нажатии на какую бы-то ни было кнопку не вижу полноценной попытки что-либо измерить. Например, в группе кнопок Measurement outsitde нажимаю на кнопку Y-, происходит перемещение инструмента в сторону увеличения координат по Y, потом опускается по Z и всё останавливается. Попытки коснуться боковой грани не вижу. Хотя, если в любой момент во время этого движения датчик внезапно во что-то упрется, то останавливается.
Так же обнаружил следующее поведение:
1) Если датчик находится в состоянии касания (т.е. щуп отклонен), это не является препятствием для того, чтобы началось движение при нажатии кнопки.
2) Если сделать двойное нажатие по кнопке, прервать движение инструмента во время движения внезапным касанием, инструмент остановится, а после ликвидации этого искусственного касания начнет исполнять второе нажатие так, как будто до этого ничего не происходило.
Так же обнаружил следующее поведение:
1) Если датчик находится в состоянии касания (т.е. щуп отклонен), это не является препятствием для того, чтобы началось движение при нажатии кнопки.
2) Если сделать двойное нажатие по кнопке, прервать движение инструмента во время движения внезапным касанием, инструмент остановится, а после ликвидации этого искусственного касания начнет исполнять второе нажатие так, как будто до этого ничего не происходило.
- verser
- Мастер
- Сообщения: 1897
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1282
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Работа с центроискателем
Хм, это я не подрасчитал, делал под 1024x768 теоретически, но проверить было не на чем, короче, ужму немного при очередном обновлении.yell писал(а):Не полностью влезает в экран. Разрешение 1024x768. Подскажите, что можно сделать?
Думаю, это баги, которые нужно исправлять, приму к сведению, спасибо за наводку.yell писал(а):Так же обнаружил следующее поведение:
1) Если датчик находится в состоянии касания (т.е. щуп отклонен), это не является препятствием для того, чтобы началось движение при нажатии кнопки.
2) Если сделать двойное нажатие по кнопке, прервать движение инструмента во время движения внезапным касанием, инструмент остановится, а после ликвидации этого искусственного касания начнет исполнять второе нажатие так, как будто до этого ничего не происходило.
Останавливается в момент, когда стартует G38, странно ... а ошибки какие-нибудь пишет при этом?yell писал(а):Попытки коснуться боковой грани не вижу.
-
- Опытный
- Сообщения: 183
- Зарегистрирован: 28 июн 2013, 14:27
- Репутация: 22
- Контактная информация:
Re: [WIKI] Работа с центроискателем
В нижнем правом углу никаких окон с ошибками не выпадает.