[CAM] Add UI elements for viewing and editing tool controller parameters from within the operation edit UI (#23180)
* [CAM] extract tool controller ui elements into their own file * [CAM] make the changes in the tool controller UI only apply when ok is clicked * [CAM] Add tool controller edit panel to the Profile operation * [CAM] Add copy button to in-operation tool controller editor * [CAM] clean up changes * [CAM] Add tool controller edit UI to all operations Notes on changes that were not a simple copy/paste job from the changes I made for Profile: - Deburr: changed TC/coolant rows from 1 and 2 to 0 and 1 - Probe: didn't work at all initially due to bug in main where ShapeName changed to ShapeType. I added a utility for reading either a ShapeType or a ShapeName (check for both properties, convert ShapeType to lower case) and applied it to probe and camotics - Drilling: moved Keep Tool Down checkbox up from row 8 to row 2 (all intermediate rows were missing) and added the edit checkbox in row 3 below it - VBit, Probe (or anything else that requires a specific tool type): in Base.py setupToolController(), I added a check to see if the currently selected tool is an invalid type, and if so and there is a valid tool, then change to that one. This fixes two UI bugs. Plausibly pre-existing, if there is one valid tool and an invalid tool is selected, it's impossible to switch to the valid one because you can't generate a combo box change event for the new tool. Definitely new: if an invalid tool is selected and there are no valid tools, the combo box will be empty but the new tool controller edit utility will let you edit the current TC anyway. - Thread Milling: replaced the Tool Controller GroupBox with the standard QFrame layout, and added the checkbox. Note that this operation doesn't have a UI element for coolant -- likely a bug, but I didn't look into it - Surface: Changed from form layout to grid layout. Deleted an old SurfaceEdit.ui file -- it was replaced with PageOpSurfaceEdit.ui in 2017 but not deleted (commit 77af19e7489e1fc637a68cdad220e5dd430dc2b9) - Waterline: Changed from form layout to grid layout * [CAM] Bug fixes setupUi() wasn't called on the tool controller editor, preventing changes in its UI from being written back to the object immediately. This caused weird behavior where if you edited a field twice it would reset the second time it was focused Added a hook to automatically update the TC combo box when the TC name (or anything else about it, since that was easier) changes * Fix usage of QSignalBlockers * [CAM] Block scroll events on tool number and spindle direction when not focused Specifically, if you mouse over either of these UI elements and use the scroll wheel, it used to focus the element and change its value. This commit makes it do neither of those things, for these specific elements, as a measure against users accidentally changing these values. * disable tcNumber edit field in operations panel * Add "New tool controller" option to TC combo box When selected, it opens (toggles, technically) the tool bit dock and returns to the previous selection. Adding a new tool controller using the dock (already, before this commit) automatically switches the operation's tool controller to the new one * Add "Copy" option to tool controller combo box * Copy TC function only in combo box, no button * [CAM] update in-operation "new tool controller" function to use a dialog * [CAM] make the tool selector always a dialog and never a dock * remove spacer from ToolControllerEdit.ui to fix exces white space * [CAM] change tool dialog default sizing/spacing * [CAM] fix bug where copying tool controller doesn't copy all values
This commit is contained in:
@@ -357,6 +357,14 @@ def getToolControllers(obj, proxy=None):
|
||||
return []
|
||||
|
||||
|
||||
def getToolShapeName(tool):
|
||||
if hasattr(tool, "ShapeName"):
|
||||
return tool.ShapeName.lower()
|
||||
if hasattr(tool, "ShapeType"):
|
||||
return tool.ShapeType.lower()
|
||||
return ""
|
||||
|
||||
|
||||
def findToolController(obj, proxy, name=None):
|
||||
"""returns a tool controller with a given name.
|
||||
If no name is specified, returns the first controller.
|
||||
|
||||
Reference in New Issue
Block a user