CAM: Replace complete tool management (PR 21425)

This commit is contained in:
Samuel Abels
2025-05-19 20:25:00 +02:00
parent ecb3ede295
commit b14d8ff98e
169 changed files with 22274 additions and 2905 deletions

View File

@@ -35,10 +35,9 @@ import Path.Main.Gui.JobCmd as PathJobCmd
import Path.Main.Gui.JobDlg as PathJobDlg
import Path.Main.Job as PathJob
import Path.Main.Stock as PathStock
import Path.Tool.Gui.Bit as PathToolBitGui
import Path.Tool.Gui.Controller as PathToolControllerGui
import PathScripts.PathUtils as PathUtils
import json
from Path.Tool.toolbit.ui.selector import ToolBitSelector
import math
import traceback
from PySide import QtWidgets
@@ -1073,29 +1072,14 @@ class TaskPanel:
self.toolControllerSelect()
def toolControllerAdd(self):
# adding a TC from a toolbit directly.
# Try to find a tool number from the currently selected lib. Otherwise
# use next available number
tools = PathToolBitGui.LoadTools()
curLib = Path.Preferences.lastFileToolLibrary()
library = None
if curLib is not None:
with open(curLib) as fp:
library = json.load(fp)
for tool in tools:
toolNum = self.obj.Proxy.nextToolNumber()
if library is not None:
for toolBit in library["tools"]:
if toolBit["path"] == tool.File:
toolNum = toolBit["nr"]
tc = PathToolControllerGui.Create(name=tool.Label, tool=tool, toolNumber=toolNum)
self.obj.Proxy.addToolController(tc)
selector = ToolBitSelector(compact=True)
if not selector.exec_():
return
toolbit = selector.get_selected_tool()
toolbit.attach_to_doc(FreeCAD.ActiveDocument)
toolNum = self.obj.Proxy.nextToolNumber()
tc = PathToolControllerGui.Create(name=toolbit.label, tool=toolbit.obj, toolNumber=toolNum)
self.obj.Proxy.addToolController(tc)
FreeCAD.ActiveDocument.recompute()
self.updateToolController()

View File

@@ -67,7 +67,6 @@ class JobPreferencesPage:
policy = str(self.form.cboOutputPolicy.currentText())
Path.Preferences.setOutputFileDefaults(path, policy)
self.saveStockSettings()
self.saveToolsSettings()
def saveStockSettings(self):
if self.form.stockGroup.isChecked():
@@ -116,9 +115,6 @@ class JobPreferencesPage:
else:
Path.Preferences.setDefaultStockTemplate("")
def saveToolsSettings(self):
Path.Preferences.setToolsSettings(self.form.toolsAbsolutePaths.isChecked())
def selectComboEntry(self, widget, text):
index = widget.findText(text, QtCore.Qt.MatchFixedString)
if index >= 0:
@@ -189,7 +185,6 @@ class JobPreferencesPage:
self.form.tbOutputFile.clicked.connect(self.browseOutputFile)
self.loadStockSettings()
self.loadToolSettings()
def loadStockSettings(self):
stock = Path.Preferences.defaultStockTemplate()
@@ -283,9 +278,6 @@ class JobPreferencesPage:
self.form.stockCreateBox.hide()
self.form.stockCreateCylinder.hide()
def loadToolSettings(self):
self.form.toolsAbsolutePaths.setChecked(Path.Preferences.toolsStoreAbsolutePaths())
def getPostProcessor(self, name):
if not name in self.processor:
processor = PostProcessorFactory.get_post_processor(None, name)

View File

@@ -368,8 +368,8 @@ class CAMSanity:
)
continue # skip old-style tools
tooldata = data.setdefault(str(TC.ToolNumber), {})
bitshape = tooldata.setdefault("BitShape", "")
if bitshape not in ["", TC.Tool.BitShape]:
bitshape = tooldata.setdefault("ShapeType", "")
if bitshape not in ["", TC.Tool.ShapeType]:
data["squawkData"].append(
self.squawk(
"CAMSanity",
@@ -379,18 +379,18 @@ class CAMSanity:
squawkType="CAUTION",
)
)
tooldata["bitShape"] = TC.Tool.BitShape
tooldata["bitShape"] = TC.Tool.ShapeType
tooldata["description"] = TC.Tool.Label
tooldata["manufacturer"] = ""
tooldata["url"] = ""
tooldata["inspectionNotes"] = ""
tooldata["diameter"] = str(TC.Tool.Diameter)
tooldata["shape"] = TC.Tool.ShapeName
tooldata["shape"] = TC.Tool.ShapeType
tooldata["partNumber"] = ""
if os.path.isfile(TC.Tool.BitShape):
imagedata = TC.Tool.Proxy.getBitThumbnail(TC.Tool)
if os.path.isfile(TC.Tool.ShapeType):
imagedata = TC.Tool.Proxy.get_thumbnail()
else:
imagedata = None
data["squawkData"].append(