Страница 1 из 1
фильтр G кода
Добавлено: 21 янв 2020, 13:06
Dmaster
появилась странная задача установить чпу на странный универсально-фрезерный с чпу не контурный.
станок на швп и от одного мотора переключается от оси к оси. Переделывать механику смысла нет. На нем всё равно только сверлить.
Так вот задача поставить фильтр в LINUXCNC что-б ругался на наличие двух осей в одной строке, наличие G2 G3, наличие резьбовых циклов итд.
http://linuxcnc.org/docs/html/config/in ... er_section
Вот некий мануал из которого мне нифига не понятен принцип. да и возможно я смотрю не туда.
Если это не возможно, то отправить станок в аварию при попытке двигать 2 оси - не проблема, но хотелось сделать красиво)
Re: фильтр G кода
Добавлено: 21 янв 2020, 13:22
nkp
sed тебе в помощь
несколько примеров есть на форуме
с ним всё решишь
Re: фильтр G кода
Добавлено: 21 янв 2020, 13:25
nkp
и даже не так)
если менять ничего в жкоде не собираешься,то
хоть на питоне ,хоть на любом скриптовом языке :
1. изловить нашу строку(и)
2. выдать сигнал(действие)
что в итоге должно произойти?
просто окошко с предупреждением?
какой gui ?
Re: фильтр G кода
Добавлено: 21 янв 2020, 14:14
Dmaster
nkp писал(а):какой gui ?
axis
nkp писал(а):1. изловить нашу строку(и)
2. выдать сигнал(действие)
что в итоге должно произойти?
просто окошко с предупреждением?
именно) желательно с указанием строки.
Вопрос в том, куда скрипт прикручивать?
Re: фильтр G кода
Добавлено: 21 янв 2020, 14:20
nkp
в ини напиши
Код: Выделить всё
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script
ngc = ./p.py
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python
в папку конфига положи файл из вложения(сделай его исполняемым)
положу два варианта - один с yadом
захочешь - установишь - будет окошко вылезать - в нем напишешь и выведешь - что пожелаешь
это рыба(звиняй)
не разберешься - подмогну

Re: фильтр G кода
Добавлено: 21 янв 2020, 14:23
nkp
Re: фильтр G кода
Добавлено: 21 янв 2020, 14:28
nkp
это рыба без YAD
будет работать сразу
"рыба" потому как там только одно условие прописано
"если на одной строке мы нашли x и y"
надо прописать все "ненужные" варианты и комбинации
Re: фильтр G кода
Добавлено: 21 янв 2020, 14:55
Serg
nkp писал(а):положу два варианта - один с yadом
захочешь - установишь - будет окошко вылезать - в нем напишешь и выведешь - что пожелаешь
Проще обычным фильтром в строке с запрещённым кодом дописать пояснение обычными словами (не коментом!) - при загрузке УП LinuxCNC ругнётся на строчку с указанием её номера.
Re: фильтр G кода
Добавлено: 21 янв 2020, 16:10
nkp
если вместо
просто напишем
то этот фильтр как раз и будет делать такое , как выше предложил
UAVpilot
ну как всегда - решений много
но если таки хочется теплого_лампового, или просто поиграть в "а вот я могу это одной строчной написать" - то тогда sed ( скорей всего его выше было названо "обычным фильтром"

)
хотя если быть точным,то это просто сторонняя программа
Re: фильтр G кода
Добавлено: 21 янв 2020, 16:16
nkp
как по мне - тут условия правильно выписать
ну например - символ X и Y может встретиться и в комментариях
это надо учесть
и тд и тп
а уже на каком языке это донести - дело второстепенное
Re: фильтр G кода
Добавлено: 21 янв 2020, 16:26
Serg
А не надо искать всякие "X" и "Y", надо искать "[xX] *[0-9.][0-9.]*".

Re: фильтр G кода
Добавлено: 21 янв 2020, 16:27
nkp
UAVpilot писал(а):А не надо искать всякие "X" и "Y", надо искать "[xX] *[0-9.][0-9.]*
это кому?
вроде бы всё написано выше -
правильно прописать условия...
Re: фильтр G кода
Добавлено: 21 янв 2020, 16:28
Serg
Это пример.

Re: фильтр G кода
Добавлено: 21 янв 2020, 16:32
nkp
UAVpilot писал(а):Это пример.
та давай уже рыбу (ну ,не ту ,что у меня,а ту - из подписи твоей)

Re: фильтр G кода
Добавлено: 21 янв 2020, 16:37
nkp
в питоне есть модуль re
там весь инструментарий для парсинга
Re: фильтр G кода
Добавлено: 21 янв 2020, 17:56
Serg
nkp писал(а):та давай уже рыбу (ну ,не ту ,что у меня,а ту - из подписи твоей)
Как-то так:
Код: Выделить всё
$ cat - | sed -e 's/\(^.*X[0-9.][0-9.]* *[YZ][0-9.][0-9.]*.*$\)/Bad command: \1/i' -e 's/\(^.*Y[0-9.][0-9.]* *[XZ][0-9.][0-9.]*.*$\)/Bad command: \1/i' -e 's/\(^.*Z[0-9.][0-9.]* *[XY][0-9.][0-9.]*.*$\)/Bad command: \1/i' -e 's/\(^.*G[23][^0-9].*$\)/Bad command: \1/i'
N123 G0 X123 Y234 Z345
Bad command: N123 G0 X123 Y234 Z345
G1 X222 Y333
Bad command: G1 X222 Y333
X444 Z777
Bad command: X444 Z777
G2 X555
Bad command: G2 X555
G1 X444
G1 X444
G0 Y777
G0 Y777
$
Re: фильтр G кода
Добавлено: 21 янв 2020, 20:15
nkp
почему говорят: рыба ( в смысле - заготовка документа)?
Это просто сокращение от выражения "сырая рыба", то есть продукт, который еще надо приготовить, хотя основа уже имеется.
найдено на просторах интернета
UAVpilot писал(а):Как-то так:
как рыба - пойдет
но доработать напильником еще надо: