Skip to content

Commit 4103bee

Browse files
committed
Merge branch '2.9'
2 parents e5777bf + f51a6de commit 4103bee

2 files changed

Lines changed: 54 additions & 24 deletions

File tree

src/emc/usr_intf/gmoccapy/gmoccapy.glade

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3226,6 +3226,7 @@
32263226
<property name="draw-indicator">False</property>
32273227
<property name="group">rbt_stop</property>
32283228
<signal name="clicked" handler="on_rbt_reverse_clicked" swapped="no"/>
3229+
<signal name="released" handler="on_rbt_reverse_released" swapped="no"/>
32293230
</object>
32303231
<packing>
32313232
<property name="expand">True</property>
@@ -3264,6 +3265,7 @@
32643265
<property name="draw-indicator">False</property>
32653266
<property name="group">rbt_stop</property>
32663267
<signal name="clicked" handler="on_rbt_forward_clicked" swapped="no"/>
3268+
<signal name="released" handler="on_rbt_forward_released" swapped="no"/>
32673269
</object>
32683270
<packing>
32693271
<property name="expand">False</property>

src/emc/usr_intf/gmoccapy/gmoccapy.py

Lines changed: 52 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ def __init__(self, argv):
233233
self.height = 750 # The height of the main Window
234234

235235
self.gcodeerror = "" # we need this to avoid multiple messages of the same error
236+
self.max_spindle_disp = 999999 # maximum display value for 'S' and 'Vc'
236237

237238
self.file_changed = False
238239
self.widgets.hal_action_saveas.connect("saved-as", self.saved_as)
@@ -4005,30 +4006,33 @@ def _update_spindle(self):
40054006
self.widgets.rbt_stop.set_active(True)
40064007
return
40074008

4008-
# set the speed label in active code frame
4009-
if self.stat.spindle[0]['speed'] == 0:
4010-
speed = self.stat.settings[2]
4009+
# set the S label in active code frame
4010+
self.widgets.active_speed_label.set_label("{0:.0f}".format(self.stat.settings[2]))
4011+
4012+
# set the 'Spindle [rpm]' label
4013+
#Note: self.stat.spindle[0]['speed'] does not reflect 'spindle.0.speed-out' pins when using G96 mode (issue #3449)
4014+
speed = hal.get_value("spindle.0.speed-out")
4015+
# catch very large values eg when using G96 w/o D value
4016+
if speed > self.max_spindle_disp:
4017+
self.widgets.lbl_spindle_act.set_text("S >"+str(self.max_spindle_disp))
4018+
elif speed < -self.max_spindle_disp:
4019+
self.widgets.lbl_spindle_act.set_text("S <"+str(self.max_spindle_disp))
40114020
else:
4012-
speed = self.stat.spindle[0]['speed']
4013-
self.widgets.active_speed_label.set_label("{0:.0f}".format(abs(speed)))
4014-
self.widgets.lbl_spindle_act.set_text("S {0}".format(int(round(speed * self.spindle_override))))
4021+
self.widgets.lbl_spindle_act.set_text("S {0}".format(int(round(speed))))
40154022

40164023
def _update_vc(self):
4017-
if self.stat.spindle[0]['direction'] != 0:
4018-
if self.stat.spindle[0]['speed'] == 0:
4019-
speed = self.stat.settings[2]
4020-
else:
4021-
speed = self.stat.spindle[0]['speed']
4022-
4023-
if not self.lathe_mode:
4024-
diameter = self.halcomp["tool-diameter"]
4025-
else:
4026-
diameter = int(self.dro_dic["Combi_DRO_0"].get_position()[1] * 2)
4027-
speed = self.widgets.spindle_feedback_bar.value
4028-
vc = abs(int(speed * self.spindle_override) * diameter * 3.14 / 1000)
4024+
#Note: self.stat.spindle[0]['speed'] does not reflect 'spindle.0.speed-out' pins when using G96 mode (issue #3449)
4025+
speed = hal.get_value("spindle.0.speed-out")
4026+
if not self.lathe_mode:
4027+
diameter = self.halcomp["tool-diameter"]
40294028
else:
4030-
vc = 0
4031-
if vc >= 100:
4029+
diameter = int(self.dro_dic["Combi_DRO_0"].get_position()[1] * 2)
4030+
speed = self.widgets.spindle_feedback_bar.value
4031+
vc = abs(int(speed * self.spindle_override) * diameter * 3.14 / 1000)
4032+
# catch very large Vc values due to very large S values eg when using G96 w/o D value
4033+
if vc > self.max_spindle_disp:
4034+
text = "Vc= >" + str(self.max_spindle_disp)
4035+
elif vc >= 100:
40324036
text = "Vc= {0:d}".format(int(vc))
40334037
elif vc >= 10:
40344038
text = "Vc= {0:2.1f}".format(vc)
@@ -4075,7 +4079,8 @@ def on_gcode_properties(self, widget, data):
40754079
def on_ntb_tool_code_info_switch_page(self, widget, page, page_num):
40764080
self.prefs.putpref("info_tab_page", page_num, int)
40774081

