Fixed merge issues
This commit is contained in:
@@ -7,14 +7,14 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>432</width>
|
||||
<height>673</height>
|
||||
<height>1160</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Job Edit</string>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>2</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tabGeneral">
|
||||
<attribute name="title">
|
||||
@@ -32,63 +32,79 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>412</width>
|
||||
<height>549</height>
|
||||
<height>1036</height>
|
||||
</rect>
|
||||
</property>
|
||||
<attribute name="label">
|
||||
<string>Job</string>
|
||||
</attribute>
|
||||
<layout class="QFormLayout" name="formLayout_4">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_17">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_6">
|
||||
<property name="title">
|
||||
<string>Label</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_16">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="jobLabel"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="jobLabel"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_4">
|
||||
<property name="title">
|
||||
<string>Model</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_14">
|
||||
<item>
|
||||
<widget class="QListWidget" name="jobModel">
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::MultiSelection</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_3" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>334</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="jobModelEdit">
|
||||
<property name="text">
|
||||
<string>Edit</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="jobModel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_5">
|
||||
<property name="title">
|
||||
<string>Description</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_15">
|
||||
<item>
|
||||
<widget class="QPlainTextEdit" name="jobDescription"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QPlainTextEdit" name="jobDescription"/>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<spacer name="verticalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="templateExport">
|
||||
@@ -190,7 +206,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>418</width>
|
||||
<height>762</height>
|
||||
<height>1117</height>
|
||||
</rect>
|
||||
</property>
|
||||
<attribute name="label">
|
||||
@@ -392,55 +408,11 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="orientGroup">
|
||||
<property name="title">
|
||||
<string>Orientation</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="orientXAxis">
|
||||
<property name="text">
|
||||
<string>X-Axis</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="orientYAxis">
|
||||
<property name="text">
|
||||
<string>Y-Axis</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="orientZAxis">
|
||||
<property name="text">
|
||||
<string>Z-Axis</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="alignGroup">
|
||||
<widget class="QGroupBox" name="modelAlignGroup">
|
||||
<property name="title">
|
||||
<string>Alignment</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="setOrigin">
|
||||
<property name="text">
|
||||
<string>Set Origin</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QPushButton" name="moveToOrigin">
|
||||
<property name="text">
|
||||
<string>Move to Origin</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QPushButton" name="centerInStock">
|
||||
<property name="text">
|
||||
@@ -455,6 +427,285 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="setOrigin">
|
||||
<property name="text">
|
||||
<string>Set Origin</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="moveToOrigin">
|
||||
<property name="text">
|
||||
<string>Move to Origin</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="modelSetGroup">
|
||||
<property name="title">
|
||||
<string>Set</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_5">
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="modelSetXAxis">
|
||||
<property name="text">
|
||||
<string>X-Axis</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="modelSetYAxis">
|
||||
<property name="text">
|
||||
<string>Y-Axis</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QPushButton" name="modelSetZAxis">
|
||||
<property name="text">
|
||||
<string>Z-Axis</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QPushButton" name="modelSetY0">
|
||||
<property name="text">
|
||||
<string>Y=0</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="modelSetZ0">
|
||||
<property name="text">
|
||||
<string>Z=0</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="modelSetX0">
|
||||
<property name="text">
|
||||
<string>X=0</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="modelMoveGroup">
|
||||
<property name="title">
|
||||
<string>Move - XY</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="modelMoveUp">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../Path.qrc">
|
||||
<normaloff>:/icons/arrow-up.svg</normaloff>:/icons/arrow-up.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QPushButton" name="modelMoveRightUp">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../Path.qrc">
|
||||
<normaloff>:/icons/arrow-right-up.svg</normaloff>:/icons/arrow-right-up.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="modelMoveLeftUp">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../Path.qrc">
|
||||
<normaloff>:/icons/arrow-left-up.svg</normaloff>:/icons/arrow-left-up.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="modelMoveRight">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../Path.qrc">
|
||||
<normaloff>:/icons/arrow-right.svg</normaloff>:/icons/arrow-right.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QDoubleSpinBox" name="modelMoveValue">
|
||||
<property name="minimum">
|
||||
<double>-1000.000000000000000</double>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>1000.000000000000000</double>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>1.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="modelMoveLeft">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../Path.qrc">
|
||||
<normaloff>:/icons/arrow-left.svg</normaloff>:/icons/arrow-left.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QPushButton" name="modelMoveLeftDown">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../Path.qrc">
|
||||
<normaloff>:/icons/arrow-left-down.svg</normaloff>:/icons/arrow-left-down.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QPushButton" name="modelMoveDown">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../Path.qrc">
|
||||
<normaloff>:/icons/arrow-down.svg</normaloff>:/icons/arrow-down.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QPushButton" name="modelMoveRightDown">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../Path.qrc">
|
||||
<normaloff>:/icons/arrow-right-down.svg</normaloff>:/icons/arrow-right-down.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="modelRotateGroup">
|
||||
<property name="title">
|
||||
<string>Rotate - XY</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_6">
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="modelRotateLeft">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../Path.qrc">
|
||||
<normaloff>:/icons/arrow-ccw.svg</normaloff>:/icons/arrow-ccw.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QDoubleSpinBox" name="modelRotateValue">
|
||||
<property name="minimum">
|
||||
<double>-180.000000000000000</double>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>360.000000000000000</double>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>90.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QPushButton" name="modelRotateRight">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../Path.qrc">
|
||||
<normaloff>:/icons/arrow-cw.svg</normaloff>:/icons/arrow-cw.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -642,8 +893,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>412</width>
|
||||
<height>549</height>
|
||||
<width>312</width>
|
||||
<height>169</height>
|
||||
</rect>
|
||||
</property>
|
||||
<attribute name="label">
|
||||
@@ -976,9 +1227,6 @@
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<tabstops>
|
||||
<tabstop>jobLabel</tabstop>
|
||||
<tabstop>jobModel</tabstop>
|
||||
<tabstop>jobDescription</tabstop>
|
||||
<tabstop>postProcessorOutputFile</tabstop>
|
||||
<tabstop>postProcessorSetOutputFile</tabstop>
|
||||
<tabstop>postProcessor</tabstop>
|
||||
@@ -996,13 +1244,6 @@
|
||||
<tabstop>stockBoxLength</tabstop>
|
||||
<tabstop>stockBoxWidth</tabstop>
|
||||
<tabstop>stockBoxHeight</tabstop>
|
||||
<tabstop>orientXAxis</tabstop>
|
||||
<tabstop>orientYAxis</tabstop>
|
||||
<tabstop>orientZAxis</tabstop>
|
||||
<tabstop>setOrigin</tabstop>
|
||||
<tabstop>moveToOrigin</tabstop>
|
||||
<tabstop>centerInStock</tabstop>
|
||||
<tabstop>centerInStockXY</tabstop>
|
||||
<tabstop>toolControllerEdit</tabstop>
|
||||
<tabstop>toolControllerAdd</tabstop>
|
||||
<tabstop>toolControllerDelete</tabstop>
|
||||
@@ -1015,6 +1256,7 @@
|
||||
</tabstops>
|
||||
<resources>
|
||||
<include location="../../../../../Gui/Icons/resource.qrc"/>
|
||||
<include location="../Path.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
||||
@@ -118,7 +118,6 @@ class TaskPanelHoleGeometryPage(PathOpGui.TaskPanelBaseGeometryPage):
|
||||
selected = [self.form.baseList.row(item) for item in self.form.baseList.selectedItems()]
|
||||
self.form.baseList.blockSignals(True)
|
||||
for row in sorted(list(set(selected)), key=lambda row: -row):
|
||||
print("row = %d" % row)
|
||||
self.form.baseList.removeRow(row)
|
||||
self.updateBase()
|
||||
self.form.baseList.resizeColumnToContents(0)
|
||||
|
||||
@@ -36,7 +36,7 @@ from PySide import QtCore
|
||||
|
||||
__doc__ = "Class and implementation of Path Engrave operation"
|
||||
|
||||
if True:
|
||||
if False:
|
||||
PathLog.setLevel(PathLog.Level.DEBUG, PathLog.thisModule())
|
||||
PathLog.trackModule(PathLog.thisModule())
|
||||
else:
|
||||
|
||||
@@ -123,10 +123,9 @@ class ObjectOp(PathOp.ObjectOp):
|
||||
params.update({'Z': z, 'F': self.horizFeed})
|
||||
self.commandlist.append(Path.Command(cmd.Name, params))
|
||||
|
||||
def opSetDefaultValues(self, obj):
|
||||
def opSetDefaultValues(self, obj, job):
|
||||
'''opSetDefaultValues(obj) ... set depths for engraving'''
|
||||
if PathOp.FeatureDepths & self.opFeatures(obj):
|
||||
job = PathUtils.findParentJob(obj)
|
||||
if job and len(job.Model.Group) > 0:
|
||||
bb = job.Proxy.modelBoundBox(job)
|
||||
obj.OpStartDepth = bb.ZMax
|
||||
|
||||
@@ -80,115 +80,6 @@ class CommandJobCreate:
|
||||
FreeCADGui.doCommand('PathScripts.PathJobGui.Create(%s, %s)' % ([o.Name for o in base], template))
|
||||
|
||||
|
||||
class DlgJobTemplateExport:
|
||||
DataObject = QtCore.Qt.ItemDataRole.UserRole
|
||||
|
||||
def __init__(self, job, parent=None):
|
||||
self.job = job
|
||||
self.dialog = FreeCADGui.PySideUic.loadUi(":/panels/DlgJobTemplateExport.ui")
|
||||
if parent:
|
||||
self.dialog.setParent(parent)
|
||||
parent.layout().addWidget(self.dialog)
|
||||
self.dialog.dialogButtonBox.hide()
|
||||
else:
|
||||
self.dialog.exportButtonBox.hide()
|
||||
self.updateUI()
|
||||
self.dialog.toolsGroup.clicked.connect(self.checkUncheckTools)
|
||||
|
||||
def exportButton(self):
|
||||
return self.dialog.exportButton
|
||||
|
||||
def updateUI(self):
|
||||
job = self.job
|
||||
if job.PostProcessor:
|
||||
ppHint = "%s %s %s" % (job.PostProcessor, job.PostProcessorArgs, job.PostProcessorOutputFile)
|
||||
self.dialog.postProcessingHint.setText(ppHint)
|
||||
else:
|
||||
self.dialog.postProcessingGroup.setEnabled(False)
|
||||
self.dialog.postProcessingGroup.setChecked(False)
|
||||
|
||||
if job.Stock and not PathJob.isResourceClone(job, 'Stock', 'Stock'):
|
||||
stockType = PathStock.StockType.FromStock(job.Stock)
|
||||
if stockType == PathStock.StockType.FromBase:
|
||||
seHint = translate('PathJob', "Base -/+ %.2f/%.2f %.2f/%.2f %.2f/%.2f") % (job.Stock.ExtXneg, job.Stock.ExtXpos, job.Stock.ExtYneg, job.Stock.ExtYpos, job.Stock.ExtZneg, job.Stock.ExtZpos)
|
||||
self.dialog.stockPlacement.setChecked(False)
|
||||
elif stockType == PathStock.StockType.CreateBox:
|
||||
seHint = translate('PathJob', "Box: %.2f x %.2f x %.2f") % (job.Stock.Length, job.Stock.Width, job.Stock.Height)
|
||||
elif stockType == PathStock.StockType.CreateCylinder:
|
||||
seHint = translate('PathJob', "Cylinder: %.2f x %.2f") % (job.Stock.Radius, job.Stock.Height)
|
||||
else:
|
||||
seHint = '-'
|
||||
PathLog.error(translate('PathJob', 'Unsupported stock type'))
|
||||
self.dialog.stockExtentHint.setText(seHint)
|
||||
spHint = "%s" % job.Stock.Placement
|
||||
self.dialog.stockPlacementHint.setText(spHint)
|
||||
|
||||
rapidChanged = not job.SetupSheet.Proxy.hasDefaultToolRapids()
|
||||
depthsChanged = not job.SetupSheet.Proxy.hasDefaultOperationDepths()
|
||||
heightsChanged = not job.SetupSheet.Proxy.hasDefaultOperationHeights()
|
||||
opsWithSettings = job.SetupSheet.Proxy.operationsWithSettings()
|
||||
settingsChanged = rapidChanged or depthsChanged or heightsChanged or 0 != len(opsWithSettings)
|
||||
self.dialog.settingsGroup.setChecked(settingsChanged)
|
||||
self.dialog.settingToolRapid.setChecked(rapidChanged)
|
||||
self.dialog.settingOperationDepths.setChecked(depthsChanged)
|
||||
self.dialog.settingOperationHeights.setChecked(heightsChanged)
|
||||
|
||||
self.dialog.settingsOpsList.clear()
|
||||
for op in opsWithSettings:
|
||||
item = QtGui.QListWidgetItem(op)
|
||||
item.setCheckState(QtCore.Qt.CheckState.Checked)
|
||||
self.dialog.settingsOpsList.addItem(item)
|
||||
|
||||
self.dialog.toolsList.clear()
|
||||
for tc in sorted(job.ToolController, key=lambda o: o.Label):
|
||||
item = QtGui.QListWidgetItem(tc.Label)
|
||||
item.setData(self.DataObject, tc)
|
||||
item.setCheckState(QtCore.Qt.CheckState.Checked)
|
||||
self.dialog.toolsList.addItem(item)
|
||||
|
||||
def checkUncheckTools(self):
|
||||
state = QtCore.Qt.CheckState.Checked if self.dialog.toolsGroup.isChecked() else QtCore.Qt.CheckState.Unchecked
|
||||
for i in range(self.dialog.toolsList.count()):
|
||||
self.dialog.toolsList.item(i).setCheckState(state)
|
||||
|
||||
def includePostProcessing(self):
|
||||
return self.dialog.postProcessingGroup.isChecked()
|
||||
|
||||
def includeToolControllers(self):
|
||||
tcs = []
|
||||
for i in range(self.dialog.toolsList.count()):
|
||||
item = self.dialog.toolsList.item(i)
|
||||
if item.checkState() == QtCore.Qt.CheckState.Checked:
|
||||
tcs.append(item.data(self.DataObject))
|
||||
return tcs
|
||||
|
||||
def includeStock(self):
|
||||
return self.dialog.stockGroup.isChecked()
|
||||
def includeStockExtent(self):
|
||||
return self.dialog.stockExtent.isChecked()
|
||||
def includeStockPlacement(self):
|
||||
return self.dialog.stockPlacement.isChecked()
|
||||
|
||||
def includeSettings(self):
|
||||
return self.dialog.settingsGroup.isChecked()
|
||||
def includeSettingToolRapid(self):
|
||||
return self.dialog.settingToolRapid.isChecked()
|
||||
def includeSettingOperationHeights(self):
|
||||
return self.dialog.settingOperationHeights.isChecked()
|
||||
def includeSettingOperationDepths(self):
|
||||
return self.dialog.settingOperationDepths.isChecked()
|
||||
|
||||
def includeSettingOpsSettings(self):
|
||||
ops = []
|
||||
for i in range(self.dialog.settingsOpsList.count()):
|
||||
item = self.dialog.settingsOpsList.item(i)
|
||||
if item.checkState() == QtCore.Qt.CheckState.Checked:
|
||||
ops.append(item.text())
|
||||
return ops
|
||||
|
||||
def exec_(self):
|
||||
return self.dialog.exec_()
|
||||
|
||||
class CommandJobTemplateExport:
|
||||
'''
|
||||
Command to export a template of a given job.
|
||||
|
||||
@@ -183,7 +183,20 @@ class JobTemplateExport:
|
||||
def __init__(self, job, parent=None):
|
||||
self.job = job
|
||||
self.dialog = FreeCADGui.PySideUic.loadUi(":/panels/DlgJobTemplateExport.ui")
|
||||
if parent:
|
||||
self.dialog.setParent(parent)
|
||||
parent.layout().addWidget(self.dialog)
|
||||
self.dialog.dialogButtonBox.hide()
|
||||
else:
|
||||
self.dialog.exportButtonBox.hide()
|
||||
self.updateUI()
|
||||
self.dialog.toolsGroup.clicked.connect(self.checkUncheckTools)
|
||||
|
||||
def exportButton(self):
|
||||
return self.dialog.exportButton
|
||||
|
||||
def updateUI(self):
|
||||
job = self.job
|
||||
if job.PostProcessor:
|
||||
ppHint = "%s %s %s" % (job.PostProcessor, job.PostProcessorArgs, job.PostProcessorOutputFile)
|
||||
self.dialog.postProcessingHint.setText(ppHint)
|
||||
@@ -210,20 +223,26 @@ class JobTemplateExport:
|
||||
rapidChanged = not job.SetupSheet.Proxy.hasDefaultToolRapids()
|
||||
depthsChanged = not job.SetupSheet.Proxy.hasDefaultOperationDepths()
|
||||
heightsChanged = not job.SetupSheet.Proxy.hasDefaultOperationHeights()
|
||||
settingsChanged = rapidChanged or depthsChanged or heightsChanged
|
||||
opsWithSettings = job.SetupSheet.Proxy.operationsWithSettings()
|
||||
settingsChanged = rapidChanged or depthsChanged or heightsChanged or 0 != len(opsWithSettings)
|
||||
self.dialog.settingsGroup.setChecked(settingsChanged)
|
||||
self.dialog.settingToolRapid.setChecked(rapidChanged)
|
||||
self.dialog.settingOperationDepths.setChecked(depthsChanged)
|
||||
self.dialog.settingOperationHeights.setChecked(heightsChanged)
|
||||
|
||||
self.dialog.settingsOpsList.clear()
|
||||
for op in opsWithSettings:
|
||||
item = QtGui.QListWidgetItem(op)
|
||||
item.setCheckState(QtCore.Qt.CheckState.Checked)
|
||||
self.dialog.settingsOpsList.addItem(item)
|
||||
|
||||
self.dialog.toolsList.clear()
|
||||
for tc in sorted(job.ToolController, key=lambda o: o.Label):
|
||||
item = QtGui.QListWidgetItem(tc.Label)
|
||||
item.setData(self.DataObject, tc)
|
||||
item.setCheckState(QtCore.Qt.CheckState.Checked)
|
||||
self.dialog.toolsList.addItem(item)
|
||||
|
||||
self.dialog.toolsGroup.clicked.connect(self.checkUncheckTools)
|
||||
|
||||
def checkUncheckTools(self):
|
||||
state = QtCore.Qt.CheckState.Checked if self.dialog.toolsGroup.isChecked() else QtCore.Qt.CheckState.Unchecked
|
||||
for i in range(self.dialog.toolsList.count()):
|
||||
@@ -256,6 +275,14 @@ class JobTemplateExport:
|
||||
def includeSettingOperationDepths(self):
|
||||
return self.dialog.settingOperationDepths.isChecked()
|
||||
|
||||
def includeSettingOpsSettings(self):
|
||||
ops = []
|
||||
for i in range(self.dialog.settingsOpsList.count()):
|
||||
item = self.dialog.settingsOpsList.item(i)
|
||||
if item.checkState() == QtCore.Qt.CheckState.Checked:
|
||||
ops.append(item.text())
|
||||
return ops
|
||||
|
||||
def exec_(self):
|
||||
return self.dialog.exec_()
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ import DraftVecUtils
|
||||
import FreeCAD
|
||||
import FreeCADGui
|
||||
import PathScripts.PathJob as PathJob
|
||||
import PathScripts.PathJobCmd as PathJobCmd
|
||||
import PathScripts.PathJobDlg as PathJobDlg
|
||||
import PathScripts.PathGeom as PathGeom
|
||||
import PathScripts.PathGui as PathGui
|
||||
@@ -474,7 +475,7 @@ class TaskPanel:
|
||||
self.obj = vobj.Object
|
||||
self.deleteOnReject = deleteOnReject
|
||||
self.form = FreeCADGui.PySideUic.loadUi(":/panels/PathEdit.ui")
|
||||
self.template = PathJobCmd.DlgJobTemplateExport(self.obj, self.form.jobBox.widget(1))
|
||||
self.template = PathJobDlg.JobTemplateExport(self.obj, self.form.jobBox.widget(1))
|
||||
|
||||
vUnit = FreeCAD.Units.Quantity(1, FreeCAD.Units.Velocity).getUserPreferred()[2]
|
||||
self.form.toolControllerList.horizontalHeaderItem(1).setText('#')
|
||||
@@ -911,8 +912,6 @@ class TaskPanel:
|
||||
PathLog.track(index, force)
|
||||
if force or not self.stockFromBase:
|
||||
self.stockFromBase = StockFromBaseBoundBoxEdit(self.obj, self.form, force)
|
||||
else:
|
||||
PathLog.error('wtf')
|
||||
self.stockEdit = self.stockFromBase
|
||||
def setupCreateBoxEdit():
|
||||
PathLog.track(index, force)
|
||||
@@ -963,7 +962,7 @@ class TaskPanel:
|
||||
self.template.updateUI()
|
||||
|
||||
def refreshStock(self):
|
||||
self.updateStockEditor(self.form.stock.currentIndex())
|
||||
self.updateStockEditor(self.form.stock.currentIndex(), True)
|
||||
|
||||
def alignCenterInStock(self):
|
||||
bbs = self.obj.Stock.Shape.BoundBox
|
||||
@@ -1065,6 +1064,8 @@ class TaskPanel:
|
||||
self.template.updateUI()
|
||||
|
||||
def setupUi(self, activate):
|
||||
self.setupGlobal.setupUi()
|
||||
self.setupOps.setupUi()
|
||||
self.updateStockEditor(-1, True)
|
||||
self.setFields()
|
||||
|
||||
|
||||
@@ -112,7 +112,7 @@ class StockFromBase(Stock):
|
||||
obj.ExtZpos= 1.0
|
||||
|
||||
# placement is only tracked on creation
|
||||
bb = shapeBoundBox(base.Group)
|
||||
bb = shapeBoundBox(base.Group) if base else None
|
||||
if bb:
|
||||
obj.Placement = FreeCAD.Placement(FreeCAD.Vector(bb.XMin, bb.YMin, bb.ZMin), FreeCAD.Rotation())
|
||||
else:
|
||||
@@ -225,9 +225,7 @@ def SetupStockObject(obj, stockType):
|
||||
|
||||
def CreateFromBase(job, neg=None, pos=None, placement=None):
|
||||
PathLog.track(job.Label, neg, pos, placement)
|
||||
base = job.Model if job and hasattr(job, 'Model') else None
|
||||
if base:
|
||||
base.Shape.tessellate(0.1)
|
||||
base = job.Model if job else None
|
||||
obj = FreeCAD.ActiveDocument.addObject('Part::FeaturePython', 'Stock')
|
||||
proxy = StockFromBase(obj, base)
|
||||
|
||||
@@ -250,9 +248,7 @@ def CreateFromBase(job, neg=None, pos=None, placement=None):
|
||||
return obj
|
||||
|
||||
def CreateBox(job, extent=None, placement=None):
|
||||
base = job.Model.Group if job else None
|
||||
if base:
|
||||
base.Shape.tessellate(0.1)
|
||||
base = job.Model if job else None
|
||||
obj = FreeCAD.ActiveDocument.addObject('Part::FeaturePython', 'Stock')
|
||||
proxy = StockCreateBox(obj)
|
||||
|
||||
@@ -261,24 +257,24 @@ def CreateBox(job, extent=None, placement=None):
|
||||
obj.Width = extent.y
|
||||
obj.Height = extent.z
|
||||
elif base:
|
||||
bb = shapeBoundBox(base)
|
||||
bb = shapeBoundBox(base.Group)
|
||||
obj.Length = max(bb.XLength, 1)
|
||||
obj.Width = max(bb.YLength, 1)
|
||||
obj.Height = max(bb.ZLength, 1)
|
||||
|
||||
if placement:
|
||||
obj.Placement = placement
|
||||
elif base:
|
||||
bb = shapeBoundBox(base)
|
||||
bb = shapeBoundBox(base.Group)
|
||||
origin = FreeCAD.Vector(bb.XMin, bb.YMin, bb.ZMin)
|
||||
obj.Placement = FreeCAD.Placement(origin, FreeCAD.Vector(), 0)
|
||||
|
||||
SetupStockObject(obj, StockType.CreateBox)
|
||||
return obj
|
||||
|
||||
def CreateCylinder(job, radius=None, height=None, placement=None):
|
||||
base = job.Model.Group if job else None
|
||||
base = job.Model if job else None
|
||||
obj = FreeCAD.ActiveDocument.addObject('Part::FeaturePython', 'Stock')
|
||||
if base:
|
||||
base.Shape.tessellate(0.1) obj = FreeCAD.ActiveDocument.addObject('Part::FeaturePython', 'Stock')
|
||||
proxy = StockCreateCylinder(obj)
|
||||
|
||||
if radius:
|
||||
@@ -287,14 +283,14 @@ def CreateCylinder(job, radius=None, height=None, placement=None):
|
||||
if height:
|
||||
obj.Height = height
|
||||
elif base:
|
||||
bb = shapeBoundBox(base)
|
||||
bb = shapeBoundBox(base.Group)
|
||||
obj.Radius = math.sqrt(bb.XLength ** 2 + bb.YLength ** 2) / 2.0
|
||||
obj.Height = max(bb.ZLength, 1)
|
||||
|
||||
if placement:
|
||||
obj.Placement = placement
|
||||
elif base:
|
||||
bb = shapeBoundBox(base)
|
||||
bb = shapeBoundBox(base.Group)
|
||||
origin = FreeCAD.Vector((bb.XMin + bb.XMax)/2, (bb.YMin + bb.YMax)/2, bb.ZMin)
|
||||
obj.Placement = FreeCAD.Placement(origin, FreeCAD.Vector(), 0)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user