fix 'add' button in Job task panel

fix chamfer bit
lgtm cleanup
This commit is contained in:
sliptonic
2020-11-19 17:10:50 -06:00
parent 26eac120b8
commit 634fce6e35
12 changed files with 51 additions and 52 deletions

View File

@@ -103,7 +103,6 @@ Notification = NotificationClass()
class ObjectJob:
def __init__(self, obj, models, templateFile=None):
self.obj = obj
obj.addProperty("App::PropertyFile", "PostProcessorOutputFile", "Output", QtCore.QT_TRANSLATE_NOOP("PathJob", "The NC output file for this project"))
@@ -155,7 +154,6 @@ class ObjectJob:
self.tooltip = None
self.tooltipArgs = None
obj.Proxy = self
self.setFromTemplateFile(obj, templateFile)

View File

@@ -25,7 +25,6 @@ from collections import Counter
from contextlib import contextmanager
import math
import traceback
from pivy import coin
from PySide import QtCore, QtGui
@@ -45,6 +44,7 @@ import PathScripts.PathToolControllerGui as PathToolControllerGui
import PathScripts.PathToolLibraryEditor as PathToolLibraryEditor
import PathScripts.PathUtil as PathUtil
import PathScripts.PathUtils as PathUtils
import PathScripts.PathToolBitGui as PathToolBitGui
# lazily loaded modules
from lazy_loader.lazy_loader import LazyLoader
@@ -866,7 +866,15 @@ class TaskPanel:
self.toolControllerSelect()
def toolControllerAdd(self):
PathToolLibraryEditor.CommandToolLibraryEdit().edit(self.obj, self.updateToolController)
if PathPreferences.toolsUseLegacyTools():
PathToolLibraryEditor.CommandToolLibraryEdit().edit(self.obj, self.updateToolController)
else:
tools = PathToolBitGui.LoadTools()
for tool in tools:
tc = PathToolControllerGui.Create(name=tool.Label, tool=tool)
self.obj.Proxy.addToolController(tc)
FreeCAD.ActiveDocument.recompute()
self.updateToolController()
def toolControllerDelete(self):
self.objectDelete(self.form.toolControllerList)

View File

