Path: A possibly il-advised revision to library

# Conflicts:
#	src/Mod/Path/Gui/Resources/panels/DrillingEdit.ui
#	src/Mod/Path/PathScripts/PathDrilling.py
This commit is contained in:
sliptonic
2017-02-27 16:05:29 -06:00
committed by Yorik van Havre
parent fa1f358f52
commit 24d7bf7e78
5 changed files with 280 additions and 267 deletions

View File

@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>308</width>
<height>352</height>
<width>338</width>
<height>437</height>
</rect>
</property>
<property name="windowTitle">
@@ -15,12 +15,9 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QFrame" name="frame_4">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
<widget class="QGroupBox" name="groupBox_4">
<property name="title">
<string>Controller Name / Tool Number</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
@@ -37,23 +34,20 @@
</widget>
</item>
<item>
<widget class="QFrame" name="frame_2">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Tool Properties</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<widget class="QLabel" name="txtToolType">
<item row="0" column="0">
<widget class="QLabel" name="txtToolName">
<property name="text">
<string>Unknown</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="txtToolDiameter">
<item row="1" column="0">
<widget class="QLabel" name="txtToolType">
<property name="text">
<string>Unknown</string>
</property>
@@ -66,8 +60,15 @@
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="txtToolName">
<item row="3" column="1">
<widget class="QPushButton" name="cmdEditLocal">
<property name="text">
<string>Edit Local Copy...</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="txtToolDiameter">
<property name="text">
<string>Unknown</string>
</property>
@@ -157,29 +158,22 @@
</widget>
</item>
<item>
<widget class="QFrame" name="frame_3">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>Spindle</string>
</property>
<layout class="QFormLayout" name="formLayout_2">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Spindle Speed (RPM)</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QSpinBox" name="spindleSpeed">
<property name="maximum">
<number>99999</number>
</property>
</widget>
</item>
<item row="1" column="1">
<item row="0" column="1">
<widget class="QComboBox" name="cboSpindleDirection">
<item>
<property name="text">

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<class>ToolLibrary</class>
<widget class="QDialog" name="ToolLibrary">
<property name="geometry">
<rect>
<x>0</x>
@@ -10,11 +10,137 @@
<height>614</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="1">
<property name="windowTitle">
<string>Tool Library</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="ButtonImport">
<property name="text">
<string>Import...</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="ButtonExport">
<property name="text">
<string>Export...</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QTableView" name="ToolsList">
<property name="dragEnabled">
<bool>true</bool>
</property>
<property name="dragDropMode">
<enum>QAbstractItemView::DragOnly</enum>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="cornerButtonEnabled">
<bool>false</bool>
</property>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QPushButton" name="btnCopyTools">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Create Tool Controllers for the selected tools</string>
</property>
<property name="text">
<string>Create Tool Controller(s)</string>
</property>
<property name="icon">
<iconset resource="../Path.qrc">
<normaloff>:/icons/Path-LengthOffset.svg</normaloff>:/icons/Path-LengthOffset.svg</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="ButtonNewTool">
<property name="text">
<string>New Tool</string>
</property>
<property name="icon">
<iconset resource="../Path.qrc">
<normaloff>:/icons/Path-LoadTool.svg</normaloff>:/icons/Path-LoadTool.svg</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="ButtonDelete">
<property name="text">
<string>Delete</string>
</property>
<property name="icon">
<iconset resource="../../../../../Gui/Icons/resource.qrc">
<normaloff>:/icons/delete.svg</normaloff>:/icons/delete.svg</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="ButtonUp">
<property name="text">
<string>Move up</string>
</property>
<property name="icon">
<iconset resource="../../../../../Gui/Icons/resource.qrc">
<normaloff>:/icons/button_up.svg</normaloff>:/icons/button_up.svg</iconset>
</property>
<property name="checkable">
<bool>false</bool>
</property>
<property name="default">
<bool>false</bool>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="ButtonDown">
<property name="text">
<string>Move down</string>
</property>
<property name="icon">
<iconset resource="../../../../../Gui/Icons/resource.qrc">
<normaloff>:/icons/button_down.svg</normaloff>:/icons/button_down.svg</iconset>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@@ -24,146 +150,6 @@
</property>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Tool Library</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="5">
<widget class="QPushButton" name="ButtonImport">
<property name="text">
<string>Import...</string>
</property>
</widget>
</item>
<item row="4" column="6">
<widget class="QPushButton" name="ButtonDown">
<property name="text">
<string>Move down</string>
</property>
<property name="icon">
<iconset resource="../../../../../Gui/Icons/resource.qrc">
<normaloff>:/icons/button_down.svg</normaloff>:/icons/button_down.svg</iconset>
</property>
</widget>
</item>
<item row="4" column="5">
<widget class="QPushButton" name="ButtonUp">
<property name="text">
<string>Move up</string>
</property>
<property name="icon">
<iconset resource="../../../../../Gui/Icons/resource.qrc">
<normaloff>:/icons/button_up.svg</normaloff>:/icons/button_up.svg</iconset>
</property>
<property name="checkable">
<bool>false</bool>
</property>
<property name="default">
<bool>false</bool>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
<item row="3" column="3" colspan="4">
<widget class="QTableView" name="ToolsList">
<property name="dragEnabled">
<bool>true</bool>
</property>
<property name="dragDropMode">
<enum>QAbstractItemView::DragOnly</enum>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="cornerButtonEnabled">
<bool>false</bool>
</property>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
</widget>
</item>
<item row="0" column="6">
<widget class="QPushButton" name="ButtonExport">
<property name="text">
<string>Export...</string>
</property>
</widget>
</item>
<item row="4" column="4">
<widget class="QPushButton" name="ButtonDelete">
<property name="text">
<string>Delete</string>
</property>
<property name="icon">
<iconset resource="../../../../../Gui/Icons/resource.qrc">
<normaloff>:/icons/delete.svg</normaloff>:/icons/delete.svg</iconset>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QListView" name="listView">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="acceptDrops">
<bool>true</bool>
</property>
<property name="dragEnabled">
<bool>true</bool>
</property>
<property name="dragDropMode">
<enum>QAbstractItemView::DropOnly</enum>
</property>
</widget>
</item>
<item row="4" column="3">
<widget class="QPushButton" name="ButtonNewTool">
<property name="text">
<string>New Tool</string>
</property>
<property name="icon">
<iconset resource="../Path.qrc">
<normaloff>:/icons/Path-LoadTool.svg</normaloff>:/icons/Path-LoadTool.svg</iconset>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QPushButton" name="btnCopyTools">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Copy checked tools to another library</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../../../../../Gui/Icons/resource.qrc">
<normaloff>:/icons/button_left.svg</normaloff>:/icons/button_left.svg</iconset>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources>
@@ -174,7 +160,7 @@
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog</receiver>
<receiver>ToolLibrary</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
@@ -190,7 +176,7 @@
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog</receiver>
<receiver>ToolLibrary</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">

