emc2 и со2 лазер
-
- Мастер
- Сообщения: 1114
- Зарегистрирован: 06 июл 2011, 15:26
- Репутация: 79
- Настоящее имя: Геннадий
- Откуда: Ростов-на-дону
- Контактная информация:
Re: emc2 и со2 лазер
На компе без лазера работает.Выигрыш по времени на этом файле почти в 2 раза.
Отличный результат.Завтра проверю на лазере.
Потом по возможности сравню с версией 2.7 (при движении по кривой или с изменением направления)
Отличный результат.Завтра проверю на лазере.
Потом по возможности сравню с версией 2.7 (при движении по кривой или с изменением направления)
-
- Мастер
- Сообщения: 1114
- Зарегистрирован: 06 июл 2011, 15:26
- Репутация: 79
- Настоящее имя: Геннадий
- Откуда: Ростов-на-дону
- Контактная информация:
Re: emc2 и со2 лазер
Проверил работу на лазере .
Все отлично работает.Движение стало очень красивым.
Захотелось сравнить скорость работы EMC2 c DSP контролером с китайских лазеров .
Но нет в наличии DSP контролера. Сейчас создам тему выложу тестовый файл может кто не пожалеет времени на
испытания.
Все отлично работает.Движение стало очень красивым.
Захотелось сравнить скорость работы EMC2 c DSP контролером с китайских лазеров .
Но нет в наличии DSP контролера. Сейчас создам тему выложу тестовый файл может кто не пожалеет времени на
испытания.
-
- Мастер
- Сообщения: 1114
- Зарегистрирован: 06 июл 2011, 15:26
- Репутация: 79
- Настоящее имя: Геннадий
- Откуда: Ростов-на-дону
- Контактная информация:
Re: emc2 и со2 лазер
Вылез небольшой недостаток в работе.
Если нажать стоп .Во время работы лазер не тушится, пока не нажать снова пуск и не дождаться конца программы.
Если нажать стоп .Во время работы лазер не тушится, пока не нажать снова пуск и не дождаться конца программы.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: emc2 и со2 лазер
это преодолимо...
попробуем подправить...
попробуем подправить...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: emc2 и со2 лазер
В HAL намутить соотв. логику, чтоб по E-STOP отключал лазер.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: emc2 и со2 лазер
может так:
привязались через AND к пину halui.program.is-running(который True только когда программа (G-код) запущена
по идее ,и авост и паузу должно отрабатывать...
Код: Выделить всё
loadrt core_xy_kins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hal_parport cfg="0x378 out "
setp parport.0.reset-time 3500
loadrt stepgen step_type=0,0,0
loadrt abs count=1
loadrt pwmgen output_type=1
loadrt scale names=scale.spindle
addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf pwmgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread
addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf scale.spindle servo-thread
addf pwmgen.update servo-thread
addf abs.0 servo-thread
#==================================================
loadrt wcomp
loadrt integ
loadrt toggle
loadrt edge
loadrt or2
loadrt mux2
addf mux2.0 servo-thread
addf or2.0 servo-thread
addf wcomp.0 servo-thread
addf integ.0 servo-thread
addf toggle.0 servo-thread
addf edge.0 servo-thread
setp mux2.0.in0 0.02 #длина стежка
setp mux2.0.in1 1.7 #расстояние между стежками
setp wcomp.0.max 1.5
net current-vel integ.0.in
net res integ.0.reset wcomp.0.over edge.0.in
net ss integ.0.out wcomp.0.in
net e_out edge.0.out toggle.0.in
setp edge.0.out-width-ns 50
loadrt and2 count=2
addf and2.0 servo-thread
addf and2.1 servo-thread
net spindle-cmd <= motion.spindle-speed-out scale.spindle.in
net current-vel <= motion.current-vel scale.spindle.gain
net spindle-cmd-out <= scale.spindle.out pwmgen.0.value
###########################################################################
net program_is_running halui.program.is-running and2.1.in0 #
net laser_on motion.digital-out-01 and2.1.in1 #
net and2_1_out and2.1.out and2.0.in0 #
#net spindle-on <= motion.digital-out-01 => and2.0.in0 #
###########################################################################
net enbl and2.0.out pwmgen.0.enable
net s_out toggle.0.out or2.0.in1
net or_out or2.0.out and2.0.in1
net digital_out motion.digital-out-00 or2.0.in0
net s_out mux2.0.sel
net l_step wcomp.0.max mux2.0.out
#-----------------------------------------------------------
net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 10000
setp pwmgen.0.scale 100000
setp pwmgen.0.offset 0.034
setp pwmgen.0.dither-pwm true
net spindle-cw <= motion.spindle-forward
#net probe-in => motion.probe-input
net estop-out => parport.0.pin-01-out
setp parport.0.pin-02-out-invert 1
net xstep => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
setp parport.0.pin-03-out-invert 1
net xdir => parport.0.pin-03-out
setp parport.0.pin-04-out-invert 1
net ystep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
setp parport.0.pin-05-out-invert 1
net ydir => parport.0.pin-05-out
setp parport.0.pin-06-out-invert 1
net zstep => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
setp parport.0.pin-07-out-invert 1
net zdir => parport.0.pin-07-out
setp parport.0.pin-14-out-invert 1
net spindle-cw => parport.0.pin-14-out
setp parport.0.pin-16-out-invert 1
net spindle-pwm => parport.0.pin-16-out
setp parport.0.pin-17-out-invert 1
#net xenable => parport.0.pin-17-out
net probe parport.0.pin-10-in-not => motion.probe-input
net probe-in <= parport.0.pin-10-in
net all-limit <= parport.0.pin-11-in-not
net home-z <= parport.0.pin-12-in-not
setp stepgen.1.position-scale [AXIS_0]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 10200
setp stepgen.1.dirsetup 10200
setp stepgen.1.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.1.position-cmd
net xpos-fb stepgen.1.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.1.step
net xdir <= stepgen.1.dir
net xenable axis.0.amp-enable-out => stepgen.1.enable
net all-limit => axis.1.neg-lim-sw-in
net all-limit => axis.1.pos-lim-sw-in
setp stepgen.0.position-scale [AXIS_1]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 10200
setp stepgen.0.dirsetup 10200
setp stepgen.0.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.0.position-cmd
net ypos-fb stepgen.0.position-fb => axis.1.motor-pos-fb
net ystep <= stepgen.0.step
net ydir <= stepgen.0.dir
net yenable axis.1.amp-enable-out => stepgen.0.enable
net all-limit => axis.0.neg-lim-sw-in
net all-limit => axis.0.pos-lim-sw-in
setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 10200
setp stepgen.2.dirsetup 10200
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.2.position-cmd
net zpos-fb stepgen.2.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.2.step
net zdir <= stepgen.2.dir
net zenable axis.2.amp-enable-out => stepgen.2.enable
net home-z => axis.2.home-sw-in
net all-limit => axis.2.neg-lim-sw-in
net all-limit => axis.2.pos-lim-sw-in
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
net tool-number <= iocontrol.0.tool-prep-number
net tool-change-loopback iocontrol.0.tool-change => iocontrol.0.tool-changed
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
по идее ,и авост и паузу должно отрабатывать...
Код: Выделить всё
###########################################################################
net program_is_running halui.program.is-running and2.1.in0 #
net laser_on motion.digital-out-01 and2.1.in1 #
net and2_1_out and2.1.out and2.0.in0 #
#net spindle-on <= motion.digital-out-01 => and2.0.in0 #
###########################################################################
-
- Мастер
- Сообщения: 1114
- Зарегистрирован: 06 июл 2011, 15:26
- Репутация: 79
- Настоящее имя: Геннадий
- Откуда: Ростов-на-дону
- Контактная информация:
Re: emc2 и со2 лазер
[highlight=][/highlight]
Понял .Спасибо.
Завтра попробую.
Понял .Спасибо.
Завтра попробую.
-
- Опытный
- Сообщения: 113
- Зарегистрирован: 30 ноя 2013, 15:38
- Репутация: 63
- Настоящее имя: Алексей
- Откуда: Новороссийск
- Контактная информация:
Re: emc2 и со2 лазер
Я попробовал вот эту штуку из поста 52:
Скорость обработки на видео 6000 мм/мин, гравировка в обоих направлениях. Размер напечатанной картинки 70мм*50мм, DPI 200 = шаг по вертикали 0,127мм. Размер g-cod'а 161 кБ (!)
Единственное, пришлось пришлось исправить авторскую ошибку в файлах laserraster.comp и raster_engrave.py, из-за которой raster_engrave.py некорректно создавал g-code в метрической системе, а laserraster.comp некорректно обрабатывал дюймовый g-code на метрическом станке.
Что не понравилось:
– скрипт не имеет никакого пользовательского интерфейса и все параметры нужно править в теле скрипта. Впрочем, это не сложно, так как они все расположены в начале.
– скрипт не понимает UTF-8, соответственно русские символы в пути к файлу не поддерживаются. Поэтому прошу Nick'а помочь побороть эту беду.
В аттаче исправленные файлы.
Результат очень понравился:http://www.youtube.com/watch?v=VTU2Eyr6MuY.Есть вот такая конфигурация:
вроде как она поддерживает гравировку растровых изображений.
https://github.com/jv4779/2x_laser
Скорость обработки на видео 6000 мм/мин, гравировка в обоих направлениях. Размер напечатанной картинки 70мм*50мм, DPI 200 = шаг по вертикали 0,127мм. Размер g-cod'а 161 кБ (!)
Единственное, пришлось пришлось исправить авторскую ошибку в файлах laserraster.comp и raster_engrave.py, из-за которой raster_engrave.py некорректно создавал g-code в метрической системе, а laserraster.comp некорректно обрабатывал дюймовый g-code на метрическом станке.
Что не понравилось:
– скрипт не имеет никакого пользовательского интерфейса и все параметры нужно править в теле скрипта. Впрочем, это не сложно, так как они все расположены в начале.
– скрипт не понимает UTF-8, соответственно русские символы в пути к файлу не поддерживаются. Поэтому прошу Nick'а помочь побороть эту беду.
В аттаче исправленные файлы.
- Вложения
-
- LaserEngraver.zip
- (9.5 КБ) 512 скачиваний
Последний раз редактировалось LexaK 26 авг 2014, 20:49, всего редактировалось 2 раза.
-
- Мастер
- Сообщения: 1114
- Зарегистрирован: 06 июл 2011, 15:26
- Репутация: 79
- Настоящее имя: Геннадий
- Откуда: Ростов-на-дону
- Контактная информация:
Re: emc2 и со2 лазер
Судя по видео размер поля гравировки зависит от изображения , а когда я пробовал гравировать на китайском гравере там поле задавалось по максимальным габаритам.
Я правильно все понял ?
Я правильно все понял ?
-
- Опытный
- Сообщения: 113
- Зарегистрирован: 30 ноя 2013, 15:38
- Репутация: 63
- Настоящее имя: Алексей
- Откуда: Новороссийск
- Контактная информация:
Re: emc2 и со2 лазер
Да, УП формируется с учетом рисунка. Над белыми полями, расположенными по краям, головка не ездит. Но, к сожалению, над белыми полями, расположенными в середине изображения, головка движется с рабочей скоростью (G1), а не с холостой (G0).
Кроме того, скрипт формирует поля для разгона, чтобы головка проходила по полю гравировки с постоянной скоростью.
Кроме того, скрипт формирует поля для разгона, чтобы головка проходила по полю гравировки с постоянной скоростью.
-
- Мастер
- Сообщения: 1114
- Зарегистрирован: 06 июл 2011, 15:26
- Репутация: 79
- Настоящее имя: Геннадий
- Откуда: Ростов-на-дону
- Контактная информация:
Re: emc2 и со2 лазер
Ну это уже большой выигрыш по времени.LexaK писал(а):Да, УП формируется с учетом рисунка. Над белыми полями, расположенными по краям, головка не ездит. Но, к сожалению, над белыми полями, расположенными в середине изображения, головка движется с рабочей скоростью (G1), а не с холостой (G0).
Кроме того, скрипт формирует поля для разгона, чтобы головка проходила по полю гравировки с постоянной скоростью.
А скорость G1 можно в настройках увеличить до G0.
Кто подскажет DSP контоллеры тоже гравируют растром по максимальным габаритам или только рисунок ?
-
- Опытный
- Сообщения: 113
- Зарегистрирован: 30 ноя 2013, 15:38
- Репутация: 63
- Настоящее имя: Алексей
- Откуда: Новороссийск
- Контактная информация:
Re: emc2 и со2 лазер
Пробовал G1 увеличивать до 15000. Только на дереве рисунок получается слишком бледным. Может, для пластиков такой режим сойдет.А скорость G1 можно в настройках увеличить до G0.
-
- Опытный
- Сообщения: 113
- Зарегистрирован: 30 ноя 2013, 15:38
- Репутация: 63
- Настоящее имя: Алексей
- Откуда: Новороссийск
- Контактная информация:
Re: emc2 и со2 лазер
Nick, а реально ли этот скрипт встроить в Gcodetools? Ибо очень неудобно растр обсчитывать в одном месте, а обрезку к нему - в другом, рискуя при этом не попасть. Затем их объединять.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: emc2 и со2 лазер
Надо разобраться... В принципе реально... только надо понять как определить что надо гравировать, а что резать.
Как задается картинка скрипту - через коммандную строку? Как задаются границы обработки?
Как задается картинка скрипту - через коммандную строку? Как задаются границы обработки?
-
- Опытный
- Сообщения: 113
- Зарегистрирован: 30 ноя 2013, 15:38
- Репутация: 63
- Настоящее имя: Алексей
- Откуда: Новороссийск
- Контактная информация:
Re: emc2 и со2 лазер
Можно через командную строку. Если скрипт запускается без параметров, открывается стандартное окно открытия файла. Вывод УП на стандартный вывод (каламбур получился). Выглядит это так:Как задается картинка скрипту - через коммандную строку?
– из EMC2 открыть raster_engrave.py,
– результате работы скрипта еще раз появляется окно открытия файла - указать картинку в формате *.png', '*.gif', '*.jpg', '*.tif', '*.bmp'
УП передается непосредственно в EMC2. Затем можно сделать Файл-Сохранить_код_как и сохранить готовую УП для дальнейшего использования.
Границами обработки служат границы самой картинки. Вычисляются как (Кол-во_пикселей/DPI). Можно задать размеры обработки принудительно - скрипт сам отмасштабирует картинку.Как задаются границы обработки?
Делать две УП - одну для гравировки, другую для резки. Выбираем векторы, тыкаем path-to-gcode. Выбираем растр, тыкаем reaster-to-gcode.только надо понять как определить что надо гравировать, а что резать.
Вот параметры, которые задаются в теле скрипта:
Код: Выделить всё
SPEED = 6000 //скорость обработки в ед/мин
ACCEL = 6000 //ускорение оси. Вместе с параметром SPEED служат для расчета полей разгона.
laser_power = 100 //мощность лазера. Пин задается в 2x_Laser.hal стандартными средствами
laser_on_time = 1 //длительность точки в мс. Если параметр слишком мал – точка выходит бледной, если слишком велик - смазанной
air_assist = True //включение воздуха. Пин задается в 2x_Laser.hal стандартными средствами
bidirectional_raster = True //направление гравировки: в одном направлении / в обоих. Для режима "в обоих" поле разгона прилепливается с двух сторон картинки.
is_metric = True //метрическая / дюймовая систепма
origin_x = 0 //начальная точка нуля в абсолютных координатах (сдвиг X/Y)
origin_y = 0
# center, <top|middle|bottom><left|center|right>
origin_loc = 'topleft' //положение нуля на растре
# for mirroring
mirror_x = False //зеркалить
mirror_y = False
# output raster Falsesize
keep_aspect_ratio = True //постоянное соотношение сторон
raster_w = -1 //ширина напечатанного растра в единицах. Если == -1 то ширина высчитывается как (Кол-во_пикселей/DPI)
raster_h = -1 //высота напечатанного растра в единицах. Если == -1 то ширина высчитывается как (Кол-во_пикселей/DPI)
# raster dpi
XDPI = 200 //DPI напечатанной картинки.
YDPI = 200
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: emc2 и со2 лазер
Так... уже лучше...
надо дописать - скрипт который рассчиает все эти параметры, все это потом запихиваем в коммандрную строку, где выводим нашу картинку в png -- а это можно сделать из консоли - inkscape умеет экпортировать заданные объекты в растр из консоли...
Осталось только написать
надо дописать - скрипт который рассчиает все эти параметры, все это потом запихиваем в коммандрную строку, где выводим нашу картинку в png -- а это можно сделать из консоли - inkscape умеет экпортировать заданные объекты в растр из консоли...
Осталось только написать
-
- Мастер
- Сообщения: 1114
- Зарегистрирован: 06 июл 2011, 15:26
- Репутация: 79
- Настоящее имя: Геннадий
- Откуда: Ростов-на-дону
- Контактная информация:
Re: emc2 и со2 лазер
Сделал еще один вариант механики лазерного гравера по кожаным деталям обуви (более жесткий) управление EMC2 кинематика CoreXY + LinuxCNC.
Большое спасибо форуму и всем кто помогал мне в этом нелегком для меня деле.
Работа лазера меня устраивает. Вот видео работы.На видео не видно -
линии выжигаются пунктиром точки круг диаметром 0.8мм
http://youtu.be/fh969oTLSWE
Большое спасибо форуму и всем кто помогал мне в этом нелегком для меня деле.
Работа лазера меня устраивает. Вот видео работы.На видео не видно -
линии выжигаются пунктиром точки круг диаметром 0.8мм
http://youtu.be/fh969oTLSWE
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: emc2 и со2 лазер
!
А зачем CoreXY? Чтобы уменьшить вес каретки?
Как управляешь лазером? M3 M5?
А зачем CoreXY? Чтобы уменьшить вес каретки?
Как управляешь лазером? M3 M5?
-
- Мастер
- Сообщения: 1114
- Зарегистрирован: 06 июл 2011, 15:26
- Репутация: 79
- Настоящее имя: Геннадий
- Откуда: Ростов-на-дону
- Контактная информация:
Re: emc2 и со2 лазер
CoreXY чтоб уменьшить вес каретки , я не уверен что я много выиграл , но так как уже разобрался с этой кинематикой решил делать на ней .Nick писал(а):!
А зачем CoreXY? Чтобы уменьшить вес каретки?
Как управляешь лазером? M3 M5?
Лазером управляю вкл m62p1 , выкл m63p1 СПАСИБО nkp
На мой взгляд я уже выжал из нее все по максимуму. Выше 30 м/мин уже не справляется комп при BASE_PERIOD = 25000
Теперь фотел бы сделать Laser Galvo на EMC2 ,
http://www.youtube.com/watch?v=gK14SaaYMoc
только не хотелось бы изобретать велосипед , и использовать как можно больше готовых узлов,но пока не собрал необходимой информации. Знакомый был в Турции видел у турка самоделку Laser Galvo , на которой
он в промышленных масштабах гравирует лазером по коже для обуви , значит комплектующие на нее существуют.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: emc2 и со2 лазер
Так на форуме проскакивали предложения диодов лазерных... я даже уравал один. мощность правдо слабенькая...
Или тебя интересует именно голова поворотная?
В этом случае можно поробовать дергать зеркала линейным движком от винчестерных головок. Скорость будет адовая .
Но у него не большой угол работы - иначе фокус будет теряться.
Или тебя интересует именно голова поворотная?
В этом случае можно поробовать дергать зеркала линейным движком от винчестерных головок. Скорость будет адовая .
Но у него не большой угол работы - иначе фокус будет теряться.