@@ -545,7 +545,7 @@ class TaskPanelBaseGeometryPage(TaskPanelPage):
PathLog.error(translate("PathProject", "Faces are not supported"))
return False
else:
if not self.supportsPanels() or not 'Panel' in sel.Object.Name:
if not self.supportsPanels() or 'Panel' not in sel.Object.Name:
if not ignoreErrors:
PathLog.error(translate("PathProject", "Please select %s of a solid" % self.featureName()))
return False
@@ -636,6 +636,7 @@ class TaskPanelBaseGeometryPage(TaskPanelPage):
row = (qList.count() + qList.frameWidth()) * 15
qList.setFixedSize(col, row)
class TaskPanelBaseLocationPage(TaskPanelPage):
'''Page controller for base locations. Uses PathGetPoint.'''
@@ -936,6 +937,7 @@ class TaskPanelDepthsPage(TaskPanelPage):
self.form.startDepthSet.setEnabled(False)
self.form.finalDepthSet.setEnabled(False)
class TaskPanelDiametersPage(TaskPanelPage):
'''Page controller for diameters.'''
@@ -960,7 +962,7 @@ class TaskPanelDiametersPage(TaskPanelPage):
self.minDiameter.updateProperty()
self.maxDiameter.updateProperty()
def setFields(self, obj):
def setFields(self, obj):
self.minDiameter.updateSpinBox()
self.maxDiameter.updateSpinBox()
@@ -974,6 +976,7 @@ class TaskPanelDiametersPage(TaskPanelPage):
if prop in ['MinDiameter', 'MaxDiameter']:
self.setFields(obj)
class TaskPanel(object):
'''
Generic TaskPanel implementation handling the standard Path operation layout.

View File

@@ -128,8 +128,6 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
def updateVisibility(self):
hasFace = False
# hasGeom = False
# fullModel = False
objBase = list()
if hasattr(self.obj, 'Base'):
@@ -141,8 +139,6 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
if sub[:4] == 'Face':
hasFace = True
break
else:
fullModel = True
if hasFace:
self.form.processCircles.show()

View File

@@ -59,8 +59,7 @@ ParameterTypeConstraint = {
def _findTool(path, typ, dbg=False):
# PathLog.track("Path: {} typ: {}".format(path, typ))
if os.path.exists(path): # absolute reference
if os.path.exists(path): # absolute reference
if dbg:
PathLog.debug("Found {} at {}".format(typ, path))
return path
@@ -397,6 +396,7 @@ class AttributePrototype(PathSetupSheetOpPrototype.OpPrototype):
PropertyGroupAttribute, translate('PathToolBit',
'Whether Spindle Power should be allowed'))
class ToolBitFactory(object):
def CreateFromAttrs(self, attrs, name='ToolBit'):
@@ -414,21 +414,15 @@ class ToolBitFactory(object):
for pname in params:
try:
prop = proto.getProperty(pname)
# val = prop.valueFromString(params[pname])
prop.setupProperty(obj, pname, PropertyGroupAttribute, prop.valueFromString(params[pname]))
except Exception:
# prop = obj.addProperty('App::PropertyString', pname, "Attribute", translate('PathTooolBit', 'User Defined Value'))
# setattr(obj, pname, params[pname])
prop = proto.getProperty("UserAttributes")
uservals.update({pname: params[pname]})
# prop.setupProperty(obj, pname, "UserAttributes", prop.valueFromString(params[pname]))
if len(uservals.items()) > 0:
prop.setupProperty(obj, "UserAttributes",
PropertyGroupAttribute, uservals)
# print("prop[%s] = %s (%s)" % (pname, params[pname], type(val)))
# prop.setupProperty(obj, pname, PropertyGroupAttribute, prop.valueFromString(params[pname]))
return obj
def CreateFrom(self, path, name='ToolBit'):

View File

@@ -31,8 +31,8 @@ import re
from PySide import QtCore, QtGui
# PathLog.setLevel(PathLog.Level.DEBUG, PathLog.thisModule())
# PathLog.trackModule(PathLog.thisModule())
PathLog.setLevel(PathLog.Level.DEBUG, PathLog.thisModule())
PathLog.trackModule(PathLog.thisModule())
# Qt translation handling

View File

@@ -41,8 +41,9 @@ __doc__ = "Task panel editor for a ToolBit"
def translate(context, text, disambig=None):
return QtCore.QCoreApplication.translate(context, text, disambig)
# PathLog.setLevel(PathLog.Level.DEBUG, PathLog.thisModule())
# PathLog.trackModule(PathLog.thisModule())
PathLog.setLevel(PathLog.Level.DEBUG, PathLog.thisModule())
PathLog.trackModule(PathLog.thisModule())
class ViewProvider(object):
@@ -141,8 +142,7 @@ class TaskPanel:
self.editor.reject()
FreeCADGui.Control.closeDialog()
if self.deleteOnReject:
FreeCAD.ActiveDocument.openTransaction(translate('PathToolBit',
'Uncreate ToolBit'))
FreeCAD.ActiveDocument.openTransaction(translate('PathToolBit', 'Uncreate ToolBit'))
self.editor.reject()
FreeCAD.ActiveDocument.removeObject(self.obj.Name)
FreeCAD.ActiveDocument.commitTransaction()

View File

@@ -129,6 +129,7 @@ class CommandToolBitLibraryOpen:
# return True
# return False
if FreeCAD.GuiUp:
FreeCADGui.addCommand('Path_ToolBitLibraryOpen', CommandToolBitLibraryOpen())
FreeCADGui.addCommand('Path_ToolBitDock', CommandToolBitSelectorOpen())

View File

@@ -36,7 +36,6 @@ import PySide
import json
import os
import glob
import traceback
import uuid as UUID
from functools import partial
@@ -130,7 +129,6 @@ class ModelFactory(object):
self.path = ""
# self.currentLib = ""
def __libraryLoad(self, path, datamodel):
PathLog.track(path)
PathPreferences.setLastFileToolLibrary(path)
@@ -153,7 +151,6 @@ class ModelFactory(object):
msg = "Error loading tool: {} : {}".format(toolBit['path'], e)
FreeCAD.Console.PrintError(msg)
def _toolAdd(self, nr, tool, path):
strShape = os.path.splitext(os.path.basename(tool['shape']))[0]
@@ -176,11 +173,6 @@ class ModelFactory(object):
toolShape.setData(strShape, PySide.QtCore.Qt.EditRole)
toolShape.setEditable(False)
# toolDiameter = PySide.QtGui.QStandardItem()
# toolDiameter.setData(strDiam, PySide.QtCore.Qt.EditRole)
# toolDiameter.setEditable(False)
#return [toolNr, toolName, toolShape, toolDiameter]
return [toolNr, toolName, toolShape]
def newTool(self, datamodel, path):
@@ -196,8 +188,8 @@ class ModelFactory(object):
nr = max(nr, itemNr)
nr += 1
tool = PathToolBit.Declaration(path)
except Exception:
PathLog.error(traceback.print_exc())
except Exception as e:
PathLog.error(e)
datamodel.appendRow(self._toolAdd(nr, tool, path))
@@ -388,7 +380,7 @@ class ToolBitLibrary(object):
return
filename = PathToolBitGui.GetNewToolFile()
if filename == None:
if filename is None:
return
# Parse out the name of the file and write the structure
@@ -569,7 +561,6 @@ class ToolBitLibrary(object):
def libPaths(self):
lib = PathPreferences.lastFileToolLibrary()
loc = PathPreferences.lastPathToolLibrary()
#loc = os.path.split(lib)[0]
PathLog.track("lib: {} loc: {}".format(lib, loc))
return lib, loc
@@ -582,7 +573,6 @@ class ToolBitLibrary(object):
self.toolTableView.setUpdatesEnabled(False)
self.form.TableList.setUpdatesEnabled(False)
if path is None:
path, loc = self.libPaths()
@@ -600,7 +590,6 @@ class ToolBitLibrary(object):
self.toolModel.setHorizontalHeaderLabels(self.columnNames())
self.listModel.setHorizontalHeaderLabels(['Library'])
# Select the current library in the list of tables
curIndex = None
for i in range(self.listModel.rowCount()):

View File

@@ -98,7 +98,6 @@ class ToolController:
if hasattr(obj.Tool, 'InList') and len(obj.Tool.InList) == 1:
if hasattr(obj.Tool.Proxy, 'onDelete'):
obj.Tool.Proxy.onDelete(obj.Tool)
#obj.Document.removeObject(obj.Name)
def setFromTemplate(self, obj, template):
'''
@@ -177,7 +176,6 @@ class ToolController:
commands += "(" + obj.Label + ")"+'\n'
commands += 'M6 T'+str(obj.ToolNumber)+'\n'
# If a toolbit is used, check to see if spindlepower is allowed.
# This is to prevent accidentally spinning the spindle with an
# unpowered tool like probe or dragknife

