Path: Added Simple Copy tool + Inspect tool can now save changes
This commit is contained in:
@@ -55,7 +55,7 @@ SET(PathScripts_SRCS
|
||||
PathScripts/PathArray.py
|
||||
PathScripts/PathCustom.py
|
||||
PathScripts/PathInspect.py
|
||||
PathScripts/PathToolChange.py
|
||||
PathScripts/PathSimpleCopy.py
|
||||
)
|
||||
|
||||
ADD_CUSTOM_TARGET(PathScripts ALL
|
||||
|
||||
@@ -29,5 +29,6 @@
|
||||
<file>icons/Path-Custom.svg</file>
|
||||
<file>icons/Path-Inspect.svg</file>
|
||||
<file>icons/Path-ToolChange.svg</file>
|
||||
<file>icons/Path-SimpleCopy.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
526
src/Mod/Path/Gui/Resources/icons/Path-SimpleCopy.svg
Normal file
526
src/Mod/Path/Gui/Resources/icons/Path-SimpleCopy.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 20 KiB |
@@ -87,13 +87,14 @@ class PathWorkbench ( Workbench ):
|
||||
from PathScripts import PathFacePocket
|
||||
from PathScripts import PathCustom
|
||||
from PathScripts import PathInspect
|
||||
from PathScripts import PathSimpleCopy
|
||||
|
||||
# build commands list
|
||||
projcmdlist = ["Path_Project", "Path_ToolTableEdit","Path_Post","Path_Inspect"]
|
||||
prepcmdlist = ["Path_Plane","Path_Fixture","Path_LoadTool","Path_ToolLenOffset","Path_Comment","Path_Stop",
|
||||
"Path_FaceProfile","Path_FacePocket","Path_Custom","Path_FromShape"]
|
||||
opcmdlist = ["Path_Profile","Path_Kurve","Path_Pocket","Path_Drilling"]
|
||||
modcmdlist = ["Path_Copy","Path_CompoundExtended","Path_Dressup","Path_Hop","Path_Array"]
|
||||
modcmdlist = ["Path_Copy","Path_CompoundExtended","Path_Dressup","Path_Hop","Path_Array","Path_SimpleCopy"]
|
||||
|
||||
|
||||
# Add commands to menu and toolbar
|
||||
|
||||
@@ -125,15 +125,20 @@ class GCodeEditorDialog(QtGui.QDialog):
|
||||
self.editor.setText("G01 X55 Y4.5 F300.0")
|
||||
self.highlighter = GCodeHighlighter(self.editor.document())
|
||||
layout.addWidget(self.editor)
|
||||
|
||||
|
||||
# Note
|
||||
lab = QtGui.QLabel()
|
||||
lab.setText(translate("PathInspect","<b>Note</b>: Pressing OK will commit any change you make above to the object, but if the object is parametric, these changes will be overridden on recompute."))
|
||||
lab.setWordWrap(True)
|
||||
layout.addWidget(lab)
|
||||
|
||||
# OK and Cancel buttons
|
||||
self.buttons = QtGui.QDialogButtonBox(
|
||||
QtGui.QDialogButtonBox.Ok,
|
||||
#QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel,
|
||||
QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel,
|
||||
QtCore.Qt.Horizontal, self)
|
||||
layout.addWidget(self.buttons)
|
||||
self.buttons.accepted.connect(self.accept)
|
||||
#self.buttons.rejected.connect(self.reject)
|
||||
self.buttons.rejected.connect(self.reject)
|
||||
|
||||
|
||||
def show(obj):
|
||||
@@ -146,10 +151,13 @@ def show(obj):
|
||||
dia.editor.setText(obj.Path.toGCode())
|
||||
result = dia.exec_()
|
||||
# exec_() returns 0 or 1 depending on the button pressed (Ok or Cancel)
|
||||
#if result:
|
||||
# return dia.editor.toPlainText()
|
||||
#else:
|
||||
# return inputstring
|
||||
if result:
|
||||
import Path
|
||||
p = Path.Path(dia.editor.toPlainText())
|
||||
FreeCAD.ActiveDocument.openTransaction("Edit Path")
|
||||
obj.Path = p
|
||||
FreeCAD.ActiveDocument.commitTransaction()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class CommandPathInspect:
|
||||
|
||||
71
src/Mod/Path/PathScripts/PathSimpleCopy.py
Normal file
71
src/Mod/Path/PathScripts/PathSimpleCopy.py
Normal file
@@ -0,0 +1,71 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
#***************************************************************************
|
||||
#* *
|
||||
#* Copyright (c) 2015 Yorik van Havre <yorik@uncreated.net> *
|
||||
#* *
|
||||
#* This program is free software; you can redistribute it and/or modify *
|
||||
#* it under the terms of the GNU Lesser General Public License (LGPL) *
|
||||
#* as published by the Free Software Foundation; either version 2 of *
|
||||
#* the License, or (at your option) any later version. *
|
||||
#* for detail see the LICENCE text file. *
|
||||
#* *
|
||||
#* This program is distributed in the hope that it will be useful, *
|
||||
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
#* GNU Library General Public License for more details. *
|
||||
#* *
|
||||
#* You should have received a copy of the GNU Library General Public *
|
||||
#* License along with this program; if not, write to the Free Software *
|
||||
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
#* USA *
|
||||
#* *
|
||||
#***************************************************************************
|
||||
|
||||
import FreeCAD,FreeCADGui,Path,PathGui
|
||||
from PySide import QtCore,QtGui
|
||||
|
||||
"""Path SimpleCopy command"""
|
||||
|
||||
# Qt tanslation handling
|
||||
try:
|
||||
_encoding = QtGui.QApplication.UnicodeUTF8
|
||||
def translate(context, text, disambig=None):
|
||||
return QtGui.QApplication.translate(context, text, disambig, _encoding)
|
||||
except AttributeError:
|
||||
def translate(context, text, disambig=None):
|
||||
return QtGui.QApplication.translate(context, text, disambig)
|
||||
|
||||
|
||||
class CommandPathSimpleCopy:
|
||||
|
||||
|
||||
def GetResources(self):
|
||||
return {'Pixmap' : 'Path-SimpleCopy',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("Path_SimpleCopy","Simple Copy"),
|
||||
'Accel': "P, Y",
|
||||
'ToolTip': QtCore.QT_TRANSLATE_NOOP("Path_SimpleCopy","Creates a non-parametric copy of another path")}
|
||||
|
||||
def IsActive(self):
|
||||
return not FreeCAD.ActiveDocument is None
|
||||
|
||||
def Activated(self):
|
||||
# check that the selection contains exactly what we want
|
||||
selection = FreeCADGui.Selection.getSelection()
|
||||
if len(selection) != 1:
|
||||
FreeCAD.Console.PrintError(translate("Path_SimpleCopy","Please select exactly one path object\n"))
|
||||
return
|
||||
if not(selection[0].isDerivedFrom("Path::Feature")):
|
||||
FreeCAD.Console.PrintError(translate("Path_SimpleCopy","Please select exactly one path object\n"))
|
||||
return
|
||||
|
||||
FreeCAD.ActiveDocument.openTransaction(translate("Path_SimpleCopy","Simple Copy"))
|
||||
FreeCADGui.doCommand('copy = FreeCAD.ActiveDocument.addObject("Path::Feature","'+selection[0].Name+ '_copy")')
|
||||
FreeCADGui.doCommand('copy.Path = FreeCAD.ActiveDocument.'+selection[0].Name+'.Path')
|
||||
FreeCAD.ActiveDocument.commitTransaction()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
if FreeCAD.GuiUp:
|
||||
# register the FreeCAD command
|
||||
FreeCADGui.addCommand('Path_SimpleCopy',CommandPathSimpleCopy())
|
||||
Reference in New Issue
Block a user