Страница 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
filter.py.rar
(272 байт) 471 скачивание

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 - т.е. шаблон искал только большие буквы.

Новый фильтр:
filter.py.zip
(376 байт) 310 скачиваний

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

#!/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
так. удалил файл фильтра, заново скачал и разархивировал. фильтр отработал судя по консоли, попытался этот же файл открыть в емс - опять неизвестный символ пишет
Screenshot-3.png (3074 просмотра) <a class='original' href='./download/file.php?id=58780&mode=view' target=_blank>Загрузить оригинал (88.42 КБ)</a>

Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел

Добавлено: 25 сен 2015, 23:20
aegis
попробовал после фильтра закинуть содержимое в УП (мало ли какие глюки бывают),аут оф рейндж пишет
Screenshot-4.png (3072 просмотра) <a class='original' href='./download/file.php?id=58781&mode=view' target=_blank>Загрузить оригинал (100.01 КБ)</a>

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)