Конфигурация LinuxCNC для программы LightBurn

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
gendos
Мастер
Сообщения: 1114
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 79
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Конфигурация LinuxCNC для программы LightBurn

Сообщение gendos »

Добрый день.Есть лазер со2 под управлением LinuxCNC. сейчас пишу g в программе для фрезерного станка.работать очень неудобно.хочу начать писать g код в программе LightBurn (программа может управлять многими типами лазеров).В ней один из вариантов g кода используется команда на включение лазера M67 E0 Q1. кто нибудь встречал готовую конфигурацию LinuxCNC , чтобы взять за основу для редактирования.
Пример ж кода который выдает LightBurn
; LB by SSG 1.2.01
; LinuxCNC device profile, current position
; Bounds: X-265.75 Y-228.65 to X0 Y-0
G21
G91
; Cut @ 100 mm/sec, 100% power
M8
M67 E0 Q0
G0 X-12.725 Y-22.575 F0
; Layer C00
M67 E0 Q1
G1 X-0.05 Y-0.1 F6000
G1 X-0.025 Y-0.075
G1 X-0.05 Y-0.1
G1 X-0.025 Y-0.075
G1 X-0.05 Y-0.1
G1 X-0.025 Y-0.075
G1 X-0.05 Y-0.075
G1 X-0.025 Y-0.1
G1 X-0.025 Y-0.075
G1 X-1.1 Y-2.575
G1 X-4.3 Y-10.2
G1 X-1.075 Y-2.575
G1 X-3.225 Y-7.65
M67 E0 Q0

а вот пример ж кода который использую я сейчас в LinuxCNC
G21
G0 G17 G40 G49 G80 G90
S5 M3 F12000
S8700
z0
T0
G0 0
G00 m63p1
X10.565 Y21.4996
G01m62p1 F800.0
X6.5649 F800.0
X6.3652Y21.493
X6.1677Y21.4733
или может кто знает можно ли в LightBurn сделать изменения чтоб вместо M67 E0 Q1 писал G01m62p1 ?
Последний раз редактировалось gendos 22 фев 2024, 21:09, всего редактировалось 1 раз.
alex_sar
Мастер
Сообщения: 1718
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 286
Настоящее имя: Алексей
Контактная информация:

Re: Конфигурация LinuxCNC для программы LightBurn

Сообщение alex_sar »

https://linuxcnc.org/docs/html/gcode/m- ... #mcode:m67
https://linuxcnc.org/docs/html/gcode/m- ... #mcode:m62
G01m62p1
вообще то вы используете M62 P1
G01 в этой строчке не работает и не нужна

поправить не сложно через hal файлы

надо взять сигнал с motion.analog-out-00 и через подходящий компонент преобразовав, отправить его туда куда у вас сейчас подключен motion.digital-out-01

https://linuxcnc.org/docs/html/man/man9/motion.9.html
gendos
Мастер
Сообщения: 1114
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 79
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Конфигурация LinuxCNC для программы LightBurn

Сообщение gendos »

Спасибо.буду разбираться.сейчас пока не у станка.
А как мне реализовать установку мощности лазера. у меня сейчас мощность задается строчкой S8700 а в LightBurn
строчкой
; Cut @ 100 mm/sec, 100% power
эту строчку LinuxCNC понимает ?
так как я не могу редактировать в LightBurn мне нужно подстраивать под него мой LinuxCNC.
В LightBurn есть еще один вариант для CanCam

; LB by SSG 1.2.01
; CanCam device profile, current position
; Bounds: X-11 Y-8 to X0 Y0
G00 G17 G40 G21 G54
G91
; Cut @ 100 mm/sec, 100% power
M05
G0X0Y-8
; Layer C00
M03
G1X-11F6000
G1Y8
G1X11
G1Y-8
M05
G1 S0
; return to starting pos
G0 X0Y8
M2

лазер включается м03 выключается м05 меня это тоже устроило бы . так как я не использую гравировку(только резку ) и задержка от команды м03 и м05 для меня допустима.Поэтому если бы где скачать готовый конфиг для LinuxCNC.Ведь раз в LightBurn есть настройки под это оборудование значит кто то же на нем работает?
gendos
Мастер
Сообщения: 1114
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 79
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Конфигурация LinuxCNC для программы LightBurn

Сообщение gendos »

; Cut @ 100 mm/sec, 100% power
M05
G0X0Y-8
; Layer C00
M03
G1X-11F6000
G1Y8
G1X11
G1Y-8
M05
G1 S0
нет здесь наверно все таки мощность не регулируется
gendos
Мастер
Сообщения: 1114
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 79
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Конфигурация LinuxCNC для программы LightBurn

Сообщение gendos »

с мощностью разобрался, я невнимательно смотрел в первом примере мощность регулируется параметром Q1
Q1 100 %
Q0.2 20%
ex71
Мастер
Сообщения: 705
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: Конфигурация LinuxCNC для программы LightBurn

Сообщение ex71 »

gendos писал(а): у меня сейчас мощность задается строчкой S8700 а в LightBurn
строчкой
; Cut @ 100 mm/sec, 100% power
эту строчку LinuxCNC понимает ?
этой строчкой задается скорость и мощность в мозгу оператора. Чтобы тот понимал что за ересь написана ниже.
; - означает комментарий, аналогично #, //, rem и тд.
В LCNC комменты задаются скобками.
gendos писал(а): задержка от команды м03 и м05 для меня допустима
откуда там задержка?
ну используй ремап чтобы другие коды задействовать.
alex_sar
Мастер
Сообщения: 1718
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 286
Настоящее имя: Алексей
Контактная информация:

