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:
committed by
Yorik van Havre
parent
fa1f358f52
commit
24d7bf7e78
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user