View File

@@ -35,10 +35,12 @@ from PySide import QtCore, QtGui
from lazy_loader.lazy_loader import LazyLoader
Part = LazyLoader('Part', globals(), 'Part')
# Qt translation handling
def translate(context, text, disambig=None):
return QtCore.QCoreApplication.translate(context, text, disambig)
class ViewProvider:
def __init__(self, vobj):
@@ -122,7 +124,8 @@ class ViewProvider:
return [obj.Tool]
return []
def Create(name = 'Default Tool', tool=None, toolNumber=1):
def Create(name='Default Tool', tool=None, toolNumber=1):
PathLog.track(tool, toolNumber)
obj = PathScripts.PathToolController.Create(name, tool, toolNumber)
@@ -172,6 +175,7 @@ class CommandPathToolController(object):
job.Proxy.addToolController(tc)
FreeCAD.ActiveDocument.recompute()
class ToolControllerEditor(object):
def __init__(self, obj, asDialog):
@@ -180,13 +184,18 @@ class ToolControllerEditor(object):
self.form.buttonBox.hide()
self.obj = obj
self.vertFeed = PathGui.QuantitySpinBox(self.form.vertFeed, obj, 'VertFeed')
self.horizFeed = PathGui.QuantitySpinBox(self.form.horizFeed, obj, 'HorizFeed')
self.vertRapid = PathGui.QuantitySpinBox(self.form.vertRapid, obj, 'VertRapid')
self.horizRapid = PathGui.QuantitySpinBox(self.form.horizRapid, obj, 'HorizRapid')
self.vertFeed = PathGui.QuantitySpinBox(self.form.vertFeed, obj,
'VertFeed')
self.horizFeed = PathGui.QuantitySpinBox(self.form.horizFeed, obj,
'HorizFeed')
self.vertRapid = PathGui.QuantitySpinBox(self.form.vertRapid, obj,
'VertRapid')
self.horizRapid = PathGui.QuantitySpinBox(self.form.horizRapid, obj,
'HorizRapid')
if obj.Proxy.usesLegacyTool(obj):
self.editor = PathToolEdit.ToolEditor(obj.Tool, self.form.toolEditor)
self.editor = PathToolEdit.ToolEditor(obj.Tool,
self.form.toolEditor)
else:
self.editor = None
self.form.toolBox.widget(1).hide()
@@ -201,7 +210,8 @@ class ToolControllerEditor(object):
self.vertFeed.updateSpinBox()
self.vertRapid.updateSpinBox()
self.form.spindleSpeed.setValue(tc.SpindleSpeed)
index = self.form.spindleDirection.findText(tc.SpindleDir, QtCore.Qt.MatchFixedString)
index = self.form.spindleDirection.findText(tc.SpindleDir,
QtCore.Qt.MatchFixedString)
if index >= 0:
self.form.spindleDirection.setCurrentIndex(index)
@@ -224,9 +234,9 @@ class ToolControllerEditor(object):
self.editor.updateTool()
tc.Tool = self.editor.tool
except Exception as e: # pylint: disable=broad-except
PathLog.error(translate("PathToolController", "Error updating TC: %s") % e)
except Exception as e:
PathLog.error(translate("PathToolController",
"Error updating TC: %s") % e)
def refresh(self):
self.form.blockSignals(True)
@@ -296,7 +306,8 @@ class TaskPanel:
def setupUi(self):
if self.editor.editor:
t = Part.makeCylinder(1, 1)
self.toolrep = FreeCAD.ActiveDocument.addObject("Part::Feature", "tool")
self.toolrep = FreeCAD.ActiveDocument.addObject("Part::Feature",
"tool")
self.toolrep.Shape = t
self.setFields()
@@ -311,7 +322,7 @@ class DlgToolControllerEdit:
self.obj = obj
def exec_(self):
restoreTC = self.obj.Proxy.templateAttrs(self.obj)
restoreTC = self.obj.Proxy.templateAttrs(self.obj)
rc = False
if not self.editor.form.exec_():
@@ -320,6 +331,7 @@ class DlgToolControllerEdit:
rc = True
return rc
if FreeCAD.GuiUp:
# register the FreeCAD command
FreeCADGui.addCommand('Path_ToolController', CommandPathToolController())