Which UI?
- fully_defined
- Offline
- New Member
- Posts: 16
- Thank you received: 3
I haven't been able to fully respond to your thoughtful post, so consider this a placeholder comment that I read it, and I am taking it in. I definitely want to engage with you on this before you get bored of waiting though!OP -
Are there any other non-negotiable functions/features you can think of which would drive your decision about which CNC control to use?
No worries, no rush.
OP -
Are there any other non-negotiable functions/features you can think of which would drive your decision about which CNC control to use?
I haven't been able to fully respond to your thoughtful post, so consider this a placeholder comment that I read it, and I am taking it in. I definitely want to engage with you on this before you get bored of waiting though!
Feel free to continue in this thread, or perhaps start a new one if the gist of your questions are less UI and more general LCNC in nature.
Keep in mind that I'm not an LCNC 'expert' by any possible stretch. Nor am I a full-time professional machinist. But I do have a fair amount of exposure to working job & production shops and some hands-on experience with various industrial controls.
#!/usr/bin/env python3
import re
import hal
import linuxcnc
h = hal.component("mycomp")
h.newpin("number-of-teeth", hal.HAL_FLOAT, hal.HAL_OUT)
h.ready()
# create a connection to the status channel
s = linuxcnc.stat()
n = 0
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 != 0: # a tool is loaded
tool_comment = s.toolinfo(current_tool)['comment'] # get the comment string of the loaded tool
m = re.search(r'(?<=n=)\d+', tool_comment) # search the comment string for a one- or two-digit number after 'n='
if m is not None: # comment string contains the information
n = float(m.group(0))
else: # comment string does not contain the information
n = 0
else:
n = 0
# set hal pin
h['number-of-teeth'] = n
except KeyboardInterrupt:
raise SystemExit
In version 2.9.x we would need to enter that information in one of the offset collumns (eg 'W') but some GUIs (eg Gmoccapy) hide the offset columns of unused axes.
Attachments:
value = s.tool_table[s.tool_in_spindle].woffset
Attachments:
- fully_defined
- Offline
- New Member
- Posts: 16
- Thank you received: 3
This is very helpful info, so thanks! It's good to know that LinuxCNC has some flexibility.As a note to my last comment, it's quite simple to make a hidden column reappear in the tooleditor of gmoccapy. Just add line 1921 to 'bin/gmoccapy' with the column(s) you want (eg 'w') as in the screen shot below. The value in the example 'W' column can then be accessed like this:
value = s.tool_table[s.tool_in_spindle].woffset [attachment=61232]gmoccapy_tooledit_column.png[/attachment]
But it's kind of troubling in its own way. Those who know, know what A, B, C, U, V, & W are, and number of teeth isn't one of those things. I suppose the lack of such a parameter is a peek through the window of LinuxCNC's origin story, and it's not flattering. But I also want to add that I don't know of a single example of a competitor that has such comprehensive features. Again, troubling in its own way.
Is there a reason a purpose-built column like number of teeth can't be added? Was LinuxCNC finished one day and nobody has thought to fix these kinds of shortcomings? Is there somebody at the top who manages this?
I ask these questions because I am considering LinuxCNC, but I want to save myself the trouble if it becomes its own project. I am simply looking for a good PC-based CNC controller, and every single one seems to have weird holes in its core set of features that make me question if the person who designed it ever left their parents' basement.
Try to change the UI on a Fanuc, Haas or Heidenhain. The strange thing is that people will lay out thousands for a commercial controller and happily accept the limitations that come with it but if a free and opensource solution comes with limitations then they find it inconceivable that nobody has filled a particular gap.
You seem to have very particular ideas about what the UI should look like and that is certainly something that can be customized in LinuxCNC but it IS going to involve a learning curve and it IS going to be a bit of a project.
What you need to realize is that LinuxCNC is NOT a product in the classical sense. It is the result of a community effort. There is no management or agenda. There is peer review of proposed changes. So if somebody wants to go through the trouble of adding a 'number of teeth' column to the tool table then that may be adopted but I can assure you that it will be MUCH easier to customize the tool editor so the 'W' offset column reads 'number of teeth'.
The problem is where do you stop? For example there has been a proposal for a 'max spindle speed' column.
As a side note:
Linuxcnc can coordinate 9 axes 'XYZABCUVW' hence there are tool offsets built in for all those.
- tommylight
- Away
- Moderator
- Posts: 19106
- Thank you received: 6398
+1LinuxCNC doesn't just have 'some' flexibility it is EASILY the 'most' flexible controller software there is.
- fully_defined
- Offline
- New Member
- Posts: 16
- Thank you received: 3
My disappointment is not limited to LinuxCNC. EdingCNC sent me their CNC720 hardware for free a few years ago, probably because I worked at SpaceX at the time and they wanted to put their product in front of as many Americans as they could. Similarly to LinuxCNC, it seemed like it was full of willful ignorance of features that actual nerds want.I do not think there is a controller out there that will give you all you could ever want but the strength of LinuxCNC is that it can be customized to an incredible degree.
The same goes for just about any other controller I have ever seen, but two controllers stood out to me as being ALMOST THERE. The first was Centroid, for which I seriously liked the plain UI. It's still missing some critical things, but importantly it lacked the kind of 1990s Saved-by-the-Bell aesthetic of Mach3. Its fatal flaw was the virtual control panel, which had some silly buttons in the bottom right corner that could not be edited out. Me being right-handed, it was enough of a dealbreaker. When I mentioned this in a similar fashion to how this conversation is going, I was told to beat feet. Guess what? Now you can edit the entire VCP! LOL!
The other one is Carbide Motion, which is a GRBL controller. Laugh all you want, but it's not trying to pretend it is anything it isn't. I think they did a great job integrating the machine they sell with the controller. You can't do anything with it the machine it ships with can't do.
This is a false comparison. Fanuc, Haas and Heidenhain are specific purpose-built OEM packages and are not options for self-built machines, other than being inspirations for them.Try to change the UI on a Fanuc, Haas or Heidenhain. The strange thing is that people will lay out thousands for a commercial controller and happily accept the limitations that come with it but if a free and opensource solution comes with limitations then they find it inconceivable that nobody has filled a particular gap.
Yes, I do. I understand how much potential is locked up inside LinuxCNC, but OOTB, especially for non-Linux people, it seems more like a curiosity. My use case (3-axis dual-Y router) is dead simple, but it looks like I have to reengineer the Space Shuttle to include base level features and omit impractical default UI elements. That's the part that I question, because it should be the other way around. If it was delivered as a shining ready-to-chooch example for the kinds of machines (like 3-axis mills) that I assume the vast majority of users have, and required customization for more advanced use cases, I might feel differently.You seem to have very particular ideas about what the UI should look like and that is certainly something that can be customized in LinuxCNC but it IS going to involve a learning curve and it IS going to be a bit of a project.
I absolutely do understand this, and it is why I am going through all this trouble before I spend money on new controller hardware. Because number of teeth isn't already a feature, I seriously question the community's effort. There is zero chance I am the first person to recognize the need for it, and so I am left to wonder why it still is not a core part of the tool library database. It also makes me wonder what other basic features have been excluded. If the board, or whoever decides what features are added, have intentionally not added number of teeth, then what does that say about the board?What you need to realize is that LinuxCNC is NOT a product in the classical sense. It is the result of a community effort. There is no management or agenda. There is peer review of proposed changes. So if somebody wants to go through the trouble of adding a 'number of teeth' column to the tool table then that may be adopted but I can assure you that it will be MUCH easier to customize the tool editor so the 'W' offset column reads 'number of teeth'.
Never stop innovating. I don't consider number of teeth to be a revolutionary feature addition though, especially when someone went out of their way to make sure that Linux could handle all 9 axes of a mill-turn. But did they make it 2 channel? LOLThe problem is where do you stop? For example there has been a proposal for a 'max spindle speed' column.