Prevent spindle start if a certain tool is selected?
- pippin88
- Offline
- Elite Member
Less
More
- Posts: 260
- Thank you received: 45
17 Jun 2024 10:31 #303164
by pippin88
Replied by pippin88 on topic Prevent spindle start if a certain tool is selected?
Ideal solution to me seems to alter tool table to allow a max rpm.
github.com/LinuxCNC/linuxcnc/issues/2949
0rpm for a probe (or have another field that allows spindle to be enabled or disabled).
Face mills / larger tools would benefit from max rpm function.
(I am not capable of doing this sorry).
github.com/LinuxCNC/linuxcnc/issues/2949
0rpm for a probe (or have another field that allows spindle to be enabled or disabled).
Face mills / larger tools would benefit from max rpm function.
(I am not capable of doing this sorry).
The following user(s) said Thank You: RotarySMP, Clive S
Please Log in or Create an account to join the conversation.
- RotarySMP
- Offline
- Platinum Member
Less
More
- Posts: 1453
- Thank you received: 526
17 Jun 2024 11:59 #303170
by RotarySMP
Replied by RotarySMP on topic Prevent spindle start if a certain tool is selected?
Thanks, I'll give that a go and report back.
Please Log in or Create an account to join the conversation.
- Aciera
- Offline
- Administrator
Less
More
- Posts: 3946
- Thank you received: 1705
17 Jun 2024 12:07 #303172
by Aciera
Replied by Aciera on topic Prevent spindle start if a certain tool is selected?
Maybe this helps as an example:
forum.linuxcnc.org/38-general-linuxcnc-q...h-ui?start=20#299957
Note the above thread as such is a write off but the example component I presented there might be of interest.
forum.linuxcnc.org/38-general-linuxcnc-q...h-ui?start=20#299957
Note the above thread as such is a write off but the example component I presented there might be of interest.
The following user(s) said Thank You: RotarySMP
Please Log in or Create an account to join the conversation.
- RotarySMP
- Offline
- Platinum Member
Less
More
- Posts: 1453
- Thank you received: 526
17 Jun 2024 12:52 #303176
by RotarySMP
Replied by RotarySMP on topic Prevent spindle start if a certain tool is selected?
Pippins idea is a really good one.
Please Log in or Create an account to join the conversation.
- Aciera
- Offline
- Administrator
Less
More
- Posts: 3946
- Thank you received: 1705
17 Jun 2024 14:13 - 17 Jun 2024 14:21 #303180
by Aciera
Given the lack of active developers you may be waiting a long time for a built in solution.
The point I was trying to make in the linked thread was that you can already do this by using an unused tool-table column and a python component to limit the commanded spindle speed.
[edit]
Actually if you use an unused tool-table column say 'w_offset' for max speed you would not even need a python component as that value is directly available as a hal-pin.
Replied by Aciera on topic Prevent spindle start if a certain tool is selected?
Pippins idea is a really good one.
Given the lack of active developers you may be waiting a long time for a built in solution.
The point I was trying to make in the linked thread was that you can already do this by using an unused tool-table column and a python component to limit the commanded spindle speed.
[edit]
Actually if you use an unused tool-table column say 'w_offset' for max speed you would not even need a python component as that value is directly available as a hal-pin.
Last edit: 17 Jun 2024 14:21 by Aciera.
The following user(s) said Thank You: RotarySMP
Please Log in or Create an account to join the conversation.
- RotarySMP
- Offline
- Platinum Member
Less
More
- Posts: 1453
- Thank you received: 526
17 Jun 2024 15:45 #303185
by RotarySMP
Replied by RotarySMP on topic Prevent spindle start if a certain tool is selected?
Nice idea. Will try to see if I can do something with it.
Please Log in or Create an account to join the conversation.
- RotarySMP
- Offline
- Platinum Member
Less
More
- Posts: 1453
- Thank you received: 526
17 Jun 2024 18:45 - 17 Jun 2024 19:01 #303192
by RotarySMP
Replied by RotarySMP on topic Prevent spindle start if a certain tool is selected?
TO start with, I'm just trying to add the inhibit for tool 999.
Okay, I added:[DISPLAY]
USER_COMMAND_FILE=usercommand.py
As I am on LCNC 2.7 on the maho, I dont have spindle.0.inhibit, so I replaced that with motion.spindle.inhibit in my usercommand.py file.
#!/usr/bin/env python
prob_in_spindle = 0
def user_live_update():
global prob_in_spindle
#PROBE = T999 / T998
if s.tool_in_spindle == 998 or s.tool_in_spindle == 999:
prob_in_spindle = 1
hal.set_p('motion.spindle.inhibit','1')
else:
if prob_in_spindle == 1:
prob_in_spindle = 0
hal.set_p('motion.spindle.inhibit','0')
I have an INI entry:
[PYTHON]
PATH_PREPEND = python
TOPLEVEL = python/toplevel.py
I tried putting my usercommand.py in both the directory with the INI, and one down in the python directory. In both cases, there are no errors on start, but there is also no change in behaviour. It doesn't inhibit the spindle with T999 active.
I have struggle with this interface of multiple files and directories, and would appreciate your help pointing out which changes I need. Thanks.
Cheers,
Mark
ps... I wonder if my 2.7 Lcnc even has the global variable prob_in_spindle?
Okay, I added:[DISPLAY]
USER_COMMAND_FILE=usercommand.py
As I am on LCNC 2.7 on the maho, I dont have spindle.0.inhibit, so I replaced that with motion.spindle.inhibit in my usercommand.py file.
#!/usr/bin/env python
prob_in_spindle = 0
def user_live_update():
global prob_in_spindle
#PROBE = T999 / T998
if s.tool_in_spindle == 998 or s.tool_in_spindle == 999:
prob_in_spindle = 1
hal.set_p('motion.spindle.inhibit','1')
else:
if prob_in_spindle == 1:
prob_in_spindle = 0
hal.set_p('motion.spindle.inhibit','0')
I have an INI entry:
[PYTHON]
PATH_PREPEND = python
TOPLEVEL = python/toplevel.py
I tried putting my usercommand.py in both the directory with the INI, and one down in the python directory. In both cases, there are no errors on start, but there is also no change in behaviour. It doesn't inhibit the spindle with T999 active.
I have struggle with this interface of multiple files and directories, and would appreciate your help pointing out which changes I need. Thanks.
Cheers,
Mark
ps... I wonder if my 2.7 Lcnc even has the global variable prob_in_spindle?
Last edit: 17 Jun 2024 19:01 by RotarySMP.
Please Log in or Create an account to join the conversation.
- Aciera
- Offline
- Administrator
Less
More
- Posts: 3946
- Thank you received: 1705
17 Jun 2024 19:24 - 17 Jun 2024 19:33 #303193
by Aciera
Replied by Aciera on topic Prevent spindle start if a certain tool is selected?
First I think you need to add this as a userspace component.
Then you need to have a loop in there as otherwise it will simply run once and then disappear.
Have a look at 'Basic Usage':
linuxcnc.org/docs/2.7/html/hal/halmodule.html
[edit]
2.7 was before my time so things may have changed a bit but these days you would also want to poll the status channel in the loop so your getting up to date information
Then you need to have a loop in there as otherwise it will simply run once and then disappear.
Have a look at 'Basic Usage':
linuxcnc.org/docs/2.7/html/hal/halmodule.html
[edit]
2.7 was before my time so things may have changed a bit but these days you would also want to poll the status channel in the loop so your getting up to date information
Last edit: 17 Jun 2024 19:33 by Aciera.
The following user(s) said Thank You: RotarySMP
Please Log in or Create an account to join the conversation.
- RotarySMP
- Offline
- Platinum Member
Less
More
- Posts: 1453
- Thank you received: 526
17 Jun 2024 19:27 #303194
by RotarySMP
Replied by RotarySMP on topic Prevent spindle start if a certain tool is selected?
Thanks for pointing me in the right direction. Will do.
Please Log in or Create an account to join the conversation.
- Aciera
- Offline
- Administrator
Less
More
- Posts: 3946
- Thank you received: 1705
17 Jun 2024 19:48 #303198
by Aciera
Replied by Aciera on topic Prevent spindle start if a certain tool is selected?
I'm a bit worn out right now, so I have no idea if this works on 2.7 but you can give this a go and have a look at 'mycomp.spindle-inhibit' pin in halshow:
To load this add this to your hal file
#!/usr/bin/env python
import hal
import linuxcnc
h = hal.component("mycomp")
h.newpin("spindle_inhibit", hal.HAL_BIT, hal.HAL_OUT)
h.ready()
# create a connection to the status channel
s = linuxcnc.stat()
try:
while 1:
s.poll() # get values from the status channel
current_tool = s.tool_in_spindle # get curent tool-number
if s.tool_in_spindle and (s.tool_in_spindle == 998 or s.tool_in_spindle == 999): # a tool is loaded
h['spindle_inhibit'] = 1
else:
h['spindle_inhibit'] = 0
except KeyboardInterrupt:
raise SystemExit
To load this add this to your hal file
loadusr mycomp
The following user(s) said Thank You: RotarySMP
Please Log in or Create an account to join the conversation.
Time to create page: 0.077 seconds