Re: Конфигурация LinuxCNC для программы LightBurn

Сообщение alex_sar »

gendos писал(а): G01m62p1 F800.0
ex71 писал(а): ну используй ремап чтобы другие коды задействовать.
жёстко :)
gendos
Мастер
Сообщения: 1114
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 79
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Конфигурация LinuxCNC для программы LightBurn

Сообщение gendos »

Добрый день. Если кто может и кому не сложно ,сделайте изменения в моем HAL файле ,чтоб работала команда M67 E0 Q1
мне знаний не хватает. Изучать эту тему нет желания и возможности.
мой HAL
# Создан stepconf в Wed Nov 5 22:37:19 2014
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
loadrt gantrykins
# Настраиваем связь осей и двигателей
setp gantrykins.joint-0 0
setp gantrykins.joint-1 1
setp gantrykins.joint-2 1

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="22c0 out "
#loadrt hal_parport cfg="0x378 out "
setp parport.0.reset-time 3500
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
addf and2.0 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 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 10000
setp pwmgen.0.offset 0.02
setp pwmgen.0.dither-pwm true
net spindle-cw <= motion.spindle-forward
# net spindle-at-speed => motion.spindle-at-speed
#net din-00 => motion.digital-in-00





# 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


net estop-out => parport.0.pin-17-out
net xstep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
setp parport.0.pin-05-out-invert 1
net xdir => parport.0.pin-05-out
net ystep => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
setp parport.0.pin-07-out-invert 1
net ydir => parport.0.pin-07-out
net zstep => parport.0.pin-08-out
setp parport.0.pin-08-out-reset 1
net zdir => parport.0.pin-09-out
setp parport.0.pin-17-out-invert 1
### net spindle-cw => parport.0.pin-17-out
#setp parport.0.pin-01-out-invert 1
net spindle-pwm => parport.0.pin-02-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


net home-x <= parport.0.pin-10-in
net home-y <= parport.0.pin-11-in
net home-z <= parport.0.pin-12-in
net estop-ext <= parport.0.pin-13-in
####net din-00 <= parport.0.pin-15-in


setp stepgen.0.position-scale [AXIS_0]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_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable axis.0.amp-enable-out => stepgen.0.enable
net home-x => axis.0.home-sw-in

setp stepgen.1.position-scale [AXIS_1]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_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable axis.1.amp-enable-out => stepgen.1.enable
net home-y => axis.1.home-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 estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in

loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
gendos
Мастер
Сообщения: 1114
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 79
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Конфигурация LinuxCNC для программы LightBurn

Сообщение gendos »

вот пример какой планирую использовать g код
; LB by SSG 1.2.01
; LinuxCNC device profile, current position
; Bounds: X0 Y0 to X44 Y20
G21
G91
; Cut @ 200 mm/sec, 20% power
M9
M67 E0 Q0
G0 X44 Y3 F0
; Layer C01
M67 E0 Q0.2
G1 X-15 F12000
G1 Y15
G1 X15
G1 Y-15
; Cut @ 100 mm/sec, 100% power
M9
M67 E0 Q0
G0 X-26 Y-3 F0
; Layer C00
M67 E0 Q1
G1 X-18 F6000
G1 Y20
G1 X18
G1 Y-20
M67 E0 Q0
G0 X17 Y19 F0
M9
M67 E0 Q0
; return to starting pos
G0 X-35 Y-19 F0
gendos
Мастер
Сообщения: 1114
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 79
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Конфигурация LinuxCNC для программы LightBurn

Сообщение gendos »

если вариант с М67 сложен.
можно попробовать вариант с включением лазера М4 выключением М5 мощность задавать S шпинделя
вот пример g кода
; LB by SSG 1.2.01
; Emblaser 1 A3 device profile, current position
; Bounds: X0 Y0 to X91 Y194
G00 G17 G40 G21 G54
G91
M4
; Cut @ 200 mm/sec, 20% power
M9
G0 X91Y177
; Layer C01
G1 X-15S200F12000
G1 Y15
G1 X15
G1 Y-15
G0 X-52Y-177
G1 X-17
G1 Y21
G1 X17
G1 Y-21
; Cut @ 100 mm/sec, 100% power
M9
G0 X26Y174
; Layer C00
G1 X-18S1000F6000
G1 Y20
G1 X18
G1 Y-20
G0 X17Y19
G0 X-67Y-191
G1 X-15
G1 Y20
G1 X15
G1 Y-20
M9
G1 S0
M5
; return to starting pos
G0 X-15Y-2
M2
gendos
Мастер
Сообщения: 1114
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 79
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Конфигурация LinuxCNC для программы LightBurn

Сообщение gendos »

Гравировать растром я не планирую,только резка по вектору с регулировкой мощности лазера,
поэтому задержка при поджоге лазера меня не волнует.
gendos
Мастер
Сообщения: 1114
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 79
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Конфигурация LinuxCNC для программы LightBurn

Сообщение gendos »

Ну вроде бы у меня все получилось.
когда все проверю и подправлю возможные ошибки выложу конфигурацию. может кому пригодиться
Ответить

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