EMC2 и неровная поверхность гравировки [РЕШЕНО]

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

Re: EMC2 и неровная поверхность гравировки

Сообщение 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! Если нет будем думать :).
Романов Семен
Почётный участник
Почётный участник
Сообщения: 646
Зарегистрирован: 23 янв 2012, 23:25
Репутация: -80
Откуда: Самара

Re: EMC2 и неровная поверхность гравировки

Сообщение Романов Семен »

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. а нельзя кнопочками сделать? включить, выклюсить, обновить карту?
И все... пусть все делается вручную.
Один фиг не полностью автоматизированную линию же запускаю =)
Подумаешь кнопочки жать =)
Только возле кнопочек нужно еще выводить состояние: включено или выключено =)

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

Re: EMC2 и неровная поверхность гравировки

Сообщение Nick »

Романов Семен писал(а):После этого в hal-метре вообще пропадает все что связано с compensation... =((
Не должно, т.е. до этого Gкода они там были, а после - нет? Может не в той вкладке смотрел.

Кнопочками можно и лампочки можно сделать, для этого надо нарисовать панель GladeVCP или PyVCP.
Романов Семен
Почётный участник
Почётный участник
Сообщения: 646
Зарегистрирован: 23 янв 2012, 23:25
Репутация: -80
Откуда: Самара

Re: EMC2 и неровная поверхность гравировки

Сообщение Романов Семен »

Nick писал(а):
Романов Семен писал(а):После этого в hal-метре вообще пропадает все что связано с compensation... =((
Не должно, т.е. до этого Gкода они там были, а после - нет? Может не в той вкладке смотрел.
Да вроде все правильно смотрю =)
Нахожу в хаметре энейбл. он Фолсе.
Запускаю этот код.
Становиться прочерками... И в списке пропадает.
Перезапускаю ЕМС. все повторяется. сначала есть. код выполняю - пропадает =(
Nick писал(а):Кнопочками можно и лампочки можно сделать, для этого надо нарисовать панель GladeVCP или PyVCP.
Эт я далееек =(
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 и неровная поверхность гравировки

Сообщение Nick »

А если из консоли запустить и посмотреть, может туда пишет, где я накосячил :)
Романов Семен
Почётный участник
Почётный участник
Сообщения: 646
Зарегистрирован: 23 янв 2012, 23:25
Репутация: -80
Откуда: Самара

Re: EMC2 и неровная поверхность гравировки

Сообщение Романов Семен »

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

Re: EMC2 и неровная поверхность гравировки

Сообщение Nick »

Ну если ошибки у скрипта будут, он их скорее всего в stdout скинет, а это консоль.
Т.е. запускаешь LinuxCNC из консоли и потом в нее поглядываешь, не появилось ли чего :)
Это стандартный метод, если под линухом что-то не работает, надо запустить программу из консоли и посмотреть, что там пишут :)
Романов Семен
Почётный участник
Почётный участник
Сообщения: 646
Зарегистрирован: 23 янв 2012, 23:25
Репутация: -80
Откуда: Самара

Re: EMC2 и неровная поверхность гравировки

Сообщение Романов Семен »

Вот что дает терминал:

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

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

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

Re: EMC2 и неровная поверхность гравировки

Сообщение Nick »

Вот оно что, оказывается: NameError: global name 'reset' is not defined
Сейчас исправим... в 131 строчке нужно написать self.reset()
Или вот:
compensation.py.tar.gz
(1.62 КБ) 1160 скачиваний
ЗЫ мог бы текст просто в сообщение вставить :)
Романов Семен
Почётный участник
Почётный участник
Сообщения: 646
Зарегистрирован: 23 янв 2012, 23:25
Репутация: -80
Откуда: Самара

Re: EMC2 и неровная поверхность гравировки

Сообщение Романов Семен »

Теперь так:

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

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

Re: EMC2 и неровная поверхность гравировки

Сообщение Nick »

у тебя похоже карта не правильная. Он говорит, что карта не квадратная или в ней есть пропуски. Пересканируй заново... Скинь файл с картой высот...
Романов Семен
Почётный участник
Почётный участник
Сообщения: 646
Зарегистрирован: 23 янв 2012, 23:25
Репутация: -80
Откуда: Самара

Re: EMC2 и неровная поверхность гравировки

Сообщение Романов Семен »

Запускаю такой код:

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

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 ругается, что встречен плохой символ возле второй строки %)
И кстати после запуска теста помоему из халметра все что связано с компенсатион пропадает все равно =(
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 и неровная поверхность гравировки

Сообщение Nick »

Романов Семен писал(а):А linuxcnc ругается, что встречен плохой символ возле второй строки %)
может это русский язык ему не нравится или знак какой-то не печатный... Скинь код в виде файла...
Романов Семен писал(а):И кстати после запуска теста помоему из халметра все что связано с компенсатион пропадает все равно =(
А в консоле чего?
Романов Семен
Почётный участник
Почётный участник
Сообщения: 646
Зарегистрирован: 23 янв 2012, 23:25
Репутация: -80
Откуда: Самара

Re: EMC2 и неровная поверхность гравировки

Сообщение Романов Семен »

Запускаю этот файл, кода ругается на вторую строку.
sacn (copy).zip
(647 байт) 382 скачивания
Ну вот же я кинул что он пишет в терминале:
EMC2 и неровная поверхность гравировки #133

а щас пытаюсь выполнить сканирование - ругается на вторую строчку %)
до этого выполнял этот код....

странно....


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

Re: EMC2 и неровная поверхность гравировки

Сообщение Nick »

Попробуй комментарий стереть... может в нем проблема... И файл карты скинь.
Романов Семен
Почётный участник
Почётный участник
Сообщения: 646
Зарегистрирован: 23 янв 2012, 23:25
Репутация: -80
Откуда: Самара

Re: EMC2 и неровная поверхность гравировки

Сообщение Романов Семен »

проблема была в символе Р, походу там русская Р была =)))

Вообщем сканирование сделал.
И вот результат:
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. Файл карты внутри архива
pack.zip
(786 байт) 374 скачивания
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 и неровная поверхность гравировки

Сообщение Nick »

Еще один багфикс
Вложения
compensation.py.tar.gz
(1.59 КБ) 1210 скачиваний
Романов Семен
Почётный участник
Почётный участник
Сообщения: 646
Зарегистрирован: 23 янв 2012, 23:25
Репутация: -80
Откуда: Самара

Re: EMC2 и неровная поверхность гравировки

Сообщение Романов Семен »

Теперь вот это в терминале:

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

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

не пойму - проблемы с модулем или у меня =(((

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

Re: EMC2 и неровная поверхность гравировки

Сообщение Nick »

С модулем. Будем исправлять... У меня сегодня на работе интернет в середине дня лег, поэтому и не отвечал, и проверить работу модуля все никак не могу.

---------
Новая версия... И почему я сразу не мог сделать правильно :roll:
Вложения
compensation.py.tar.gz
(1.61 КБ) 1265 скачиваний
Романов Семен
Почётный участник
Почётный участник
Сообщения: 646
Зарегистрирован: 23 янв 2012, 23:25
Репутация: -80
Откуда: Самара

Re: EMC2 и неровная поверхность гравировки

Сообщение Романов Семен »

С новым модулем пробую сразу тестировать - как бы карта сканирования есть типа того.
Он ругается на карту. И пропадают ножки компенсации.

Решил сканировать заново.
Запускаю заново 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.... :?
Ответить

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