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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5182
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

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

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

Сообщение Nick »

Можно написать простенький фильтр, который будет менять строки в которых есть uvw на
G90
Строка, с заменой на xyz
G91
Аватара пользователя
aegis
Мастер
Сообщения: 3171
Зарегистрирован: 22 мар 2012, 06:59
Репутация: 1810
Настоящее имя: Михайло
Откуда: Україна, Конотоп=>Запоріжжя=>Харьків

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

Сообщение aegis »

Nick, честно говоря не представляю как это сделать. мне для 2х осей достаточно Х(U) и Z(W). тупо найти и заменить не прокатит. ведь надо будет, к примеру, работать со строкой типа g1 U2 W-1 F0,1
или даже типа g2 U2 z-10 r2 f0.1
нікому нічого не нав'язую.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5182
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Nick писал(а):Можно написать простенький фильтр
А как быть с "G1X10W5" ?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

UAVpilot писал(а):А как быть с "G1X10W5" ?
не писать так ,и всё ;)
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

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

Сообщение PKM »

Сделать кинематику.
Или в хал прибавлять U к X, W к Z :)
Но проблем много все равно будет
Аватара пользователя
aegis
Мастер
Сообщения: 3171
Зарегистрирован: 22 мар 2012, 06:59
Репутация: 1810
Настоящее имя: Михайло
Откуда: Україна, Конотоп=>Запоріжжя=>Харьків

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

Сообщение aegis »

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

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

Сообщение Nick »

Как забить :o
Это же не наш метод :)
aegis писал(а):Nick, честно говоря не представляю как это сделать. мне для 2х осей достаточно Х(U) и Z(W). тупо найти и заменить не прокатит. ведь надо будет, к примеру, работать со строкой типа g1 U2 W-1 F0,1
или даже типа g2 U2 z-10 r2 f0.1
Вот для простого случая, когда строки только с приращениями:

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

#!/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):
		print("G90")
		l = l.replace("u","x")
		l = l.replace("U","X")
		l = l.replace("v","y")
		l = l.replace("V","Y")
		l = l.replace("W","z")
		l = l.replace("W","Z")
		print(l)
		print("G91")
	else :
		print(l)
Если будет и такие и такие, то можно так:

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

#!/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[#<_x>+[\\1]]",l,re.I)
		l = re.sub("V\s*([-\.0-9]+)","Y[#<_y>+[\\1]]",l,re.I)
		l = re.sub("W\s*([-\.0-9]+)","Z[#<_z>+[\\1]]",l,re.I)
		print(l)
	else :
		print(l)
		
Сохраняешь код как скажем filter.py, потом в ini пишешь:

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

[FILTER]
EXTENSION = py Filtered UVW as relative coordinates
.ngc = python filter.py
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

