Страница 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
это установка YAD
http://www.cnc-club.ru/forum/viewtopic. ... 69&p=96928
./configure
make
sudo make install

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
если вместо

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

        print 'error' 
просто напишем

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

        print line, 'error' 
то этот фильтр как раз и будет делать такое , как выше предложил 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 писал(а):Это пример.
та давай уже рыбу (ну ,не ту ,что у меня,а ту - из подписи твоей)
:hehehe:

Re: фильтр G кода

Добавлено: 21 янв 2020, 16:37
nkp
в питоне есть модуль re

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

import 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 писал(а):Как-то так:
как рыба - пойдет
но доработать напильником еще надо:

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

N123 G0 X   123 Y   234 Z    345