Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
defaults if objects pre-selected. Fixes
Smarter default for inside outside profiles

first commit
  • Loading branch information
sliptonic authored and yorikvanhavre committed May 23, 2016
1 parent bb51656 commit be03c2a
Show file tree
Hide file tree
Showing 5 changed files with 512 additions and 31 deletions.
135 changes: 135 additions & 0 deletions src/Mod/Path/Gui/Resources/panels/ToolControl.ui
@@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ToolControlObject</class>
<widget class="QDialog" name="ToolControlObject">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>320</width>
<height>503</height>
</rect>
</property>
<property name="windowTitle">
<string>Tool Control</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QLineEdit" name="tcoName"/>
</item>
<item row="1" column="0">
<widget class="QFrame" name="frame_2">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="0">
<widget class="QLabel" name="txtToolType">
<property name="text">
<string>Unknown</string>
</property>
</widget>
</item>
<item row="1" 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="txtToolMaterial">
<property name="text">
<string>Unknown</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QComboBox" name="cboToolSelect"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="txtToolDiameter">
<property name="text">
<string>Unknown</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Horiz. Feed</string>
</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">
<string>Vert. Feed</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="vertFeed"/>
</item>
</layout>
</widget>
</item>
<item row="3" column="0">
<widget class="QFrame" name="frame_3">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QFormLayout" name="formLayout_2">
<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"/>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="cboSpindleDirection">
<item>
<property name="text">
<string>Forward</string>
</property>
</item>
<item>
<property name="text">
<string>Reverse</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
120 changes: 119 additions & 1 deletion src/Mod/Path/PathScripts/PathLoadTool.py
Expand Up @@ -120,7 +120,12 @@ def updateData(self, vobj, prop):

def setEdit(self, vobj, mode):
# this is executed when the object is double-clicked in the tree
pass
FreeCADGui.Control.closeDialog()
taskd = TaskPanel()
taskd.obj = vobj.Object
FreeCADGui.Control.showDialog(taskd)
taskd.setupUi()
return True

def unsetEdit(self, vobj, mode):
# this is executed when the user cancels or terminates edit mode
Expand Down Expand Up @@ -167,6 +172,119 @@ def Create():
PathUtils.addToProject(obj)


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.updating = False

def accept(self):
self.getFields()

FreeCADGui.ActiveDocument.resetEdit()
FreeCADGui.Control.closeDialog()
FreeCAD.ActiveDocument.recompute()
FreeCADGui.Selection.removeObserver(self.s)

def reject(self):
FreeCADGui.Control.closeDialog()
FreeCAD.ActiveDocument.recompute()
FreeCADGui.Selection.removeObserver(self.s)

def getFields(self):
if self.obj:

if hasattr(self.obj, "VertFeed"):
self.obj.Label = self.form.tcoName.text()

if hasattr(self.obj, "VertFeed"):
self.obj.VertFeed = self.form.vertFeed.value()
if hasattr(self.obj, "HorizFeed"):
self.obj.HorizFeed = self.form.horizFeed.value()
if hasattr(self.obj, "SpindleSpeed"):
self.obj.SpindleSpeed = self.form.spindleSpeed.value()
if hasattr(self.obj, "SpindleDir"):
self.obj.SpindleDir = str(self.form.cboSpindleDirection.currentText())
if hasattr(self.obj, "ToolNumber"):
self.obj.ToolNumber = self.form.ToolNumber.value()
self.obj.Proxy.execute(self.obj)

def setFields(self):
self.form.vertFeed.setText(str(self.obj.VertFeed.Value))
self.form.horizFeed.setText(str(self.obj.HorizFeed.Value))
self.form.spindleSpeed.setText(str(self.obj.SpindleSpeed.Value))
self.form.cboSpindleDirection.setText(str(self.obj.SpindleDir.Value))
self.form.ToolNumber.setValue(self.obj.ToolNumber)


def open(self):
self.s = SelObserver()
# install the function mode resident
FreeCADGui.Selection.addObserver(self.s)


def getStandardButtons(self):
return int(QtGui.QDialogButtonBox.Ok)

def edit(self, item, column):
if not self.updating:
self.resetObject()

def resetObject(self, remove=None):
"transfers the values from the widget to the object"
# loc = []
# h = []
# l = []
# a = []

# for i in range(self.form.tagTree.topLevelItemCount()):
# it = self.form.tagTree.findItems(
# str(i+1), QtCore.Qt.MatchExactly, 0)[0]
# if (remove is None) or (remove != i):
# if it.text(1):
# x = float(it.text(1).split()[0].rstrip(","))
# y = float(it.text(1).split()[1].rstrip(","))
# z = float(it.text(1).split()[2].rstrip(","))
# loc.append(Vector(x, y, z))

# else:
# loc.append(0.0)
# if it.text(2):
# h.append(float(it.text(2)))
# else:
# h.append(4.0)
# if it.text(3):
# l.append(float(it.text(3)))
# else:
# l.append(5.0)
# if it.text(4):
# a.append(float(it.text(4)))
# else:
# a.append(45.0)

# self.obj.locs = loc
# self.obj.heights = h
# self.obj.lengths = l
# self.obj.angles = a

# self.obj.touch()
FreeCAD.ActiveDocument.recompute()

def setupUi(self):
pass
# Connect Signals and Slots
# Base Controls
# self.form.baseList.itemSelectionChanged.connect(self.itemActivated)
self.setFields()

class SelObserver:
def __init__(self):
pass

def __del__(self):
pass


if FreeCAD.GuiUp:
# register the FreeCAD command
FreeCADGui.addCommand('Path_LoadTool', CommandPathLoadTool())
Expand Down

0 comments on commit be03c2a

Please sign in to comment.