4078-
def on_rbt_forward_clicked(self, widget, data=None):
4082+
# This is for handling mouse clicks on the GUI button
4083+
def on_rbt_forward_released(self, widget, data=None):
40794084
if widget.get_active():
40804085
widget.set_image(self.widgets.img_spindle_forward_on)
40814086
self._set_spindle("forward")
@@ -4085,7 +4090,8 @@ def on_rbt_forward_clicked(self, widget, data=None):
40854090
widget.set_sensitive(not widget.get_sensitive())
40864091
widget.set_sensitive(not widget.get_sensitive())
40874092

4088-
def on_rbt_reverse_clicked(self, widget, data=None):
4093+
# This is for handling mouse clicks on the GUI button
4094+
def on_rbt_reverse_released(self, widget, data=None):
40894095
if widget.get_active():
40904096
widget.set_image(self.widgets.img_spindle_reverse_on)
40914097
self._set_spindle("reverse")
@@ -4095,6 +4101,26 @@ def on_rbt_reverse_clicked(self, widget, data=None):
40954101
widget.set_sensitive(not widget.get_sensitive())
40964102
widget.set_sensitive(not widget.get_sensitive())
40974103

4104+
# This is for handling self.widgets.rbt_forward.set_active(True)
4105+
def on_rbt_forward_clicked(self, widget, data=None):
4106+
if widget.get_active():
4107+
widget.set_image(self.widgets.img_spindle_forward_on)
4108+
else:
4109+
widget.set_image(self.widgets.img_spindle_forward)
4110+
# Toggling the sensitive property is important here! See the commit description.
4111+
widget.set_sensitive(not widget.get_sensitive())
4112+
widget.set_sensitive(not widget.get_sensitive())
4113+
4114+
# This is for handling self.widgets.rbt_reverse.set_active(True)
4115+
def on_rbt_reverse_clicked(self, widget, data=None):
4116+
if widget.get_active():
4117+
widget.set_image(self.widgets.img_spindle_reverse_on)
4118+
else:
4119+
widget.set_image(self.widgets.img_spindle_reverse)
4120+
# Toggling the sensitive property is important here! See the commit description.
4121+
widget.set_sensitive(not widget.get_sensitive())
4122+
widget.set_sensitive(not widget.get_sensitive())
4123+
40984124
def on_rbt_stop_clicked(self, widget, data=None):
40994125
if widget.get_active():
41004126
widget.set_image(self.widgets.img_spindle_stop_on)
@@ -4168,11 +4194,13 @@ def on_spc_spindle_value_changed(self, widget, data=None):
41684194
# get the current spindle speed
41694195
if not abs(self.stat.settings[2]):
41704196
if self.widgets.rbt_forward.get_active() or self.widgets.rbt_reverse.get_active():
4171-
speed = self.stat.spindle[0]['speed']
4197+
#speed = self.stat.spindle[0]['speed'] does not work when using G96 mode (issue #3449)
4198+
speed = hal.get_value("spindle.0.speed-out")
41724199
else:
41734200
speed = 0
41744201
else:
4175-
speed = abs(self.stat.spindle[0]['speed'])
4202+
#speed = abs(self.stat.spindle[0]['speed']) does not work when using G96 mode (issue #3449)
4203+
speed = abs(hal.get_value("spindle.0.speed-out"))
41764204
spindle_override_in = widget_value / 100
41774205
spindle_speed_out = speed * spindle_override_in
41784206

0 commit comments

Comments
 (0)