[QTDragon] blocking in hal_manualtoolchange dialog

More
15 Aug 2024 20:35 #307840 by chernogorsky
Hi,
I cant understand what options do I have

Currently Im using hal_manualtoolchange for semi manual tool change
I have ATC, but at the moment I dont use slots / pockts, instead Im using go to toolchange XY, ZMax, and change the tool through button on pendant  / QTDragon MDI_COMMAND
But when Im inside hal_manualtoolchange dialog, non of these options works. It blocks any activities

May someone more familiar with QT/LCNC desing point me to the right direction

My sugestion / questions would be
1. Create a custom dialog (if its possible to be an additional to the code / not replacement) with additional button. 
2. Somehow ublock cnc pendant button exceution
3. something better I dont know about

Please Log in or Create an account to join the conversation.

More
16 Aug 2024 05:05 - 16 Aug 2024 05:05 #307881 by cmorley
What version of linuxcnc?
If you are using the Qtvcp version of hal tool change, there should be a button 'pause for jog'
This was a work around for this type of problem.
It actually works by aborting the program at the tool change and restarts the program after.
You must re-establish machine settings such as spindle settings after the tool change.
Last edit: 16 Aug 2024 05:05 by cmorley.

Please Log in or Create an account to join the conversation.

More
16 Aug 2024 14:57 #307925 by chernogorsky
Hi,
lcnc 2.10-dev (builded from master)

I saw that,
I want to avoid multiple steps,
What I need is run a command from the dialog (by button from a dialog, or by external signal like pendant)
my imaginary flow be like
programm triger TxM6
it goes to change location
shows toolchange dialog
I change the tool by pressing additional button on a dialog / phisical button on a pendant
press OK
and it continue its procedure with qc_autotool_change macro

Im looking for a solution to overcome blocking during dialog or
replace that dialog with my own, without the need of changing dialog_widget.py file (and keep the changes all the time I update the lcnc)

all the rest would be handled by the program itself, including spindle speed, locations, ...

in short I want to have another action during manual change, since I dont need to work with wrenches rather button click

priv I had air release button closeby, but after rewiring all the air contorls goes to the back side of my cnc (
I would consider adding phisical button for tool replace later, but it would be through lcnc logic, not directly, means - I need lcnc be not blocked (

Please Log in or Create an account to join the conversation.

More
16 Aug 2024 16:56 #307944 by cmorley
One cannot run MDI commands while in auto mode. When the tool change dialog pops up, you are still in auto mode.

Jog while paused is also not really available, though you can use an external offsets hack to get around that.

These are limits of linuxcnc not QtDragon.

So if that is what you need to do, the abort/restart hack is the only method I know that could work. (To be clear a dialog will pop up for automatic restart, but I haven't tested this feature in a long time.)

If the MDI commands are movements and are the same each time maybe a remap could cover it. Tell use more about that part please.

Chris
The following user(s) said Thank You: chernogorsky

Please Log in or Create an account to join the conversation.

More
16 Aug 2024 18:12 - 16 Aug 2024 18:34 #307950 by chernogorsky
Basically I have configured
o<pnc_tc_manual> call
which I want to run several times (manually) during the dialog
Jogging routin - as far as I understood it :
I press pause for jogging
do jogging / (in my case tool change)
press ok/cancel for the spindle speed up (not needed)
but it broke the procedure, means it does not work properly with auto_toolsetup


so the question is - is there a way of modifying the standard dialog by adding another button properly (like add some file in handled folder)
or its just easier to create my own hal based on hal_manualtoolchange with additional button

Added
so what Im aiming now - find a way of modify class ToolDialog(LcncDialog, GeometryMixin): from dialog_widget.py inside  custom qtdragon_hd_handler.py (or similar mechanism)
Last edit: 16 Aug 2024 18:34 by chernogorsky.

Please Log in or Create an account to join the conversation.

More
16 Aug 2024 21:08 #307963 by cmorley
It is possible to have a custom dialog. I haven't done one for tool dialog but see no particular problem. It would, as you suspected, require a custom handler file.

But I don't think it ill help you. The dialog blocks because linuxcnc is blocked. Unblocking the dialog will not unblock linuxcnc.

You can not call MDI commands at tool change unless it's incorporated into a remap.

Please Log in or Create an account to join the conversation.

More
17 Aug 2024 14:22 #308006 by chernogorsky
Do you have any example of handler to replace dilog ?

I may be end up with rewrite pistprocessor adding pause / msg before tool change

Im ok with remap/sub call /etc

Please Log in or Create an account to join the conversation.

More
17 Aug 2024 18:17 #308017 by cmorley
This is an example - it only changes the dialog title.

in your config folder there should be a folder named qtvcp/screens/qtdragon
in that folder add this file, rename it qtdragon_handler.py

Erasing/renaming the file will return you to the standard dialog.

 
Attachments:
The following user(s) said Thank You: chernogorsky

Please Log in or Create an account to join the conversation.

More
19 Aug 2024 12:52 #308135 by chernogorsky
Thank you, thats what I was looking
will start from here and update if succeded/failed )

Please Log in or Create an account to join the conversation.

More
19 Aug 2024 16:51 #308148 by chernogorsky
Ok, I made some tests
I managed to replace the button, but
I can do nothing from the dialog itself
it looks like during the dialog im in "auto" mode
and non of my attempts

cmdList.append(('command',"G1 G53 X300"))
#ACTION.PAUSE_MACHINE()
ACTION.CALL_MDI_LIST(cmdList)
#ACTION.CALL_MDI_WAIT('o<pnc_tc_manual> call',time=10, mode_return=True)
#ACTION.CALL_OWORD('o<pnc_tc_manual> call')
#ACTION.RESUME()
#ACTION.cmd.mdi_and_return(None,cmdList)

works

[QTvcp.QTVCP.QT_ACTION][DEBUG] MDI_WAIT_Command= G0 G53 X300, maxt = 10 (qt_action.py:204)
[QTvcp.QTVCP.QT_ACTION][DEBUG] CALL_MDI_WAIT Command: G0 G53 X300 (qt_action.py:207)
[QTvcp.QTVCP.QT_ACTION][ERROR] CALL_MDI_WAIT timeout surpassed 10 seconds (qt_action.py:211)
mdi_execute_abort: dropping 1 queued MDI commands



I probably miss the point you try to explain earlier

The only option I have not tried yet is
change the dialog, so tool_change button press return some value
work with that value in the loop in qt_toolchangeauto macro, since it's in normal auto mode - it may execute gcode / commands

it would reload dialog every button press (on pi4 its a pain), but at least it might work

Please Log in or Create an account to join the conversation.

Moderators: cmorley
Time to create page: 0.158 seconds
Powered by Kunena Forum