fix 'add' button in Job task panel
fix chamfer bit lgtm cleanup
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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'):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -129,6 +129,7 @@ class CommandToolBitLibraryOpen:
|
||||
# return True
|
||||
# return False
|
||||
|
||||
|
||||
if FreeCAD.GuiUp:
|
||||
FreeCADGui.addCommand('Path_ToolBitLibraryOpen', CommandToolBitLibraryOpen())
|
||||
FreeCADGui.addCommand('Path_ToolBitDock', CommandToolBitSelectorOpen())
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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())
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user