View File

@@ -80,7 +80,7 @@ class PathWorkbench (Workbench):
# build commands list
projcmdlist = ["Path_Job", "Path_Post", "Path_Inspect", "Path_Sanity"]
toolcmdlist = ["Path_ToolLibraryEdit", "Path_LoadTool"]
toolcmdlist = ["Path_ToolLibraryEdit"]
prepcmdlist = ["Path_Plane", "Path_Fixture", "Path_ToolLenOffset", "Path_Comment", "Path_Stop", "Path_FaceProfile", "Path_FacePocket", "Path_Custom", "Path_Shape"]
twodopcmdlist = ["Path_Contour", "Path_Profile", "Path_Profile_Edges", "Path_Pocket", "Path_Drilling", "Path_Engrave", "Path_MillFace", "Path_Helix"]
threedopcmdlist = ["Path_Surfacing"]

View File

@@ -24,6 +24,7 @@
''' Tool Controller defines tool, spindle speed and feed rates for Path Operations '''
import FreeCAD
from FreeCAD import Units
import FreeCADGui
import PathUtils
import Path
@@ -69,10 +70,10 @@ class LoadTool():
def execute(self, obj):
PathLog.track()
toolnum = obj.Tooltable.Tools.keys()[0]
#toolnum = obj.Tooltable.Tools.keys()[0]
commands = ""
commands += "(" + obj.Label + ")"+'\n'
commands += 'M6 T'+str(toolnum)+'\n'
commands += 'M6 T'+str(obj.ToolNumber)+'\n'
if obj.SpindleDir == 'Forward':
commands += 'M3 S' + str(obj.SpindleSpeed) + '\n'
@@ -88,7 +89,8 @@ class LoadTool():
obj.ViewObject.Visibility = True
def onChanged(self, obj, prop):
PathLog.track('prop: {}'.format(prop))
PathLog.track('prop: {} state: {}'.format(prop, obj.State))
if 'Restore' not in obj.State:
if prop == "ToolNumber":
@@ -134,7 +136,7 @@ class _ViewProviderLoadTool:
return None
def getIcon(self):
return ":/icons/Path-LoadTool.svg"
return ":/icons/Path-LengthOffset.svg"
def onChanged(self, vobj, prop):
mode = 2
@@ -169,7 +171,7 @@ class _ViewProviderLoadTool:
class CommandPathLoadTool:
def GetResources(self):
return {'Pixmap': 'Path-LoadTool',
return {'Pixmap': 'Path-LengthOffset',
'MenuText': QtCore.QT_TRANSLATE_NOOP("Path_LoadTool", "Add Tool Controller to the Job"),
'ToolTip': QtCore.QT_TRANSLATE_NOOP("Path_LoadTool", "Add Tool Controller")}
@@ -223,6 +225,8 @@ class TaskPanel:
def __init__(self):
self.form = FreeCADGui.PySideUic.loadUi(":/panels/ToolControl.ui")
#self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Path/ToolControl.ui")
self.editform = FreeCADGui.PySideUic.loadUi(":/panels/ToolEdit.ui")
self.updating = False
self.toolrep = None
@@ -284,7 +288,8 @@ class TaskPanel:
tool = tooltable.getTool(toolnum)
self.form.txtToolType.setText(tool.ToolType)
self.form.txtToolMaterial.setText(tool.Material)
self.form.txtToolDiameter.setText(str(tool.Diameter))
diam = Units.Quantity(tool.Diameter, FreeCAD.Units.Length)
self.form.txtToolDiameter.setText(diam.getUserPreferred()[0])
self.form.txtToolName.setText(tool.Name)
except:
self.form.txtToolType.setText("UNDEFINED")
@@ -314,6 +319,7 @@ class TaskPanel:
def setupUi(self):
self.form.tcoName.editingFinished.connect(self.getFields)
self.form.cmdEditLocal.clicked.connect(self.editTool)
t = Part.makeCylinder(1, 1)
self.toolrep = FreeCAD.ActiveDocument.addObject("Part::Feature", "tool")
@@ -321,6 +327,62 @@ class TaskPanel:
self.setFields()
def getType(self, tooltype):
"gets a combobox index number for a given type or viceversa"
toolslist = ["Drill", "CenterDrill", "CounterSink", "CounterBore",
"Reamer", "Tap", "EndMill", "SlotCutter", "BallEndMill",
"ChamferMill", "CornerRound", "Engraver"]
if isinstance(tooltype, str):
if tooltype in toolslist:
return toolslist.index(tooltype)
else:
return 0
else:
return toolslist[tooltype]
def getMaterial(self, material):
"gets a combobox index number for a given material or viceversa"
matslist = ["HighSpeedSteel", "HighCarbonToolSteel", "CastAlloy",
"Carbide", "Ceramics", "Diamond", "Sialon"]
if isinstance(material, str):
if material in matslist:
return matslist.index(material)
else:
return 0
else:
return matslist[material]
def editTool(self):
toolnum = self.obj.Tooltable.Tools.keys()[0]
tool = self.obj.Tooltable.getTool(toolnum)
editform = FreeCADGui.PySideUic.loadUi(":/panels/ToolEdit.ui")
editform.NameField.setText(tool.Name)
editform.TypeField.setCurrentIndex(self.getType(tool.ToolType))
editform.MaterialField.setCurrentIndex(self.getMaterial(tool.Material))
editform.DiameterField.setText(FreeCAD.Units.Quantity(tool.Diameter, FreeCAD.Units.Length).UserString)
editform.LengthOffsetField.setText(FreeCAD.Units.Quantity(tool.LengthOffset, FreeCAD.Units.Length).UserString)
editform.FlatRadiusField.setText(FreeCAD.Units.Quantity(tool.FlatRadius, FreeCAD.Units.Length).UserString)
editform.CornerRadiusField.setText(FreeCAD.Units.Quantity(tool.CornerRadius, FreeCAD.Units.Length).UserString)
editform.CuttingEdgeAngleField.setText(FreeCAD.Units.Quantity(tool.CuttingEdgeAngle, FreeCAD.Units.Angle).UserString)
editform.CuttingEdgeHeightField.setText(FreeCAD.Units.Quantity(tool.CuttingEdgeHeight, FreeCAD.Units.Length).UserString)
r = editform.exec_()
if r:
if editform.NameField.text():
tool.Name = str(editform.NameField.text()) #FIXME: not unicode safe!
tool.ToolType = self.getType(editform.TypeField.currentIndex())
tool.Material = self.getMaterial(editform.MaterialField.currentIndex())
tool.Diameter = FreeCAD.Units.parseQuantity(editform.DiameterField.text())
tool.LengthOffset = FreeCAD.Units.parseQuantity(editform.LengthOffsetField.text())
tool.FlatRadius = FreeCAD.Units.parseQuantity(editform.FlatRadiusField.text())
tool.CornerRadius = FreeCAD.Units.parseQuantity(editform.CornerRadiusField.text())
tool.CuttingEdgeAngle = FreeCAD.Units.Quantity(editform.CuttingEdgeAngleField.text())
tool.CuttingEdgeHeight = FreeCAD.Units.parseQuantity(editform.CuttingEdgeHeightField.text())
self.obj.Tooltable.setTool(toolnum, tool)
self.setFields()
class SelObserver:
def __init__(self):

View File

@@ -32,6 +32,12 @@ from PySide import QtCore, QtGui
import PathScripts
import PathUtils
import PathScripts.PathLog as PathLog
LOG_MODULE = 'PathToolLibraryManager'
PathLog.setLevel(PathLog.Level.DEBUG, LOG_MODULE)
PathLog.trackModule('PathToolLibraryManager')
try:
_encoding = QtGui.QApplication.UnicodeUTF8
@@ -142,7 +148,6 @@ class ToolLibraryManager():
'''
def __init__(self):
# self.ToolLibrary = []
self.prefs = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path")
return
@@ -160,10 +165,9 @@ class ToolLibraryManager():
# Get ToolTables from any open CNC jobs
for o in FreeCAD.ActiveDocument.Objects:
if "Proxy" in o.PropertiesList:
if hasattr(o, "Tooltable"):
toollist = o.Label
tablelist.append(toollist)
if hasattr(o, "Proxy"):
if isinstance(o.Proxy, PathScripts.PathJob.ObjectPathJob):
tablelist.append(o.Label)
return tablelist
def _findList(self, listname):
@@ -339,20 +343,6 @@ class ToolLibraryManager():
self.saveMainLibrary(tt)
return True
# def createToolController(self, job, tool):
# pass
# def exportListHeeks(self, tooltable):
# '''exports one or more Lists as a HeeksCNC tooltable'''
# pass
# def exportListLinuxCNC(self, tooltable):
# '''exports one or more Lists as a LinuxCNC tooltable'''
# pass
# def exportListXML(self, tooltable):
# '''exports one or more Lists as an XML file'''
# pass
class EditorPanel():
def __init__(self):
@@ -362,15 +352,7 @@ class EditorPanel():
self.editform = FreeCADGui.PySideUic.loadUi(":/panels/ToolEdit.ui")
self.TLM = ToolLibraryManager()
data = self.TLM.getLists()
self.listmodel = QtGui.QStandardItemModel(self.form.listView)
# self.listmodel = QtGui.QStringListModel(data)
for i in data:
item = QtGui.QStandardItem(i)
self.listmodel.appendRow(item)
self.form.listView.setModel(self.listmodel)
#self.form.listView.setCurrentIndex(0)
self.loadTable()
self.form.ToolsList.resizeColumnsToContents()
def accept(self):
@@ -394,9 +376,6 @@ class EditorPanel():
else:
return 0
else:
#if tooltype == 0:
# return "Undefined"
#else:
return toolslist[tooltype]
def getMaterial(self, material):
@@ -409,9 +388,6 @@ class EditorPanel():
else:
return 0
else:
#if material == 0:
# return "Undefined"
#else:
return matslist[material]
def addTool(self):
@@ -432,21 +408,20 @@ class EditorPanel():
t.CuttingEdgeAngle = FreeCAD.Units.Quantity(editform.CuttingEdgeAngleField.text())
t.CuttingEdgeHeight = FreeCAD.Units.parseQuantity(editform.CuttingEdgeHeightField.text())
listname = self.form.listView.selectedIndexes()[0].data()
listname = "<Main>"
if self.TLM.addnew(listname, t) is True:
self.loadTable(self.form.listView.selectedIndexes()[0])
self.loadTable()
def setFields(self):
index = self.listmodel.index(0, 0, QtCore.QModelIndex())
self.form.listView.setFocus()
sm = self.form.listView.selectionModel()
sm.select(index, sm.Select)
pass
def open(self):
pass
def loadTable(self, curr):
tooldata = self.TLM.getTools(curr.data())
def loadTable(self):
#tooldata = self.TLM.getTools(curr.data())
tooldata = self.TLM.getTools("<Main>")
self.form.ToolsList.setModel(tooldata)
def moveUp(self):
@@ -454,36 +429,39 @@ class EditorPanel():
item = self.form.ToolsList.selectedIndexes()[1].data()
if item:
number = int(item)
listname = self.form.listView.selectedIndexes()[0].data()
listname = "<Main>"
#listname = self.form.listView.selectedIndexes()[0].data()
if self.TLM.moveup(number, listname) is True:
self.loadTable(self.form.listView.selectedIndexes()[0])
self.loadTable()
def moveDown(self):
"moves a tool to a higher number, if possible"
item = self.form.ToolsList.selectedIndexes()[1].data()
if item:
number = int(item)
listname = self.form.listView.selectedIndexes()[0].data()
listname = "<Main>"
#listname = self.form.listView.selectedIndexes()[0].data()
if self.TLM.movedown(number, listname) is True:
self.loadTable(self.form.listView.selectedIndexes()[0])
self.loadTable()
def delete(self):
'''deletes a tool'''
listname = self.form.listView.selectedIndexes()[0].data()
#listname = self.form.listView.selectedIndexes()[0].data()
listname = "<Main>"
model = self.form.ToolsList.model()
for i in range(model.rowCount()):
item = model.item(i, 0)
if item.checkState():
t = model.index(i, 1)
self.TLM.delete(int(t.data()) ,listname)
self.loadTable(self.form.listView.selectedIndexes()[0])
self.loadTable()
def editTool(self, currItem):
row = currItem.row()
value = currItem.sibling(row, 1).data()
listname = self.form.listView.selectedIndexes()[0].data()
#listname = self.form.listView.selectedIndexes()[0].data()
listname = "<Main>"
toolnum = int(value)
tool = self.TLM.getTool(listname, toolnum)
editform = FreeCADGui.PySideUic.loadUi(":/panels/ToolEdit.ui")
@@ -512,7 +490,7 @@ class EditorPanel():
tool.CuttingEdgeHeight = FreeCAD.Units.parseQuantity(editform.CuttingEdgeHeightField.text())
if self.TLM.updateTool(listname, toolnum, tool) is True:
self.loadTable(self.form.listView.selectedIndexes()[0])
self.loadTable()
def importFile(self):
"imports a tooltable from a file"
@@ -543,7 +521,7 @@ class EditorPanel():
return
targets = self.TLM.getLists()
currList = self.form.listView.selectedIndexes()[0].data()
currList = "<Main>"
for target in targets:
if target == currList:
@@ -552,7 +530,8 @@ class EditorPanel():
if len(targets) == 0:
FreeCAD.Console.PrintWarning("no place to go")
return
elif len(targets) == 1:
targetlist = targets[0]
else:
form = FreeCADGui.PySideUic.loadUi(":/panels/DlgToolCopy.ui")
form.cboTarget.addItems(targets)
@@ -561,27 +540,23 @@ class EditorPanel():
return None
else:
targetlist = form.cboTarget.currentText()
for toolnum in tools:
tool = self.TLM.getTool(currList, int(toolnum))
for i in FreeCAD.ActiveDocument.findObjects("Path::Feature"):
if isinstance(i.Proxy, PathScripts.PathJob.ObjectPathJob) and i.Label == targetlist:
#if form.chkMakeController.checkState() == QtCore.Qt.CheckState.Checked and targetlist != "<Main>":
# snippet = '''
#import Path, PathScripts
#from PathScripts import PathUtils, PathLoadTool
obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython","TC")
PathScripts.PathLoadTool.LoadTool(obj)
PathScripts.PathLoadTool._ViewProviderLoadTool(obj.ViewObject)
#obj.ToolNumber = %d
PathUtils.addToJob(obj, targetlist)
FreeCAD.activeDocument().recompute()
obj.tooltable.setTool(tool.copy(), int(toolnum))
else:
newtoolid = self.TLM.addnew(targetlist, tool.copy(), int(toolnum))
for toolnum in tools:
tool = self.TLM.getTool(currList, int(toolnum))
PathLog.debug('tool: {}, toolnum: {}'.format(tool, toolnum))
for i in FreeCAD.ActiveDocument.findObjects("Path::Feature"):
if isinstance(i.Proxy, PathScripts.PathJob.ObjectPathJob) and i.Label == targetlist:
#''' % (newtoolid, targetlist)
# FreeCADGui.doCommand(snippet)
label = "T{}: {}".format(toolnum, tool.Name)
obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython",label)
PathScripts.PathLoadTool.LoadTool(obj)
PathScripts.PathLoadTool._ViewProviderLoadTool(obj.ViewObject)
PathUtils.addToJob(obj, targetlist)
FreeCAD.activeDocument().recompute()
newtool = tool.copy()
obj.Tooltable.setTool(int(toolnum), newtool)
obj.ToolNumber = int(toolnum)
obj.recompute()
def getStandardButtons(self):
return int(QtGui.QDialogButtonBox.Ok)
@@ -589,9 +564,6 @@ class EditorPanel():
def setupUi(self):
# Connect Signals and Slots
self.form.ButtonNewTool.clicked.connect(self.addTool)
#self.form.listWidget.currentItemChanged.connect(self.loadTable)
sm = self.form.listView.selectionModel()
sm.currentChanged.connect(self.loadTable)
self.form.ButtonImport.clicked.connect(self.importFile)
self.form.ButtonExport.clicked.connect(self.exportFile)
self.form.ButtonDown.clicked.connect(self.moveDown)
@@ -613,9 +585,9 @@ class CommandToolLibraryEdit():
def GetResources(self):
return {'Pixmap' : 'Path-ToolTable',
'MenuText': QtCore.QT_TRANSLATE_NOOP("Path_ToolTable","Edit the Tool Library"),
'MenuText': QtCore.QT_TRANSLATE_NOOP("Path_ToolTable","Tool Manager"),
'Accel': "P, T",
'ToolTip': QtCore.QT_TRANSLATE_NOOP("Path_ToolTable","Edit the Tool Library")}
'ToolTip': QtCore.QT_TRANSLATE_NOOP("Path_ToolTable","Tool Manager")}
def IsActive(self):
return not FreeCAD.ActiveDocument is None
@@ -624,7 +596,6 @@ class CommandToolLibraryEdit():
self.edit()
if FreeCAD.GuiUp:
# register the FreeCAD command
FreeCADGui.addCommand('Path_ToolLibraryEdit',CommandToolLibraryEdit())