QTDragon spindle raise issues
- gardenweazel
- Topic Author
- Offline
- Premium Member
Less
More
- Posts: 145
- Thank you received: 7
26 Aug 2024 21:21 #308742
by gardenweazel
QTDragon spindle raise issues was created by gardenweazel
I'm getting this feedback in my logs:
cut
cut
cut
[QTvcp.QTVCP.QT_MAKEPINS][DEBUG] Calculating geometry of main window using natural placement: 0 0 1920 1080 (qt_makepins.py:200)
[QTvcp][INFO] Postgui filename: ['qtdragon_hd_postgui.hal'] (qtvcp:431)
[QTvcp][INFO] Postgui commands: None (qtvcp:443)
[QTvcp][DEBUG] Calling handler file's before_loop__ function in qtvcp.qt_makegui.VCPWindow object at 0x7fcc7d590790 (qtvcp:414)
[QTvcp.QTDRAGON_HD_HANDLER][b][color=#e74c3c][WARNING] not connected qtdragon.eoffset-is-active (qtdragon_hd_handler.py:574)[/color][/b]
[QTvcp.QTDRAGON_HD_HANDLER][b][color=#e74c3c][WARNING] HALUI pause/resume pin(s) connected - spindle lift not available (qtdragon_hd_handler.py:581)[/color][/b]
[QTvcp][INFO] Preference path: /home/andy/linuxcnc/configs/my_LinuxCNC_machine_QTDragon/qtdragon_hd.pref (qtvcp:420)
cut
Here's part of my qtdragon_hd.hal file:
Line numbers included for readability.
[b]Do I need both lines 41 and 46?[/b] I am using the pause_pin.py optional file.
28 # connect signals to LinuxCNC's motion component
29 ########################################################################
30
31 net eoffset-clear axis.z.eoffset-clear
32 net eoffset-counts axis.z.eoffset-counts
33 #setp axis.z.eoffset-scale .001
34 #setp axis.z.eoffset-enable True
35
36 # external offsets for spindle PAUSE function
37 ########################################################################
38 net eoffset-clear qtdragon.eoffset-clear
39 net eoffset-spindle-count <= qtdragon.eoffset-spindle-count
40 net spindle-pause qtdragon.spindle-inhibit => spindle.0.inhibit
41 #net eoffset-state qtdragon.eoffset-is-active <= motion.eoffset-active
42 net eoffset qtdragon.eoffset-value <= axis.z.eoffset
43
44 # This is used in pause_pin.py
45 net external-pause qtdragon.spindle-inhibit => spindle.0.inhibit
46 net eoffset-state qtdragon.external-eoffset-state <= motion.eoffset-active
47 setp axis.z.eoffset-enable 1
48 setp axis.z.eoffset-scale 1.0
49
Please Log in or Create an account to join the conversation.
26 Aug 2024 23:38 #308748
by cmorley
Replied by cmorley on topic QTDragon spindle raise issues
Do you have halui.pause or resume pin connected somewhere?
from the docs:
If using the Spindle lift option, HALUI can not be used to pause/resume the program. There is a pin, QtDragon.external-pause available to pause/resume from an external source. You must also enable external offsets. In the setting tab check use external offsets
also for qtdragon_hd line 41 should be un commented
from the docs:
If using the Spindle lift option, HALUI can not be used to pause/resume the program. There is a pin, QtDragon.external-pause available to pause/resume from an external source. You must also enable external offsets. In the setting tab check use external offsets
also for qtdragon_hd line 41 should be un commented
The following user(s) said Thank You: gardenweazel
Please Log in or Create an account to join the conversation.
- gardenweazel
- Topic Author
- Offline
- Premium Member
Less
More
- Posts: 145
- Thank you received: 7
27 Aug 2024 01:36 #308753
by gardenweazel
Replied by gardenweazel on topic QTDragon spindle raise issues
The halui.pause nad halui.resume are coming from the xhc-whb04b-6.hal file.
I'm not sure how to change those entries.
17 # program related signals
18 net pdnt.program.is-idle whb.halui.program.is-idle halui.program.is-idle
19 net pdnt.program.is-paused whb.halui.program.is-paused halui.program.is-paused
20 net pdnt.program-is-running whb.halui.program.is-running halui.program.is-running
21 net pdnt.program.resume whb.halui.program.resume halui.program.resume
22 net pdnt.program.pause whb.halui.program.pause halui.program.pause
23 net pdnt.program.run whb.halui.program.run halui.program.run
24 net pdnt.program.stop whb.halui.program.stop halui.program.stop
I'm not sure how to change those entries.
17 # program related signals
18 net pdnt.program.is-idle whb.halui.program.is-idle halui.program.is-idle
19 net pdnt.program.is-paused whb.halui.program.is-paused halui.program.is-paused
20 net pdnt.program-is-running whb.halui.program.is-running halui.program.is-running
21 net pdnt.program.resume whb.halui.program.resume halui.program.resume
22 net pdnt.program.pause whb.halui.program.pause halui.program.pause
23 net pdnt.program.run whb.halui.program.run halui.program.run
24 net pdnt.program.stop whb.halui.program.stop halui.program.stop
Please Log in or Create an account to join the conversation.
27 Aug 2024 02:27 - 27 Aug 2024 02:30 #308754
by cmorley
Replied by cmorley on topic QTDragon spindle raise issues
Could try this change and remove the resume (line 21).
I might need to make a separate resume pin for you for this case.
or add some logic to convert the pause/resume pins to one pin that is true for pause and false for resume.
I might need to make a separate resume pin for you for this case.
or add some logic to convert the pause/resume pins to one pin that is true for pause and false for resume.
22 net pdnt.program.pause whb.halui.program.pause QtDragon.external-pause
Last edit: 27 Aug 2024 02:30 by cmorley.
The following user(s) said Thank You: gardenweazel
Please Log in or Create an account to join the conversation.
- gardenweazel
- Topic Author
- Offline
- Premium Member
Less
More
- Posts: 145
- Thank you received: 7
27 Aug 2024 15:06 #308815
by gardenweazel
Replied by gardenweazel on topic QTDragon spindle raise issues
What about the other question that I had? Not sure if you noticed that?
"Do I need both lines 41 and 46?"
"Do I need both lines 41 and 46?"
Please Log in or Create an account to join the conversation.
27 Aug 2024 16:45 #308825
by cmorley
Replied by cmorley on topic QTDragon spindle raise issues
Please remind (show) me of the pause pin code you are using.
The following user(s) said Thank You: gardenweazel
Please Log in or Create an account to join the conversation.
- gardenweazel
- Topic Author
- Offline
- Premium Member
Less
More
- Posts: 145
- Thank you received: 7
27 Aug 2024 16:48 #308827
by gardenweazel
Replied by gardenweazel on topic QTDragon spindle raise issues
andy@file03:~/linuxcnc/configs/my_LinuxCNC_machine_QTDragon$ cat pause_pin.py
print('\nUser command file for pause pin found\n')
# import the handlerfile to get reference to it's libraries.
# use <screenname>_handler
import qtdragon_hd_handler as SELF
# needed to instance patch
# reference: ruivieira.dev/python-monkey-patching-for-readability.html
import types
############################################
# add new functions for new HAL pins to call
############################################
# external pin will call this
def external_pause_changed(data):
# only if runnung a program
if not SELF.STATUS.is_auto_running():
return
# only on true state of pin
# mean can only pause with the external pin
# toggle might be nicer...
if data:
# set pause button
self.w.action_pause.setChecked(data)
self.w.action_pause.clicked.emit(data)
# set spindle pause button
self.w.btn_spindle_pause.setChecked(data)
self.w.btn_spindle_pause.clicked.emit(data)
# unpause machine if external offsets state is false
def external_offset_state_changed(data):
# only if running a program
if not SELF.STATUS.is_auto_running():
return
# only if machine in on
if not SELF.STATUS.machine_is_on():
return
# only if pin is false
if not data:
print('automatic unpause')
# set pause button
self.w.action_pause.setChecked(data)
self.w.action_pause.clicked.emit(data)
###############################################
# add hook to make HAL pins at the right time
###############################################
# add a HAL pin with a call back
def after_override__(self):
try:
pin = SELF.QHAL.newpin("external-pause", SELF.QHAL.HAL_BIT, SELF.QHAL.HAL_IN)
pin.value_changed.connect(external_pause_changed)
pin = SELF.QHAL.newpin("external-eoffset-state", SELF.QHAL.HAL_BIT, SELF.QHAL.HAL_IN)
pin.value_changed.connect(external_offset_state_changed)
except Exception as e:
print(e)
# Here we are instance patching the original handler file to add a new
# function that calls our new function (of the same name)
# defined in this file
self.after_override__ = types.MethodType(after_override__, self)
#########################################
# override disable_spindle_pause method
#########################################
def disable_spindle_pause(self):
if self.w.action_pause.isChecked():
# set spindle pause button
self.w.btn_spindle_pause.setChecked(True)
self.w.btn_spindle_pause.clicked.emit(True)
# instance patch voodoo
self.disable_spindle_pause = types.MethodType(disable_spindle_pause, self)
#####################################
# override pause key binding method
#####################################
def on_keycall_pause(self,event,state,shift,cntrl):
if state and SELF.STATUS.is_auto_mode() and self.use_keyboard():
if not SELF.STATUS.stat.paused:
external_pause_changed(state)
else:
self.w.btn_spindle_pause.setChecked(False)
self.w.btn_spindle_pause.clicked.emit(False)
# instance patch voodoo
self.on_keycall_pause = types.MethodType(on_keycall_pause, self)
##############################################
# modify stop button to call an MDI command
##############################################
self.w.action_abort.setProperty('abort_action',False)
self.w.action_abort.setProperty('true_python_cmd_string', 'ACTION.ABORT();ACTION.CALL_INI_MDI(0)')
print('\nUser command file for pause pin found\n')
# import the handlerfile to get reference to it's libraries.
# use <screenname>_handler
import qtdragon_hd_handler as SELF
# needed to instance patch
# reference: ruivieira.dev/python-monkey-patching-for-readability.html
import types
############################################
# add new functions for new HAL pins to call
############################################
# external pin will call this
def external_pause_changed(data):
# only if runnung a program
if not SELF.STATUS.is_auto_running():
return
# only on true state of pin
# mean can only pause with the external pin
# toggle might be nicer...
if data:
# set pause button
self.w.action_pause.setChecked(data)
self.w.action_pause.clicked.emit(data)
# set spindle pause button
self.w.btn_spindle_pause.setChecked(data)
self.w.btn_spindle_pause.clicked.emit(data)
# unpause machine if external offsets state is false
def external_offset_state_changed(data):
# only if running a program
if not SELF.STATUS.is_auto_running():
return
# only if machine in on
if not SELF.STATUS.machine_is_on():
return
# only if pin is false
if not data:
print('automatic unpause')
# set pause button
self.w.action_pause.setChecked(data)
self.w.action_pause.clicked.emit(data)
###############################################
# add hook to make HAL pins at the right time
###############################################
# add a HAL pin with a call back
def after_override__(self):
try:
pin = SELF.QHAL.newpin("external-pause", SELF.QHAL.HAL_BIT, SELF.QHAL.HAL_IN)
pin.value_changed.connect(external_pause_changed)
pin = SELF.QHAL.newpin("external-eoffset-state", SELF.QHAL.HAL_BIT, SELF.QHAL.HAL_IN)
pin.value_changed.connect(external_offset_state_changed)
except Exception as e:
print(e)
# Here we are instance patching the original handler file to add a new
# function that calls our new function (of the same name)
# defined in this file
self.after_override__ = types.MethodType(after_override__, self)
#########################################
# override disable_spindle_pause method
#########################################
def disable_spindle_pause(self):
if self.w.action_pause.isChecked():
# set spindle pause button
self.w.btn_spindle_pause.setChecked(True)
self.w.btn_spindle_pause.clicked.emit(True)
# instance patch voodoo
self.disable_spindle_pause = types.MethodType(disable_spindle_pause, self)
#####################################
# override pause key binding method
#####################################
def on_keycall_pause(self,event,state,shift,cntrl):
if state and SELF.STATUS.is_auto_mode() and self.use_keyboard():
if not SELF.STATUS.stat.paused:
external_pause_changed(state)
else:
self.w.btn_spindle_pause.setChecked(False)
self.w.btn_spindle_pause.clicked.emit(False)
# instance patch voodoo
self.on_keycall_pause = types.MethodType(on_keycall_pause, self)
##############################################
# modify stop button to call an MDI command
##############################################
self.w.action_abort.setProperty('abort_action',False)
self.w.action_abort.setProperty('true_python_cmd_string', 'ACTION.ABORT();ACTION.CALL_INI_MDI(0)')
Please Log in or Create an account to join the conversation.
27 Aug 2024 21:27 #308854
by cmorley
Replied by cmorley on topic QTDragon spindle raise issues
So from memory I made that pause_pin.py modification because qtdragon_hd had no external way to pause the program.
In master at least there now is an external pin for pausing, so you might not need that part.
I see you have a bit for running a oword sub on abort - you'll still need that.
So please confirm you are using current master.
If so you will probably see two external pins qtdragon.external-pause and qtdragon.external-pause-2 is that true?
if so you should not need line 46.
finally you could try commenting out the halui pause/resume lines temparaily.
In master at least there now is an external pin for pausing, so you might not need that part.
I see you have a bit for running a oword sub on abort - you'll still need that.
So please confirm you are using current master.
If so you will probably see two external pins qtdragon.external-pause and qtdragon.external-pause-2 is that true?
if so you should not need line 46.
finally you could try commenting out the halui pause/resume lines temparaily.
The following user(s) said Thank You: gardenweazel
Please Log in or Create an account to join the conversation.
- gardenweazel
- Topic Author
- Offline
- Premium Member
Less
More
- Posts: 145
- Thank you received: 7
28 Aug 2024 15:24 #308901
by gardenweazel
Replied by gardenweazel on topic QTDragon spindle raise issues
Confirmed that I am using the most current master of linuxcnc.
I don't see the pause_pin.py anywhere other than when you posted on a previous thread .
qtdragon.external-pause-2 does not exist.
I don't see the pause_pin.py anywhere other than when you posted on a previous thread .
qtdragon.external-pause-2 does not exist.
Please Log in or Create an account to join the conversation.
28 Aug 2024 21:00 #308914
by cmorley
Replied by cmorley on topic QTDragon spindle raise issues
What I meant is, in that latest master code the external-pause pin is built in to qtdragon/hd so you don't need the pause_pin.py file to add the pin.
You would still need the part that calls an oword program on abort.
Can you run linuxcnc in a terminal, with DISPLAY = qtvcp -d qtdragon_hd in the INI and post it?
You would still need the part that calls an oword program on abort.
Can you run linuxcnc in a terminal, with DISPLAY = qtvcp -d qtdragon_hd in the INI and post it?
The following user(s) said Thank You: gardenweazel
Please Log in or Create an account to join the conversation.
Moderators: cmorley
Time to create page: 0.124 seconds