Страница 23 из 39
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 21 сен 2015, 23:02
nkp
это уже лучше))
фильтр срабатывает - запускает скрипт...
в скрипте ошибка отступа - питон требует соблюдения отступов - количества
пробелов в начале каждой строки...
иногда еще бяки винда вставляет ,если ее использовать для создания файла...
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 21 сен 2015, 23:09
aegis
nkp, а сколько там этих отступов должно быть? сегодня уже все, а вот завтра пока на фрезере растачиваться буду можно с компом пошаманить
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 21 сен 2015, 23:13
nkp
утром я тебе просто файл "правильный" выложу
так проще будет...
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 21 сен 2015, 23:17
aegis
nkp, под старый линукс?
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 22 сен 2015, 07:51
nkp
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 22 сен 2015, 10:01
Nick
aegis писал(а):nkp, а сколько там этих отступов должно быть?
Просто должны быть одинаковые. (и в самом начале не должно быть, в питоне отступами обозначаются границы процедур, циклов и условий)
Можешь в консоле запустить:
cat file.ngc | python filter.py
cat file.ngc - вывести содержимое файла (файл - твой файл с gкодом)
| - передать вывод следующей программе на вход
python filter.py наш скрипт
в итоге должен вывести преобразованый код.
PS для старой версии вот это может сработать:
#<_x> yz заменил на #5420 #5421 #5422
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 22 сен 2015, 22:26
aegis
Nick писал(а):в итоге должен вывести преобразованый код.
в итоге ничего не изменилось
Код: Выделить всё
aegis@aegis-cnc:~$ cat filter.ngc | python filter.py
%
G7 G18 G90 G95
M3 S500
G0 Z0.5
g0 x-8
g0 u2
g0 w-4
g0 u2 w-2
g0 z1
g0 x-10 z30
M5
M30
%
aegis@aegis-cnc:~$
фильтр использовал такой
Код: Выделить всё
#!/usr/bin/env python
import sys, re
s = sys.stdin.read()
for l in s.split("\n") :
if re.search("G\d+.*[UVW]",l,re.I):
l = re.sub("U\s*([-\.0-9]+)","X[#5420+[\\1]]",l,re.I)
l = re.sub("V\s*([-\.0-9]+)","Y[#5421+[\\1]]",l,re.I)
l = re.sub("W\s*([-\.0-9]+)","Z[#5422+[\\1]]",l,re.I)
print(l)
else :
print(l)
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 22 сен 2015, 23:16
aegis
зделал подобную процедуру на новом пк - опять ничего не меняется в файле, тоесть фильтр не выполняется по сути дела
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 23 сен 2015, 08:57
Nick
все время забываю, что re.I не работает для re.sub - т.е. шаблон искал только большие буквы.
Новый фильтр:
Код: Выделить всё
#!/usr/bin/env python
import sys, re
s = sys.stdin.read()
for l in s.split("\n") :
if re.search("G\d+.*[UVW]",l,re.I):
l = re.sub("(?i)U\s*(-[\.0-9]+)","X[#5420\\1]",l)
l = re.sub("(?i)V\s*(-[\.0-9]+)","Y[#5421\\1]",l)
l = re.sub("(?i)W\s*(-[\.0-9]+)","Z[#5422\\1]",l)
l = re.sub("(?i)U\s*([\.0-9]+)","X[#5420+\\1]",l)
l = re.sub("(?i)V\s*([\.0-9]+)","Y[#5421+\\1]",l)
l = re.sub("(?i)W\s*([\.0-9]+)","Z[#5422+\\1]",l)
print(l)
else :
print(l)
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 24 сен 2015, 22:38
aegis
Nick,
Код: Выделить всё
aegis@aegis-cnc:~$ cat filter.ngc | python filter.py
File "filter.py", line 2
import sys, re
^
IndentationError: unexpected indent
aegis@aegis-cnc:~$
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 25 сен 2015, 08:29
Nick
Там файл есть, скачай лучше его.
ЗЫ как ты так копируешь текст, что у тебя добавляются пробелы?
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 25 сен 2015, 17:25
aegis
Nick, пробовал и копировать и качать с заменой. выделил/скопировал мышкой. где пробелы то?
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 25 сен 2015, 22:56
Nick
aegis писал(а):Nick, пробовал и копировать и качать с заменой. выделил/скопировал мышкой. где пробелы то?
Код: Выделить всё
aegis@aegis-cnc:~$ cat filter.ngc | python filter.py
File "filter.py", line 2
import sys, re
^
IndentationError: unexpected inden
-------------
Файл "filter.py", строка 2
import sys, re
====^ <----вот тут
IndentationError: неожиданный отступ
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 25 сен 2015, 23:16
aegis
так. удалил файл фильтра, заново скачал и разархивировал. фильтр отработал судя по консоли, попытался этот же файл открыть в емс - опять неизвестный символ пишет
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 25 сен 2015, 23:20
aegis
попробовал после фильтра закинуть содержимое в УП (мало ли какие глюки бывают),аут оф рейндж пишет
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 25 сен 2015, 23:23
Nick
В консоли он отработал, а вот в LinuxCNC - нет. Если бы отработал внизу в коде был бы тот же текст, что и в консоли, а там оригинал.
В папкес конфигурацией точно поменял скрипт?
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 25 сен 2015, 23:24
Nick
aegis писал(а):,аут оф рейндж пишет
Хммм может в 2.3.4 не было таких переменных вообще, не только буквенных?
Ну тогда подойдет только первый вариант.
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 25 сен 2015, 23:28
aegis
Nick, точно. еще раз удалил из папки конфигурации и перекинул то что в корневой папке висело. все как в 454м посте. сейчас попробую откатиться на первый вариант и гляну
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 25 сен 2015, 23:39
aegis
Код: Выделить всё
aegis@aegis-cnc:~$ cat filter.ngc | python filter.py
%
G7 G18 G90 G95
M3 S500
G0 Z0.5
g0 x-8
G90
g0 x2
G91
G90
g0 w-4
G91
G90
g0 x2 w-2
G91
g0 z1
g0 x-10 z30
M5
M30
%
aegis@aegis-cnc:~$
фильтр отрабатывает, но не полностью. когда в строчке встречается сразу 2 координаты первуб меняет а вторую оставляет как есть. само емс не хавает (заменял питон в папке конфигурации) и опять жалуется ан неизвестный символ в 9й строчке.
а не он W не отрабатывает чего-то... но емс всеравно ругается на 9ю строчку где U вперво попадается
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 26 сен 2015, 00:45
Nick
Вот тут в одной из строчек должна быть маленькая w.
l = l.replace("W","z")
l = l.replace("W","Z")
print(l)