Path: make toolcontrollers seamless
This commit is contained in:
committed by
Yorik van Havre
parent
8013ecc6d6
commit
dfe21f8e22
@@ -10,7 +10,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>367</width>
|
||||
<height>119</height>
|
||||
<height>98</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
@@ -33,16 +33,6 @@
|
||||
<item>
|
||||
<widget class="QComboBox" name="cboTarget"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="chkMakeController">
|
||||
<property name="text">
|
||||
<string>Create Tool Controllers</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>308</width>
|
||||
<height>389</height>
|
||||
<height>352</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -15,10 +15,25 @@
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="tcoName">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
<widget class="QFrame" name="frame_4">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="tcoName">
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="uiToolNum"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
@@ -30,16 +45,6 @@
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="txtToolDiameter">
|
||||
<property name="text">
|
||||
<string>Unknown</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QComboBox" name="cboToolSelect"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="txtToolType">
|
||||
<property name="text">
|
||||
@@ -47,6 +52,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="txtToolDiameter">
|
||||
<property name="text">
|
||||
<string>Unknown</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="txtToolMaterial">
|
||||
<property name="text">
|
||||
@@ -54,6 +66,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="txtToolName">
|
||||
<property name="text">
|
||||
<string>Unknown</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -73,9 +92,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="horizFeed"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
@@ -83,9 +99,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="vertFeed"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
@@ -93,13 +106,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="horizRapid">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
@@ -107,10 +113,43 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="Gui::InputField" name="horizFeed">
|
||||
<property name="minimum">
|
||||
<double>0.000000000000000</double>
|
||||
</property>
|
||||
<property name="unit" stdset="0">
|
||||
<string notr="true">mm/s</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="Gui::InputField" name="vertFeed">
|
||||
<property name="minimum">
|
||||
<double>0.000000000000000</double>
|
||||
</property>
|
||||
<property name="unit" stdset="0">
|
||||
<string notr="true">mm/s</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="Gui::InputField" name="horizRapid">
|
||||
<property name="minimum">
|
||||
<double>0.000000000000000</double>
|
||||
</property>
|
||||
<property name="unit" stdset="0">
|
||||
<string notr="true">mm/s</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="vertRapid">
|
||||
<property name="text">
|
||||
<string/>
|
||||
<widget class="Gui::InputField" name="vertRapid">
|
||||
<property name="minimum">
|
||||
<double>0.000000000000000</double>
|
||||
</property>
|
||||
<property name="unit" stdset="0">
|
||||
<string notr="true">mm/s</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -159,6 +198,13 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>Gui::InputField</class>
|
||||
<extends>QLineEdit</extends>
|
||||
<header>Gui/InputField.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
||||
@@ -67,7 +67,7 @@ class ObjectPathJob:
|
||||
obj.PostProcessorArgs = PathPreferences.defaultPostProcessorArgs()
|
||||
obj.addProperty("App::PropertyString", "MachineName", "Output", QtCore.QT_TRANSLATE_NOOP("App::Property","Name of the Machine that will use the CNC program"))
|
||||
|
||||
obj.addProperty("Path::PropertyTooltable", "Tooltable", "Base", QtCore.QT_TRANSLATE_NOOP("App::Property","The tooltable used for this CNC program"))
|
||||
#obj.addProperty("Path::PropertyTooltable", "Tooltable", "Base", QtCore.QT_TRANSLATE_NOOP("App::Property","The tooltable used for this CNC program"))
|
||||
|
||||
obj.addProperty("App::PropertyEnumeration", "MachineUnits", "Output", QtCore.QT_TRANSLATE_NOOP("App::Property","Units that the machine works in, ie Metric or Inch"))
|
||||
obj.MachineUnits = ['Metric', 'Inch']
|
||||
@@ -206,15 +206,6 @@ import PathScripts.PathLoadTool as PathLoadTool
|
||||
obj = FreeCAD.ActiveDocument.addObject("Path::FeatureCompoundPython", "Job")
|
||||
PathScripts.PathJob.ObjectPathJob(obj)
|
||||
PathLoadTool.CommandPathLoadTool.Create(obj.Name)
|
||||
tl = obj.Group[0]
|
||||
tool = Path.Tool()
|
||||
tool.Diameter = 5.0
|
||||
tool.Name = "Default Tool"
|
||||
tool.CuttingEdgeHeight = 15.0
|
||||
tool.ToolType = "EndMill"
|
||||
tool.Material = "HighSpeedSteel"
|
||||
obj.Tooltable.addTools(tool)
|
||||
tl.ToolNumber = 1
|
||||
obj.ViewObject.Proxy.deleteOnReject = True
|
||||
obj.ViewObject.startEditing()
|
||||
'''
|
||||
|
||||
@@ -30,6 +30,11 @@ import Path
|
||||
import Part
|
||||
import PathScripts
|
||||
from PySide import QtCore, QtGui
|
||||
import PathScripts.PathLog as PathLog
|
||||
|
||||
LOG_MODULE = 'PathLoadTool'
|
||||
PathLog.setLevel(PathLog.Level.DEBUG, LOG_MODULE)
|
||||
PathLog.trackModule('PathLoadTool')
|
||||
|
||||
# Qt tanslation handling
|
||||
try:
|
||||
@@ -43,14 +48,18 @@ except AttributeError:
|
||||
|
||||
|
||||
class LoadTool():
|
||||
def __init__(self, obj):
|
||||
obj.addProperty("App::PropertyIntegerConstraint", "ToolNumber", "Tool", QtCore.QT_TRANSLATE_NOOP("App::Property","The active tool"))
|
||||
def __init__(self, obj, tool=1):
|
||||
PathLog.track('tool: {}'.format(tool))
|
||||
|
||||
obj.addProperty("App::PropertyIntegerConstraint", "ToolNumber", "Tool", QtCore.QT_TRANSLATE_NOOP("App::Property", "The active tool"))
|
||||
obj.ToolNumber = (0, 0, 10000, 1)
|
||||
obj.addProperty("App::PropertyFloat", "SpindleSpeed", "Tool", QtCore.QT_TRANSLATE_NOOP("App::Property","The speed of the cutting spindle in RPM"))
|
||||
obj.addProperty("App::PropertyEnumeration", "SpindleDir", "Tool", QtCore.QT_TRANSLATE_NOOP("App::Property","Direction of spindle rotation"))
|
||||
obj.addProperty("Path::PropertyTooltable", "Tooltable", "Base", QtCore.QT_TRANSLATE_NOOP("App::Property", "The tooltable used for this CNC program"))
|
||||
|
||||
obj.addProperty("App::PropertyFloat", "SpindleSpeed", "Tool", QtCore.QT_TRANSLATE_NOOP("App::Property", "The speed of the cutting spindle in RPM"))
|
||||
obj.addProperty("App::PropertyEnumeration", "SpindleDir", "Tool", QtCore.QT_TRANSLATE_NOOP("App::Property", "Direction of spindle rotation"))
|
||||
obj.SpindleDir = ['Forward', 'Reverse']
|
||||
obj.addProperty("App::PropertySpeed", "VertFeed", "Feed", QtCore.QT_TRANSLATE_NOOP("App::Property","Feed rate for vertical moves in Z"))
|
||||
obj.addProperty("App::PropertySpeed", "HorizFeed", "Feed", QtCore.QT_TRANSLATE_NOOP("App::Property","Feed rate for horizontal moves"))
|
||||
obj.addProperty("App::PropertySpeed", "VertFeed", "Feed", QtCore.QT_TRANSLATE_NOOP("App::Property", "Feed rate for vertical moves in Z"))
|
||||
obj.addProperty("App::PropertySpeed", "HorizFeed", "Feed", QtCore.QT_TRANSLATE_NOOP("App::Property", "Feed rate for horizontal moves"))
|
||||
obj.addProperty("App::PropertySpeed", "VertRapid", "Rapid", QtCore.QT_TRANSLATE_NOOP("App::Property", "Rapid rate for vertical moves in Z"))
|
||||
obj.addProperty("App::PropertySpeed", "HorizRapid", "Rapid", QtCore.QT_TRANSLATE_NOOP("App::Property", "Rapid rate for horizontal moves"))
|
||||
obj.Proxy = self
|
||||
@@ -58,39 +67,48 @@ class LoadTool():
|
||||
obj.setEditorMode('Placement', mode)
|
||||
|
||||
def execute(self, obj):
|
||||
tool = PathUtils.getTool(obj, obj.ToolNumber)
|
||||
if tool is not None:
|
||||
obj.Label = obj.Name + ": " + tool.Name
|
||||
else:
|
||||
obj.Label = obj.Name + ": UNDEFINED TOOL"
|
||||
PathLog.track()
|
||||
|
||||
toolnum = obj.Tooltable.Tools.keys()[0]
|
||||
commands = ""
|
||||
commands += "(" + obj.Label + ")"+'\n'
|
||||
commands += 'M6T'+str(obj.ToolNumber)+'\n'
|
||||
commands += 'M6T'+str(toolnum)+'\n'
|
||||
|
||||
if obj.SpindleDir == 'Forward':
|
||||
commands += 'M3S' + str(obj.SpindleSpeed) + '\n'
|
||||
|
||||
else:
|
||||
commands += 'M4S' + str(obj.SpindleSpeed) + '\n'
|
||||
|
||||
# print output
|
||||
if commands == "":
|
||||
commands += "(No commands processed)"
|
||||
|
||||
|
||||
path = Path.Path(commands)
|
||||
obj.Path = path
|
||||
if obj.ViewObject:
|
||||
obj.ViewObject.Visibility = True
|
||||
|
||||
def onChanged(self, obj, prop):
|
||||
if prop == "ToolNumber" and not 'Restore' in obj.State:
|
||||
job = PathUtils.findParentJob(obj)
|
||||
if job is not None:
|
||||
for g in job.Group:
|
||||
if not(isinstance(g.Proxy, PathScripts.PathLoadTool.LoadTool)):
|
||||
g.touch()
|
||||
PathLog.track('prop: {}'.format(prop))
|
||||
|
||||
if 'Restore' not in obj.State:
|
||||
if prop == "ToolNumber":
|
||||
toolitem = obj.Tooltable.Tools.popitem()
|
||||
oldtoolnum = toolitem[0]
|
||||
tool = toolitem[1]
|
||||
obj.Tooltable.deleteTool(oldtoolnum)
|
||||
obj.Tooltable.setTool(obj.ToolNumber, tool)
|
||||
else:
|
||||
job = PathUtils.findParentJob(obj)
|
||||
if job is not None:
|
||||
for g in job.Group:
|
||||
if not(isinstance(g.Proxy, PathScripts.PathLoadTool.LoadTool)):
|
||||
g.touch()
|
||||
|
||||
def getTool(self, obj):
|
||||
'''returns the tool associated with this tool controller'''
|
||||
PathLog.track()
|
||||
toolitem = obj.Tooltable.Tools.popitem()
|
||||
return toolitem[1]
|
||||
|
||||
|
||||
class _ViewProviderLoadTool:
|
||||
@@ -163,31 +181,41 @@ class CommandPathLoadTool:
|
||||
return False
|
||||
|
||||
def Activated(self):
|
||||
FreeCAD.ActiveDocument.openTransaction(translate("Path_LoadTool", "Create Tool Controller Object"))
|
||||
snippet = '''
|
||||
import Path, PathScripts
|
||||
from PathScripts import PathUtils, PathLoadTool
|
||||
PathLog.track()
|
||||
self.Create()
|
||||
|
||||
obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython","TC")
|
||||
PathScripts.PathLoadTool.LoadTool(obj)
|
||||
PathScripts.PathLoadTool._ViewProviderLoadTool(obj.ViewObject)
|
||||
# FreeCAD.ActiveDocument.openTransaction(translate("Path_LoadTool", "Create Tool Controller Object"))
|
||||
|
||||
PathUtils.addToJob(obj)
|
||||
'''
|
||||
FreeCADGui.doCommand(snippet)
|
||||
FreeCAD.ActiveDocument.commitTransaction()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
# obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", "TC")
|
||||
# PathScripts.PathLoadTool.LoadTool(obj)
|
||||
# PathScripts.PathLoadTool._ViewProviderLoadTool(obj.ViewObject)
|
||||
|
||||
# PathUtils.addToJob(obj)
|
||||
|
||||
# FreeCAD.ActiveDocument.commitTransaction()
|
||||
# FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
@staticmethod
|
||||
def Create(jobname = None, assignViewProvider = True):
|
||||
def Create(jobname=None, assignViewProvider=True, tool=None, toolNumber=1):
|
||||
PathLog.track("tool: {} with toolNumber: {}".format(tool, toolNumber))
|
||||
|
||||
import PathScripts
|
||||
import PathUtils
|
||||
|
||||
obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", "TC")
|
||||
obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", "Default Tool")
|
||||
PathScripts.PathLoadTool.LoadTool(obj)
|
||||
if assignViewProvider:
|
||||
PathScripts.PathLoadTool._ViewProviderLoadTool(obj.ViewObject)
|
||||
|
||||
if tool is None:
|
||||
tool = Path.Tool()
|
||||
tool.Diameter = 5.0
|
||||
tool.Name = "Default Tool"
|
||||
tool.CuttingEdgeHeight = 15.0
|
||||
tool.ToolType = "EndMill"
|
||||
tool.Material = "HighSpeedSteel"
|
||||
obj.Tooltable.setTool(toolNumber, tool)
|
||||
obj.ToolNumber = toolNumber
|
||||
PathUtils.addToJob(obj, jobname)
|
||||
|
||||
|
||||
@@ -198,7 +226,6 @@ class TaskPanel:
|
||||
self.updating = False
|
||||
self.toolrep = None
|
||||
|
||||
|
||||
def accept(self):
|
||||
self.getFields()
|
||||
|
||||
@@ -209,7 +236,6 @@ class TaskPanel:
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
FreeCADGui.Selection.removeObserver(self.s)
|
||||
|
||||
|
||||
def reject(self):
|
||||
FreeCADGui.Control.closeDialog()
|
||||
if self.toolrep is not None:
|
||||
@@ -230,7 +256,8 @@ class TaskPanel:
|
||||
self.obj.VertRapid = self.form.vertRapid.text()
|
||||
if hasattr(self.obj, "HorizRapid"):
|
||||
self.obj.HorizRapid = self.form.horizRapid.text()
|
||||
|
||||
if hasattr(self.obj, "ToolNumber"):
|
||||
self.obj.ToolNumber = self.form.uiToolNum.value()
|
||||
if hasattr(self.obj, "SpindleSpeed"):
|
||||
self.obj.SpindleSpeed = self.form.spindleSpeed.value()
|
||||
if hasattr(self.obj, "SpindleDir"):
|
||||
@@ -239,65 +266,42 @@ class TaskPanel:
|
||||
self.obj.Proxy.execute(self.obj)
|
||||
|
||||
def setFields(self):
|
||||
self.form.cboToolSelect.blockSignals(True)
|
||||
|
||||
self.form.tcoName.setText(self.obj.Label)
|
||||
self.form.uiToolNum.setValue(self.obj.ToolNumber)
|
||||
self.form.vertFeed.setText(str(self.obj.VertFeed.Value))
|
||||
self.form.horizFeed.setText(str(self.obj.HorizFeed.Value))
|
||||
self.form.vertRapid.setText(str(self.obj.VertRapid.Value))
|
||||
self.form.horizRapid.setText(str(self.obj.HorizRapid.Value))
|
||||
|
||||
self.form.spindleSpeed.setValue(self.obj.SpindleSpeed)
|
||||
self.form.tcoName.setText(str(self.obj.Label))
|
||||
|
||||
index = self.form.cboSpindleDirection.findText(self.obj.SpindleDir, QtCore.Qt.MatchFixedString)
|
||||
if index >= 0:
|
||||
self.form.cboSpindleDirection.setCurrentIndex(index)
|
||||
myJob = PathUtils.findParentJob(self.obj)
|
||||
|
||||
#populate the toolselector and select correct tool
|
||||
self.form.cboToolSelect.clear()
|
||||
tooltable = myJob.Tooltable
|
||||
for number, tool in tooltable.Tools.iteritems():
|
||||
self.form.cboToolSelect.addItem(tool.Name)
|
||||
tooltable = self.obj.Tooltable
|
||||
|
||||
try:
|
||||
tool = myJob.Tooltable.Tools[self.obj.ToolNumber]
|
||||
toolnum = tooltable.Tools.keys()[0]
|
||||
tool = tooltable.getTool(toolnum)
|
||||
self.form.txtToolType.setText(tool.ToolType)
|
||||
self.form.txtToolMaterial.setText(tool.Material)
|
||||
self.form.txtToolDiameter.setText(str(tool.Diameter))
|
||||
|
||||
index = self.form.cboToolSelect.findText(tool.Name, QtCore.Qt.MatchFixedString)
|
||||
if index >= 0:
|
||||
self.form.cboToolSelect.setCurrentIndex(index)
|
||||
|
||||
self.form.txtToolName.setText(tool.Name)
|
||||
except:
|
||||
self.form.cboToolSelect.setCurrentIndex(-1)
|
||||
self.form.txtToolType.setText("UNDEFINED")
|
||||
self.form.txtToolMaterial.setText("UNDEFINED")
|
||||
self.form.txtToolDiameter.setText("UNDEFINED")
|
||||
self.form.cboToolSelect.blockSignals(False)
|
||||
|
||||
radius = tool.Diameter / 2
|
||||
length = tool.CuttingEdgeHeight
|
||||
t = Part.makeCylinder(radius, length)
|
||||
self.toolrep.Shape = t
|
||||
|
||||
def changeTool(self):
|
||||
myJob = PathUtils.findParentJob(self.obj)
|
||||
newtool = self.form.cboToolSelect.currentText()
|
||||
|
||||
tooltable = myJob.Tooltable
|
||||
for number, tool in tooltable.Tools.iteritems():
|
||||
if tool.Name == newtool:
|
||||
self.obj.ToolNumber = number
|
||||
self.setFields()
|
||||
|
||||
def open(self):
|
||||
self.s = SelObserver()
|
||||
# install the function mode resident
|
||||
FreeCADGui.Selection.addObserver(self.s)
|
||||
|
||||
|
||||
def getStandardButtons(self):
|
||||
return int(QtGui.QDialogButtonBox.Ok)
|
||||
|
||||
@@ -310,19 +314,15 @@ class TaskPanel:
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
def setupUi(self):
|
||||
|
||||
self.form.cboToolSelect.currentIndexChanged.connect(self.changeTool)
|
||||
self.form.tcoName.editingFinished.connect(self.getFields)
|
||||
|
||||
# build the tool representation
|
||||
if self.obj.ToolNumber != 0:
|
||||
t = Part.makeCylinder(1, 1)
|
||||
self.toolrep = FreeCAD.ActiveDocument.addObject("Part::Feature", "tool")
|
||||
self.toolrep.Shape = t
|
||||
t = Part.makeCylinder(1, 1)
|
||||
self.toolrep = FreeCAD.ActiveDocument.addObject("Part::Feature", "tool")
|
||||
self.toolrep.Shape = t
|
||||
|
||||
# setup the form fields
|
||||
self.setFields()
|
||||
|
||||
|
||||
class SelObserver:
|
||||
def __init__(self):
|
||||
pass
|
||||
@@ -330,7 +330,6 @@ class SelObserver:
|
||||
def __del__(self):
|
||||
pass
|
||||
|
||||
|
||||
if FreeCAD.GuiUp:
|
||||
# register the FreeCAD command
|
||||
FreeCADGui.addCommand('Path_LoadTool', CommandPathLoadTool())
|
||||
|
||||
@@ -29,6 +29,8 @@ import FreeCADGui
|
||||
import Path
|
||||
import os
|
||||
from PySide import QtCore, QtGui
|
||||
import PathScripts
|
||||
import PathUtils
|
||||
|
||||
try:
|
||||
_encoding = QtGui.QApplication.UnicodeUTF8
|
||||
@@ -561,19 +563,25 @@ class EditorPanel():
|
||||
targetlist = form.cboTarget.currentText()
|
||||
for toolnum in tools:
|
||||
tool = self.TLM.getTool(currList, int(toolnum))
|
||||
newtoolid = self.TLM.addnew(targetlist, tool.copy(), int(toolnum))
|
||||
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, "%s")
|
||||
App.activeDocument().recompute()
|
||||
''' % (newtoolid, targetlist)
|
||||
FreeCADGui.doCommand(snippet)
|
||||
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))
|
||||
|
||||
#''' % (newtoolid, targetlist)
|
||||
# FreeCADGui.doCommand(snippet)
|
||||
|
||||
def getStandardButtons(self):
|
||||
return int(QtGui.QDialogButtonBox.Ok)
|
||||
|
||||
Reference in New Issue
Block a user