nkp писал(а):во втором скрипте не пропущены G91-G92?
А они там не нужны, там приращения в формулах = X[#<_x>+[...]].
Аватара пользователя
aegis
Мастер
Сообщения: 3171
Зарегистрирован: 22 мар 2012, 06:59
Репутация: 1810
Настоящее имя: Михайло
Откуда: Україна, Конотоп=>Запоріжжя=>Харьків

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

Сообщение aegis »

Nick, создал питон со вторым текстом, добавил его в ини, пишет "bad character 'u' used"/ правда емс сейчас 2,3,5 т/к/ на стареньком компе линукс посвежее не работает адекватно
нікому нічого не нав'язую.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Ммм скинь скриншот кода в linuxcnc

на 2.3.5 второй вариант не будет работать, там используется #<_x>, который только после появился.
Аватара пользователя
aegis
Мастер
Сообщения: 3171
Зарегистрирован: 22 мар 2012, 06:59
Репутация: 1810
Настоящее имя: Михайло
Откуда: Україна, Конотоп=>Запоріжжя=>Харьків

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

Сообщение aegis »

Nick, попробую тогда какнить на новом компе, правда толку с этого будет мало т.к. пока апгрейд не намечается
Screenshot-2.png (2611 просмотров) <a class='original' href='./download/file.php?id=58511&sid=4ff3f776a86e19fcc06a970771d7fc12&mode=view' target=_blank>Загрузить оригинал (60.43 КБ)</a>
мне сейчас бы то что на 2,3,5 работало
нікому нічого не нав'язую.
Аватара пользователя
aegis
Мастер
Сообщения: 3171
Зарегистрирован: 22 мар 2012, 06:59
Репутация: 1810
Настоящее имя: Михайло
Откуда: Україна, Конотоп=>Запоріжжя=>Харьків

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

Сообщение aegis »

на 2.6.5 подобного рода бяка.
Ник, смотри я питон в папку с конфигом станка закидывать должен?
Screenshot.png (2603 просмотра) <a class='original' href='./download/file.php?id=58513&sid=4ff3f776a86e19fcc06a970771d7fc12&mode=view' target=_blank>Загрузить оригинал (122.79 КБ)</a>
нікому нічого не нав'язую.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

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

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

Сообщение Nick »

Да, в папку с конфигом, этот скрип просто делает замену, которую я выше описал.
Т.е. код в окне должен поменяться.
Аватара пользователя
aegis
Мастер
Сообщения: 3171
Зарегистрирован: 22 мар 2012, 06:59
Репутация: 1810
Настоящее имя: Михайло
Откуда: Україна, Конотоп=>Запоріжжя=>Харьків

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

Сообщение aegis »

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

# Generated by stepconf at Fri Feb  6 21:57:45 2015
# If you make changes to this file, they will be
# overwritten when you run stepconf again

[EMC]
MACHINE = lathe
NML_FILE = emc.nml
DEBUG = 0

[DISPLAY]
DISPLAY = axis
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
INTRO_GRAPHIC = emc2.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/aegis/emc2/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
PYVCP = custompanel.xml
LATHE = 1

[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python
EXTENSION = py Filtered UVW as relative coordinates
.ngc = python filter.py


[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[RS274NGC]
PARAMETER_FILE = emc.var
RS274NGC_STARTUP_CODE = G7 G18 G21 G90 G95 G40

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 100000
SERVO_PERIOD = 1000000

[HAL]
HALFILE = lathe.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal

[TRAJ]
AXES = 3
COORDINATES = X Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 2.00
MAX_LINEAR_VELOCITY = 20.00

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl

[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 10.0
MAX_ACCELERATION = 100.0
STEPGEN_MAXACCEL = 125.0
SCALE = 333.333333333
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -200.0
MAX_LIMIT = 250.0
HOME_OFFSET = 0.0

[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 20.0
MAX_ACCELERATION = 200.0
STEPGEN_MAXACCEL = 250.0
SCALE = 133.333333333
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -150.0
MAX_LIMIT = 400.0
HOME_OFFSET = 0.0
нікому нічого не нав'язую.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Попробуй extension поменять на program_extension как в строчках выше. Если не получится попробуй рпсщирение дркгое поставить - не .ngc.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

может .ngc без точки - просто ngc
(привык проверять ,перед тем,как советовать,но сейчас не могу ;) )
Аватара пользователя
aegis
Мастер
Сообщения: 3171
Зарегистрирован: 22 мар 2012, 06:59
Репутация: 1810
Настоящее имя: Михайло
Откуда: Україна, Конотоп=>Запоріжжя=>Харьків

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

Сообщение aegis »

.py еще поставил и програм екстеншен прописал как раньше было, попробовал применять фильтр к тхт файлам

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

[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python
PROGRAM_EXTENSION = .py Filtered UVW as relative coordinates
.txt = python filter.py
все то же пишет/ это я н астарой машине пробую с первым вариантом кода
нікому нічого не нав'язую.
Аватара пользователя
aegis
Мастер
Сообщения: 3171
Зарегистрирован: 22 мар 2012, 06:59
Репутация: 1810
Настоящее имя: Михайло
Откуда: Україна, Конотоп=>Запоріжжя=>Харьків

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

Сообщение aegis »

nkp, когда убрал точку перед тхт то выскачила новая ошибка
Screenshot-Ошибка фильтра.png
Screenshot-Ошибка фильтра.png (9.83 КБ) 2576 просмотров
нікому нічого не нав'язую.
Ответить

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