Страница 7 из 31
Re: EMC2 и неровная поверхность гравировки
Добавлено: 15 фев 2012, 11:58
Nick
Код: Выделить всё
F500
M65 P0 (это мы выключаем работу компенсатора)
T1 M6 (выдаем запрос на установку щупа)
#<h> = 100
#<w> = 100
#<x0> = 100
#<y0> = 100
#<step> = 10
(PROBEOPEN filename.txt)
#<y> = #<y0>
o101 while [#<y> LT #<h>+#<y0>]
#<x> = #<x0>
o102 while [#<x> LT #<w>+#<x0>]
G0 X#<x> Y#<y>
G38.3 Z-10
G0 Z10
#<x> = [#<x>+#<step>]
o102 endwhile
#<y> = [#<y>+#<step>]
o101 endwhile
(PROBECLOSE)
M65 P1
G4 P1
M64 P1 (это мы скажем нашему скрипту обновить карту высот и компенсаций)
G4 P4 (делаем паузу на 4 секунды, на всякий случай, чтобы скрипт успел отработать)
T2 M6 (Выдаем запрос на установку фрезы)
M64 P0 (это мы включаем работу компенсатора)
(Сюда твой Gкод для гравировки платы)
M2 (end program)
Попробуй этот код, изменил Mкоды на не синхронизированные с движением.
M65 P0 (это мы выключаем работу компенсатора)
M65 P1
M64 P1 (это мы скажем нашему скрипту обновить карту высот и компенсаций)
M64 P0 (это мы включаем работу компенсатора)
Чтобы протестировать как работает, когда уже есть файл компенсаций, берешь вот такой код:
Код: Выделить всё
M65 P0 (это мы выключаем работу компенсатора)
M65 P1
G4 P1
M64 P1 (это мы скажем нашему скрипту обновить карту высот и компенсаций)
G4 P1
G0 X100 Y100
G0 X0
G0 Y0
M64 P0 (это мы включаем работу компенсатора)
И проверь в хал метер, включаются ли пины reset и enable! Если нет будем думать

.
Re: EMC2 и неровная поверхность гравировки
Добавлено: 15 фев 2012, 12:41
Романов Семен
Nick писал(а):
Чтобы протестировать как работает, когда уже есть файл компенсаций, берешь вот такой код:
Код: Выделить всё
M65 P0 (это мы выключаем работу компенсатора)
M65 P1
G4 P1
M64 P1 (это мы скажем нашему скрипту обновить карту высот и компенсаций)
G4 P1
G0 X100 Y100
G0 X0
G0 Y0
M64 P0 (это мы включаем работу компенсатора)
И проверь в хал метер, включаются ли пины reset и enable! Если нет будем думать

.
После этого в hal-метре вообще пропадает все что связано с compensation... =((
ps. уехал на работу...
pps. а нельзя кнопочками сделать? включить, выклюсить, обновить карту?
И все... пусть все делается вручную.
Один фиг не полностью автоматизированную линию же запускаю =)
Подумаешь кнопочки жать =)
Только возле кнопочек нужно еще выводить состояние: включено или выключено =)
Может проще так?
Re: EMC2 и неровная поверхность гравировки
Добавлено: 15 фев 2012, 13:57
Nick
Романов Семен писал(а):После этого в hal-метре вообще пропадает все что связано с compensation... =((
Не должно, т.е. до этого Gкода они там были, а после - нет? Может не в той вкладке смотрел.
Кнопочками можно и лампочки можно сделать, для этого надо нарисовать панель GladeVCP или PyVCP.
Re: EMC2 и неровная поверхность гравировки
Добавлено: 15 фев 2012, 17:44
Романов Семен
Nick писал(а):Романов Семен писал(а):После этого в hal-метре вообще пропадает все что связано с compensation... =((
Не должно, т.е. до этого Gкода они там были, а после - нет? Может не в той вкладке смотрел.
Да вроде все правильно смотрю =)
Нахожу в хаметре энейбл. он Фолсе.
Запускаю этот код.
Становиться прочерками... И в списке пропадает.
Перезапускаю ЕМС. все повторяется. сначала есть. код выполняю - пропадает =(
Nick писал(а):Кнопочками можно и лампочки можно сделать, для этого надо нарисовать панель GladeVCP или PyVCP.
Эт я далееек =(
Re: EMC2 и неровная поверхность гравировки
Добавлено: 15 фев 2012, 23:22
Nick
А если из консоли запустить и посмотреть, может туда пишет, где я накосячил

Re: EMC2 и неровная поверхность гравировки
Добавлено: 16 фев 2012, 22:36
Романов Семен
А что он в консоль то напишет? (извиняюсь за возможно тупой вопрос, но сил сегодня проверить нет. много км пути за сегодня проехал... устал... все завтра...)
Re: EMC2 и неровная поверхность гравировки
Добавлено: 16 фев 2012, 23:37
Nick
Ну если ошибки у скрипта будут, он их скорее всего в stdout скинет, а это консоль.
Т.е. запускаешь LinuxCNC из консоли и потом в нее поглядываешь, не появилось ли чего
Это стандартный метод, если под линухом что-то не работает, надо запустить программу из консоли и посмотреть, что там пишут

Re: EMC2 и неровная поверхность гравировки
Добавлено: 17 фев 2012, 11:05
Романов Семен
Вот что дает терминал:
Код: Выделить всё
semen@semen-desktop:~$ sudo -s
[sudo] password for semen:
root@semen-desktop:~# linuxcnc
LINUXCNC - 2.5.0-pre2-765-g0ff7c90
Machine configuration directory is '/home/semen/linuxcnc/configs/cnc_3040t'
Machine configuration file is 'cnc_3040t.ini'
Starting LinuxCNC...
emc/task/emctask.cc 357: interp_error: Файл закончился без знака процента или конца программы
Файл закончился без знака процента или конца программы
Traceback (most recent call last):
File "compensation.py", line 138, in <module>
comp.run()
File "compensation.py", line 131, in run
reset()
NameError: global name 'reset' is not defined
Re: EMC2 и неровная поверхность гравировки
Добавлено: 17 фев 2012, 11:12
Nick
Вот оно что, оказывается: NameError: global name 'reset' is not defined
Сейчас исправим... в 131 строчке нужно написать self.reset()
Или вот:
ЗЫ мог бы текст просто в сообщение вставить

Re: EMC2 и неровная поверхность гравировки
Добавлено: 17 фев 2012, 11:20
Романов Семен
Теперь так:
Код: Выделить всё
root@semen-desktop:~# linuxcnc
LINUXCNC - 2.5.0-pre2-765-g0ff7c90
Machine configuration directory is '/home/semen/linuxcnc/configs/cnc_3040t'
Machine configuration file is 'cnc_3040t.ini'
Starting LinuxCNC...
emc/task/emctask.cc 357: interp_error: Файл закончился без знака процента или конца программы
Файл закончился без знака процента или конца программы
ERROR! Map should be rectangular!
Shutting down and cleaning up LinuxCNC...
Cleanup done
root@semen-desktop:~#
При выполнении такого кода:
Код: Выделить всё
M65 P0 (это мы выключаем работу компенсатора)
M65 P1
G4 P1
M64 P1 (это мы скажем нашему скрипту обновить карту высот и компенсаций) (ошибка в терминале появляется где-то на этом моменте)
G4 P1
G0 X100 Y100
G0 X0
G0 Y0
M64 P0 (это мы включаем работу компенсатора)
Re: EMC2 и неровная поверхность гравировки
Добавлено: 17 фев 2012, 11:23
Nick
у тебя похоже карта не правильная. Он говорит, что карта не квадратная или в ней есть пропуски. Пересканируй заново... Скинь файл с картой высот...
Re: EMC2 и неровная поверхность гравировки
Добавлено: 17 фев 2012, 11:29
Романов Семен
Запускаю такой код:
Код: Выделить всё
F500
M65 P0 (это мы выключаем работу компенсатора)
T1 M6 (выдаем запрос на установку щупа)
#<h> = 100
#<w> = 100
#<x0> = 100
#<y0> = 100
#<step> = 10
(PROBEOPEN filename.txt)
#<y> = #<y0>
o101 while [#<y> LT #<h>+#<y0>]
#<x> = #<x0>
o102 while [#<x> LT #<w>+#<x0>]
G0 X#<x> Y#<y>
G38.3 Z-10
G0 Z10
#<x> = [#<x>+#<step>]
o102 endwhile
#<y> = [#<y>+#<step>]
o101 endwhile
(PROBECLOSE)
M65 P1
G4 P1
M64 P1 (это мы скажем нашему скрипту обновить карту высот и компенсаций)
G4 P4 (делаем паузу на 4 секунды, на всякий случай, чтобы скрипт успел отработать)
T2 M6 (Выдаем запрос на установку фрезы)
M64 P0 (это мы включаем работу компенсатора)
(Сюда твой Gкод для гравировки платы)
M2 (end program)
А linuxcnc ругается, что встречен плохой символ возле второй строки %)
И кстати после запуска теста помоему из халметра все что связано с компенсатион пропадает все равно =(
Re: EMC2 и неровная поверхность гравировки
Добавлено: 17 фев 2012, 11:35
Nick
Романов Семен писал(а):А linuxcnc ругается, что встречен плохой символ возле второй строки %)
может это русский язык ему не нравится или знак какой-то не печатный... Скинь код в виде файла...
Романов Семен писал(а):И кстати после запуска теста помоему из халметра все что связано с компенсатион пропадает все равно =(
А в консоле чего?
Re: EMC2 и неровная поверхность гравировки
Добавлено: 17 фев 2012, 11:40
Романов Семен
Запускаю этот файл, кода ругается на вторую строку.
Ну вот же я кинул что он пишет в терминале:
EMC2 и неровная поверхность гравировки #133
а щас пытаюсь выполнить сканирование - ругается на вторую строчку %)
до этого выполнял этот код....
странно....
кстати внешне, файл карты правильно выглядит!
Re: EMC2 и неровная поверхность гравировки
Добавлено: 17 фев 2012, 11:52
Nick
Попробуй комментарий стереть... может в нем проблема... И файл карты скинь.
Re: EMC2 и неровная поверхность гравировки
Добавлено: 17 фев 2012, 12:05
Романов Семен
проблема была в символе Р, походу там русская Р была =)))
Вообщем сканирование сделал.
И вот результат:
1. compensation - пина пропали в халметре.
2. Терминал выплюнул это:
Код: Выделить всё
root@semen-desktop:~# linuxcnc
LINUXCNC - 2.5.0-pre2-765-g0ff7c90
Machine configuration directory is '/home/semen/linuxcnc/configs/cnc_3040t'
Machine configuration file is 'cnc_3040t.ini'
Starting LinuxCNC...
Traceback (most recent call last):
File "compensation.py", line 138, in <module>
comp.run()
File "compensation.py", line 127, in run
h["out"]=self.get_comp(x,y)
File "compensation.py", line 77, in get_comp
if self.x_coords[i]>x : break
IndexError: list index out of range
Shutting down and cleaning up LinuxCNC...
Cleanup done
root@semen-desktop:~#
3. Файл карты внутри архива
Re: EMC2 и неровная поверхность гравировки
Добавлено: 17 фев 2012, 12:35
Nick
Еще один багфикс
Re: EMC2 и неровная поверхность гравировки
Добавлено: 17 фев 2012, 12:52
Романов Семен
Теперь вот это в терминале:
Код: Выделить всё
root@semen-desktop:~# linuxcnc
LINUXCNC - 2.5.0-pre2-765-g0ff7c90
Machine configuration directory is '/home/semen/linuxcnc/configs/cnc_3040t'
Machine configuration file is 'cnc_3040t.ini'
Starting LinuxCNC...
Traceback (most recent call last):
File "compensation.py", line 136, in <module>
comp.run()
File "compensation.py", line 125, in run
h["out"]=self.get_comp(x,y)
File "compensation.py", line 80, in get_comp
x2=self.x_coords[i]
UnboundLocalError: local variable 'i' referenced before assignment
Shutting down and cleaning up LinuxCNC...
Cleanup done
upd
уехал на работу =(
upd2
не пойму - проблемы с модулем или у меня =(((
Re: EMC2 и неровная поверхность гравировки
Добавлено: 17 фев 2012, 21:05
Nick
С модулем. Будем исправлять... У меня сегодня на работе интернет в середине дня лег, поэтому и не отвечал, и проверить работу модуля все никак не могу.
---------
Новая версия... И почему я сразу не мог сделать правильно

Re: EMC2 и неровная поверхность гравировки
Добавлено: 17 фев 2012, 22:43
Романов Семен
С новым модулем пробую сразу тестировать - как бы карта сканирования есть типа того.
Он ругается на карту. И пропадают ножки компенсации.
Решил сканировать заново.
Запускаю заново linuxcnc. ножки на месте.
Запускаю код сканирования:
Код: Выделить всё
F100
M65 P0 (это мы выключаем работу компенсатора)
T1 M6 (выдаем запрос на установку щупа)
#<h> = 100
#<w> = 100
#<x0> = 100
#<y0> = 100
#<step> = 10
(PROBEOPEN filename.txt)
#<y> = #<y0>
o101 while [#<y> LT #<h>+#<y0>]
#<x> = #<x0>
o102 while [#<x> LT #<w>+#<x0>]
G0 X#<x> Y#<y>
G38.3 Z-10
G0 Z10
#<x> = [#<x>+#<step>]
o102 endwhile
#<y> = [#<y>+#<step>]
o101 endwhile
(PROBECLOSE)
M65 P1
G4 P1
M64 P1 (это мы скажем нашему скрипту обновить карту высот и компенсаций)
G4 P4 (делаем паузу на 4 секунды, на всякий случай, чтобы скрипт успел отработать)
T2 M6 (Выдаем запрос на установку фрезы)
M64 P0 (это мы включаем работу компенсатора)
(Сюда твой Gкод для гравировки платы)
M2 (end program)
Как он выдает в терминале.
Код: Выделить всё
root@semen-desktop:~# linuxcnc
LINUXCNC - 2.5.0-pre2-765-g0ff7c90
Machine configuration directory is '/home/semen/linuxcnc/configs/cnc_3040t'
Machine configuration file is 'cnc_3040t.ini'
Starting LinuxCNC...
Probe tripped during a jog.
Probe tripped during a jog.
Probe tripped during a jog.
Traceback (most recent call last):
File "compensation.py", line 139, in <module>
comp.run()
File "compensation.py", line 128, in run
h["out"]=self.get_comp(x,y)
File "compensation.py", line 83, in get_comp
x2=self.x_coords[i]
IndexError: list index out of range
Shutting down and cleaning up LinuxCNC...
Cleanup done
root@semen-desktop:~#
Пины компенсации разумеется тоже пропадают в халметре...
Уже прям и не знаю как бится... =( Может у меня косяк в чем нибудь? =(((
или может другим макаром придумать вкл/выкл компенсации =(((
ps. или может я дам свою конфигурацию, ты у себя попробуешь, Ник? =((
вырезать поиск нуля из конфига, чтобы при запуске проги можно было кнопочкой обнулить координаты, чтобы он позволил выполнение программы...
А то я прямо и не знаю =(((
Может то что у меня linuxcnc 2.5.0 версия? =(
Честно говоря даже щас трудно понять в чем беда, ибо я не понимаю каким макаром работает M64/M65 etc....
