да,даUAVpilot писал(а): Почитай RS274NGC - там всё по полочкам разложено.
а как хорошо когда подскажет, кто читал
да,даUAVpilot писал(а): Почитай RS274NGC - там всё по полочкам разложено.
Т.е. все что подсказал Lexxa неправильно ?UAVpilot писал(а):И ремапить надо в первую очередь M6.
Lexxa М6 должно бьйт ,без М6 и tool-change-confirmed не берет офсет.Lexxa писал(а):зачем м6 в токарном станке
Код: Выделить всё
O<toolchange> sub
#<wear> = [100 + #<tool>]
#<tool> = [#<tool>]
T#<tool>
G49
M6
G43 H#<tool>
G43.2 H#<wear>
O<toolchange> endsub [0]Код: Выделить всё
G10 L1 P#<_hal[iocontrol.0.tool-number]> X[#<_hal[motion.tooloffset.x]>+#102 ]Код: Выделить всё
o<changetool> sub
#101 = #<_hal[gladevcp.hal_spinbutton1-f]>
#102 = #<_hal[gladevcp.hal_spinbutton2-f]>
#103 = #<_hal[gladevcp.hal_spinbutton3-f]>
#104 = #<_hal[gladevcp.hal_spinbutton4-f]>
#105 = #<_hal[gladevcp.hal_spinbutton5-f]>
#106 = #<_hal[gladevcp.hal_spinbutton6-f]>
#121 = [#101 - #111]
#122 = [#102 - #112]
#123 = [#103 - #113]
#124 = [#104 - #114]
#125 = [#105 - #115]
#126 = [#106 - #116]
o101 if [#<_lathe_diameter_mode> ne 0]
#<flag> = 1
o101 endif
G8
o100 if [#<_hal[iocontrol.0.tool-number]> eq 1]
G10 L1 P1 X[#<_hal[motion.tooloffset.x]>+#121 ]
(debug,number = #<_hal[iocontrol.0.tool-number]>)
(debug,101 = #101)
(debug,111 = #111)
(debug,121 = #121)
o100 endif
o103 if [#<_hal[iocontrol.0.tool-number]> eq 2]
G10 L1 P2 X[#<_hal[motion.tooloffset.x]>+#122 ]
(debug,number = #<_hal[iocontrol.0.tool-number]>)
(debug,102 = #102)
(debug,112 = #112)
(debug,122 = #122)
o103 endif
o104 if [#<_hal[iocontrol.0.tool-number]> eq 3]
G10 L1 P3 X[#<_hal[motion.tooloffset.x]>+#123 ]
(debug,number = #<_hal[iocontrol.0.tool-number]>)
(debug,103 = #103)
(debug,113 = #113)
(debug,123 = #123)
o104 endif
o105 if [#<_hal[iocontrol.0.tool-number]> eq 4]
G10 L1 P4 X[#<_hal[motion.tooloffset.x]>+#124 ]
o105 endif
o106 if [#<_hal[iocontrol.0.tool-number]> eq 5]
G10 L1 P5 X[#<_hal[motion.tooloffset.x]>+#125 ]
o106 endif
o107 if [#<_hal[iocontrol.0.tool-number]> eq 6]
G10 L1 P6 X[#<_hal[motion.tooloffset.x]>+#126 ]
o107 endif
o102 if [#<flag> ne 0]
G7
o102 endif
#111 = #<_hal[gladevcp.hal_spinbutton1-f]>
#112 = #<_hal[gladevcp.hal_spinbutton2-f]>
#113 = #<_hal[gladevcp.hal_spinbutton3-f]>
#114 = #<_hal[gladevcp.hal_spinbutton4-f]>
#115 = #<_hal[gladevcp.hal_spinbutton5-f]>
#116 = #<_hal[gladevcp.hal_spinbutton6-f]>
G43
M6
o<changetool> endsubКод: Выделить всё
o<changetool1> sub
G49
#101 = #<_hal[pyvcp.spinbox]>
#121 = [#101 - #111]
o101 if [#<_lathe_diameter_mode> ne 0]
#<flag> = 1
o101 endif
G8
o100 if [#<_hal[iocontrol.0.tool-number]> eq 1]
G10 L1 P1 X[#<_hal[motion.tooloffset.x]>+#121 ]
(debug,number = #<_hal[iocontrol.0.tool-number]>)
(debug,101 = #101)
(debug,111 = #111)
(debug,121 = #121)
o100 endif
o102 if [#<flag> ne 0]
G7
o102 endif
#111 = #<_hal[pyvcp.spinbox]>
G49
M6
G43
o<changetool1> endsub
M2А если после ввода значения Enter нажать?..nkp писал(а):хоть с pyvcp , хоть glade отмечается какая то странность - значение в spinbox читается через раз (в
Причем не всякий Enter. Тот, что на цифровой клавиатуре, в данном случае не работает. По крайней мере у меня так. Numlock, понятное дело, включен.UAVpilot писал(а):А если после ввода значения Enter нажать?..nkp писал(а):хоть с pyvcp , хоть glade отмечается какая то странность - значение в spinbox читается через раз (в
жал(UAVpilot писал(а):А если после ввода значения Enter нажать?..
А что, прямо так можно?nkp писал(а):#101 = #<_hal[pyvcp.spinbox]>
Спасибо nkp для участие в тема !nkp писал(а):пробовал по разному
Во время работа оператор заметил что диаметр увеличился т.е. инструмент износ или другое .nkp писал(а):как это должно вводиться и работать?
можно подробней здесь описать проблему-хотелкуdinkata писал(а):Потом другое ,оператор говорит- мне надо обнулит стоимост на оси и хочу от туда смотрет сколько проехал , а не смотрет только Абсолютное и G54 , наверно ест решение для ето , но не дошел еще .Ето другая тема
А вот эта фраза не смущаетnkp писал(а):почему нет)
я такими вещами пользуюсь только для чтения настроечных параметров.The variables are read during read-ahead and should not be used for run time evaluation of current position or other execution time variables.
вопрос:dinkata писал(а):По моему корекция надо ввести однократно ,например для Т5офсет Х -100.00 (отметите в Linuxcnc ето радиус ),вводим коррекция -0.1 и офсет Х -100.10 должен стат сразу и однократно .
ok,не проблемаСергей Саныч писал(а):я такими вещами пользуюсь только для чтения настроечных параметров.
надо изменит текущий офсет по Х или Z в таблица инструментов однократно и немедленоnkp писал(а):однократно" , это без занесения (сохранения) в файл таблицы инструментов?
В в glade натыкался, что спинбокс не всегда генерит событие, что данные изменились. Например если вбить новое значение в поле и уйти с него на другое TAB'ом или мышом, то о изменении никто не узнает...nkp писал(а):пробовал по разному - там что то на другом уровне(возможно на уровне remap)
Код: Выделить всё
o<changetool1> sub
#<flag> = 0
G49
M66 E0 L0
#101 = #5399
#121 = [#101 - #111]
o101 if [#<_lathe_diameter_mode> ne 0]
#<flag> = 1
o101 endif
G8
o100 if [#<_hal[iocontrol.0.tool-number]> eq 1]
G10 L10 P1 X[#<_hal[motion.tooloffset.x]>+#121 ]
(debug,number = #<_hal[iocontrol.0.tool-number]>)
(debug,101 = #101)
(debug,111 = #111)
(debug,121 = #121)
o100 endif
o102 if [#<flag> ne 0]
G7
o102 endif
#111 = #5399
G49
M6
G43
o<changetool1> endsubКод: Выделить всё
[DISPLAY]
EMBED_TAB_NAME=corrector
EMBED_TAB_COMMAND=halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -u ./corrector.py -x {XID} ./corrector.glade
[RS274NGC]
REMAP=M6 modalgroup=6 ngc=changetool5
[HAL]
POSTGUI_HALFILE = postgui_glade.halКод: Выделить всё
o<changetool5> sub
G49
#<flag> = 0
#101 = #<_hal[gladevcp.hal_spinbutton1-f]>
#102 = #<_hal[gladevcp.hal_spinbutton2-f]>
#103 = #<_hal[gladevcp.hal_spinbutton3-f]>
#104 = #<_hal[gladevcp.hal_spinbutton4-f]>
#105 = #<_hal[gladevcp.hal_spinbutton5-f]>
#106 = #<_hal[gladevcp.hal_spinbutton6-f]>
#121 = [#101 - #111]
#122 = [#102 - #112]
#123 = [#103 - #113]
#124 = [#104 - #114]
#125 = [#105 - #115]
#126 = [#106 - #116]
o101 if [#<_lathe_diameter_mode> ne 0]
#<flag> = 1
o101 endif
M6
G8
o100 if [#5400 eq 1]
G10 L1 P1 X[#5401+#121 ]
(debug,T = #5400)
(debug,101 = #101)
(debug,111 = #111)
(debug,121 = #121)
#111 = #101
o100 endif
o103 if [#5400 eq 2]
G10 L1 P2 X[#5401+#122 ]
(debug,T = #5400)
(debug,102 = #102)
(debug,112 = #112)
(debug,122 = #122)
#112 = #102
o103 endif
o104 if [#5400 eq 3]
G10 L1 P3 X[#5401+#123 ]
(debug,T = #5400)
(debug,103 = #103)
(debug,113 = #113)
(debug,123 = #123)
#113 = #103
o104 endif
o105 if [#5400 eq 4]
G10 L1 P4 X[#5401+#124 ]
#114 = #104
o105 endif
o106 if [#5400 eq 5]
G10 L1 P5 X[#5401+#125 ]
#115 = #105
o106 endif
o107 if [#5400 eq 6]
G10 L1 P6 X[#5401+#126 ]
#116 = #106
o107 endif
o102 if [#<flag> ne 0]
G7
o102 endif
G43
o<changetool5> endsubКод: Выделить всё
T1 P1 D0.300000 ;
T2 P2 D0.300000 ;
T3 P3 D0.300000 ;
T4 P4 D0.300000 ;
T5 P5 D0.300000 ;
T6 P6 D0.300000 ;Код: Выделить всё
net spinbutton1 gladevcp.hal_spinbutton1-f motion.analog-in-00
net spinbutton2 gladevcp.hal_spinbutton2-f motion.analog-in-01
net spinbutton3 gladevcp.hal_spinbutton3-f motion.analog-in-02
net spinbutton4 gladevcp.hal_spinbutton4-f motion.analog-in-03
net spinbutton5 gladevcp.hal_spinbutton5-f motion.analog-in-04
net spinbutton6 gladevcp.hal_spinbutton6-f motion.analog-in-05Код: Выделить всё
G49
#<flag> = 0
M66 E0 L0
#101 = #5399
M66 E1 L0
#102 = #5399
M66 E2 L0
#103 = #5399
M66 E3 L0
#104 = #5399
M66 E4 L0
#105 = #5399
M66 E5 L0
#106 = #5399
#121 = [#101 - #111]
#122 = [#102 - #112]
#123 = [#103 - #113]
#124 = [#104 - #114]
#125 = [#105 - #115]
#126 = [#106 - #116]