diff --git a/src/Mod/Path/CMakeLists.txt b/src/Mod/Path/CMakeLists.txt index 9706526e26..0c5bebe456 100644 --- a/src/Mod/Path/CMakeLists.txt +++ b/src/Mod/Path/CMakeLists.txt @@ -51,16 +51,6 @@ SET(PathPythonDressupGui_SRCS Path/Dressup/Gui/ZCorrect.py ) -SET(PathPythonOp_SRCS - Path/Op/__init__.py - Path/Op/Adaptive.py -) - -SET(PathPythonOpGui_SRCS - Path/Op/Gui/__init__.py - Path/Op/Gui/Adaptive.py -) - SET(PathPythonTools_SRCS Path/Tools/__init__.py Path/Tools/Bit.py @@ -120,24 +110,62 @@ SET(PathPythonPostScripts_SRCS Path/Post/scripts/uccnc_post.py ) +SET(PathPythonOp_SRCS + Path/Op/__init__.py + Path/Op/Adaptive.py + Path/Op/Area.py + Path/Op/Base.py + Path/Op/CircularHoleBase.py + Path/Op/Custom.py + Path/Op/Deburr.py + Path/Op/Engrave.py + Path/Op/EngraveBase.py + Path/Op/Drilling.py + Path/Op/Helix.py + Path/Op/MillFace.py + Path/Op/Pocket.py + Path/Op/PocketBase.py + Path/Op/PocketShape.py + Path/Op/Probe.py + Path/Op/Profile.py + Path/Op/Slot.py + Path/Op/Surface.py + Path/Op/SurfaceSupport.py + Path/Op/ThreadMilling.py + Path/Op/Util.py + Path/Op/Vcarve.py + Path/Op/Waterline.py +) + +SET(PathPythonOpGui_SRCS + Path/Op/Gui/__init__.py + Path/Op/Gui/Adaptive.py + Path/Op/Gui/Base.py + Path/Op/Gui/CircularHoleBase.py + Path/Op/Gui/Custom.py + Path/Op/Gui/Deburr.py + Path/Op/Gui/Drilling.py + Path/Op/Gui/Engrave.py + Path/Op/Gui/Helix.py + Path/Op/Gui/MillFace.py + Path/Op/Gui/PocketBase.py + Path/Op/Gui/Pocket.py + Path/Op/Gui/PocketShape.py + Path/Op/Gui/Probe.py + Path/Op/Gui/Profile.py + Path/Op/Gui/Slot.py + Path/Op/Gui/Surface.py + Path/Op/Gui/ThreadMilling.py + Path/Op/Gui/Vcarve.py + Path/Op/Gui/Waterline.py +) + SET(PathScripts_SRCS PathScripts/drillableLib.py - PathScripts/PathAreaOp.py PathScripts/PathArray.py - PathScripts/PathCircularHoleBase.py - PathScripts/PathCircularHoleBaseGui.py PathScripts/PathCamoticsGui.py PathScripts/PathComment.py PathScripts/PathCopy.py - PathScripts/PathCustom.py - PathScripts/PathCustomGui.py - PathScripts/PathDeburr.py - PathScripts/PathDeburrGui.py - PathScripts/PathDrilling.py - PathScripts/PathDrillingGui.py - PathScripts/PathEngrave.py - PathScripts/PathEngraveBase.py - PathScripts/PathEngraveGui.py PathScripts/PathFeatureExtensions.py PathScripts/PathFeatureExtensionsGui.py PathScripts/PathFixture.py @@ -145,8 +173,6 @@ SET(PathScripts_SRCS PathScripts/PathGetPoint.py PathScripts/PathGui.py PathScripts/PathGuiInit.py - PathScripts/PathHelix.py - PathScripts/PathHelixGui.py PathScripts/PathHop.py PathScripts/PathIconViewProvider.py PathScripts/PathInspect.py @@ -154,30 +180,15 @@ SET(PathScripts_SRCS PathScripts/PathJobCmd.py PathScripts/PathJobDlg.py PathScripts/PathJobGui.py - PathScripts/PathMillFace.py - PathScripts/PathMillFaceGui.py - PathScripts/PathOp.py - PathScripts/PathOpGui.py - PathScripts/PathOpTools.py - PathScripts/PathPocket.py - PathScripts/PathPocketBase.py - PathScripts/PathPocketBaseGui.py - PathScripts/PathPocketGui.py - PathScripts/PathPocketShape.py - PathScripts/PathPocketShapeGui.py PathScripts/PathPreferences.py PathScripts/PathPreferencesAdvanced.py PathScripts/PathPreferencesPathJob.py - PathScripts/PathProbe.py - PathScripts/PathProbeGui.py - PathScripts/PathProfile.py PathScripts/PathProfileContour.py PathScripts/PathProfileContourGui.py PathScripts/PathProfileEdges.py PathScripts/PathProfileEdgesGui.py PathScripts/PathProfileFaces.py PathScripts/PathProfileFacesGui.py - PathScripts/PathProfileGui.py PathScripts/PathProperty.py PathScripts/PathPropertyBag.py PathScripts/PathPropertyBagGui.py @@ -190,25 +201,14 @@ SET(PathScripts_SRCS PathScripts/PathSetupSheetOpPrototypeGui.py PathScripts/PathSimpleCopy.py PathScripts/PathSimulatorGui.py - PathScripts/PathSlot.py - PathScripts/PathSlotGui.py PathScripts/PathStock.py PathScripts/PathStop.py - PathScripts/PathSurface.py - PathScripts/PathSurfaceGui.py - PathScripts/PathSurfaceSupport.py - PathScripts/PathThreadMilling.py - PathScripts/PathThreadMillingGui.py PathScripts/PathToolEdit.py PathScripts/PathToolLibraryEditor.py PathScripts/PathToolLibraryManager.py PathScripts/PathUtil.py PathScripts/PathUtils.py PathScripts/PathUtilsGui.py - PathScripts/PathVcarve.py - PathScripts/PathVcarveGui.py - PathScripts/PathWaterline.py - PathScripts/PathWaterlineGui.py PathScripts/__init__.py ) @@ -287,7 +287,7 @@ SET(PathTests_SRCS PathTests/TestPathHelpers.py PathTests/TestPathHelixGenerator.py PathTests/TestPathLog.py - PathTests/TestPathOpTools.py + PathTests/TestPathOpUtil.py PathTests/TestPathPost.py PathTests/TestPathPreferences.py PathTests/TestPathPropertyBag.py diff --git a/src/Mod/Path/InitGui.py b/src/Mod/Path/InitGui.py index cc112ee55a..952fa06b98 100644 --- a/src/Mod/Path/InitGui.py +++ b/src/Mod/Path/InitGui.py @@ -173,8 +173,8 @@ class PathWorkbench(Workbench): try: import ocl # pylint: disable=unused-variable - from PathScripts import PathSurfaceGui - from PathScripts import PathWaterlineGui + from Path.Op.Gui import Surface + from Path.Op.Gui import Waterline threedopcmdlist.extend(["Path_Surface", "Path_Waterline"]) threedcmdgroup = ["Path_3dTools"] @@ -325,7 +325,7 @@ class PathWorkbench(Workbench): "", ["Path_ExportTemplate"] + self.toolbitctxmenu ) menuAppended = True - if isinstance(obj.Proxy, PathScripts.PathOp.ObjectOp): + if isinstance(obj.Proxy, Path.Op.Base.ObjectOp): self.appendContextMenu( "", ["Path_OperationCopy", "Path_OpActiveToggle"] ) diff --git a/src/Mod/Path/Path/Dressup/Gui/Dogbone.py b/src/Mod/Path/Path/Dressup/Gui/Dogbone.py index c6f792e5cd..1d051a5a06 100644 --- a/src/Mod/Path/Path/Dressup/Gui/Dogbone.py +++ b/src/Mod/Path/Path/Dressup/Gui/Dogbone.py @@ -1342,7 +1342,7 @@ class ViewProviderDressup(object): def Create(base, name="DogboneDressup"): """ - Create(obj, name='DogboneDressup') ... dresses the given PathProfile/PathContour object with dogbones. + Create(obj, name='DogboneDressup') ... dresses the given Path.Op.Profile/PathContour object with dogbones. """ obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", name) dbo = ObjectDressup(obj, base) diff --git a/src/Mod/Path/Path/Op/Adaptive.py b/src/Mod/Path/Path/Op/Adaptive.py index db0a66b5fb..d456d423b3 100644 --- a/src/Mod/Path/Path/Op/Adaptive.py +++ b/src/Mod/Path/Path/Op/Adaptive.py @@ -23,7 +23,7 @@ # *************************************************************************** import Path -import PathScripts.PathOp as PathOp +import Path.Op.Base as PathOp import PathScripts.PathUtils as PathUtils import PathScripts.PathGeom as PathGeom import FreeCAD diff --git a/src/Mod/Path/PathScripts/PathAreaOp.py b/src/Mod/Path/Path/Op/Area.py similarity index 99% rename from src/Mod/Path/PathScripts/PathAreaOp.py rename to src/Mod/Path/Path/Op/Area.py index 7f9246416c..5c35188b36 100644 --- a/src/Mod/Path/PathScripts/PathAreaOp.py +++ b/src/Mod/Path/Path/Op/Area.py @@ -23,7 +23,7 @@ from PySide.QtCore import QT_TRANSLATE_NOOP import FreeCAD import Path -import PathScripts.PathOp as PathOp +import Path.Op.Base as PathOp import PathScripts.PathUtils as PathUtils diff --git a/src/Mod/Path/PathScripts/PathOp.py b/src/Mod/Path/Path/Op/Base.py similarity index 100% rename from src/Mod/Path/PathScripts/PathOp.py rename to src/Mod/Path/Path/Op/Base.py diff --git a/src/Mod/Path/PathScripts/PathCircularHoleBase.py b/src/Mod/Path/Path/Op/CircularHoleBase.py similarity index 99% rename from src/Mod/Path/PathScripts/PathCircularHoleBase.py rename to src/Mod/Path/Path/Op/CircularHoleBase.py index 1ca025d9cd..b0e539d792 100644 --- a/src/Mod/Path/PathScripts/PathCircularHoleBase.py +++ b/src/Mod/Path/Path/Op/CircularHoleBase.py @@ -23,7 +23,7 @@ from PySide.QtCore import QT_TRANSLATE_NOOP import FreeCAD import Path -import PathScripts.PathOp as PathOp +import Path.Op.Base as PathOp import PathScripts.drillableLib as drillableLib # lazily loaded modules diff --git a/src/Mod/Path/PathScripts/PathCustom.py b/src/Mod/Path/Path/Op/Custom.py similarity index 98% rename from src/Mod/Path/PathScripts/PathCustom.py rename to src/Mod/Path/Path/Op/Custom.py index 7b2459d175..2d24957329 100644 --- a/src/Mod/Path/PathScripts/PathCustom.py +++ b/src/Mod/Path/Path/Op/Custom.py @@ -22,8 +22,7 @@ import FreeCAD import Path - -import PathScripts.PathOp as PathOp +import Path.Op.Base as PathOp from PySide.QtCore import QT_TRANSLATE_NOOP diff --git a/src/Mod/Path/PathScripts/PathDeburr.py b/src/Mod/Path/Path/Op/Deburr.py similarity index 98% rename from src/Mod/Path/PathScripts/PathDeburr.py rename to src/Mod/Path/Path/Op/Deburr.py index f590e7501f..d464441715 100644 --- a/src/Mod/Path/PathScripts/PathDeburr.py +++ b/src/Mod/Path/Path/Op/Deburr.py @@ -23,10 +23,10 @@ import FreeCAD import Path -import PathScripts.PathEngraveBase as PathEngraveBase +import Path.Op.Base as PathOp +import Path.Op.EngraveBase as PathEngraveBase +import Path.Op.Util as PathOpUtil import PathScripts.PathGeom as PathGeom -import PathScripts.PathOp as PathOp -import PathScripts.PathOpTools as PathOpTools import math from PySide.QtCore import QT_TRANSLATE_NOOP @@ -410,7 +410,7 @@ class ObjectDeburr(PathEngraveBase.ObjectOp): for w in basewires: self.adjusted_basewires.append(w) - wire = PathOpTools.offsetWire(w, base.Shape, offset, True, side) + wire = PathOpUtil.offsetWire(w, base.Shape, offset, True, side) if wire: wires.append(wire) diff --git a/src/Mod/Path/PathScripts/PathDrilling.py b/src/Mod/Path/Path/Op/Drilling.py similarity index 99% rename from src/Mod/Path/PathScripts/PathDrilling.py rename to src/Mod/Path/Path/Op/Drilling.py index 348dd0695d..0434f5f6a3 100644 --- a/src/Mod/Path/PathScripts/PathDrilling.py +++ b/src/Mod/Path/Path/Op/Drilling.py @@ -28,10 +28,10 @@ from Generators import drill_generator as generator import FreeCAD import Part import Path +import Path.Op.Base as PathOp +import Path.Op.CircularHoleBase as PathCircularHoleBase import PathFeedRate import PathMachineState -import PathScripts.PathCircularHoleBase as PathCircularHoleBase -import PathScripts.PathOp as PathOp import PathScripts.PathUtils as PathUtils from PySide.QtCore import QT_TRANSLATE_NOOP diff --git a/src/Mod/Path/PathScripts/PathEngrave.py b/src/Mod/Path/Path/Op/Engrave.py similarity index 98% rename from src/Mod/Path/PathScripts/PathEngrave.py rename to src/Mod/Path/Path/Op/Engrave.py index f0da66e0e8..022bea8409 100644 --- a/src/Mod/Path/PathScripts/PathEngrave.py +++ b/src/Mod/Path/Path/Op/Engrave.py @@ -22,8 +22,8 @@ import FreeCAD import Path -import PathScripts.PathEngraveBase as PathEngraveBase -import PathScripts.PathOp as PathOp +import Path.Op.Base as PathOp +import Path.Op.EngraveBase as PathEngraveBase import PathScripts.PathUtils as PathUtils from PySide.QtCore import QT_TRANSLATE_NOOP diff --git a/src/Mod/Path/PathScripts/PathEngraveBase.py b/src/Mod/Path/Path/Op/EngraveBase.py similarity index 96% rename from src/Mod/Path/PathScripts/PathEngraveBase.py rename to src/Mod/Path/Path/Op/EngraveBase.py index 25c6e35cad..6169b12ffe 100644 --- a/src/Mod/Path/PathScripts/PathEngraveBase.py +++ b/src/Mod/Path/Path/Op/EngraveBase.py @@ -22,9 +22,9 @@ from lazy_loader.lazy_loader import LazyLoader import Path +import Path.Op.Base as PathOp import PathScripts.PathGeom as PathGeom -import PathScripts.PathOp as PathOp -import PathScripts.PathOpTools as PathOpTools +import Path.Op.Util as PathOpUtil import copy __doc__ = "Base class for all ops in the engrave family." @@ -64,7 +64,7 @@ class ObjectOp(PathOp.ObjectOp): decomposewires = [] for wire in wires: - decomposewires.extend(PathOpTools.makeWires(wire.Edges)) + decomposewires.extend(PathOpUtil.makeWires(wire.Edges)) wires = decomposewires for wire in wires: @@ -75,7 +75,7 @@ class ObjectOp(PathOp.ObjectOp): start_idx = obj.StartVertex edges = wire.Edges - # edges = copy.copy(PathOpTools.orientWire(offset, forward).Edges) + # edges = copy.copy(PathOpUtil.orientWire(offset, forward).Edges) # Path.Log.track("wire: {} offset: {}".format(len(wire.Edges), len(edges))) # edges = Part.sortEdges(edges)[0] # Path.Log.track("edges: {}".format(len(edges))) diff --git a/src/Mod/Path/Path/Op/Gui/Adaptive.py b/src/Mod/Path/Path/Op/Gui/Adaptive.py index a4836b1dd0..7879e633ca 100644 --- a/src/Mod/Path/Path/Op/Gui/Adaptive.py +++ b/src/Mod/Path/Path/Op/Gui/Adaptive.py @@ -22,7 +22,7 @@ # *************************************************************************** import Path.Op.Adaptive as PathAdaptive -import PathScripts.PathOpGui as PathOpGui +import Path.Op.Gui.Base as PathOpGui from PySide import QtCore import PathScripts.PathFeatureExtensionsGui as PathFeatureExtensionsGui import FreeCADGui diff --git a/src/Mod/Path/PathScripts/PathOpGui.py b/src/Mod/Path/Path/Op/Gui/Base.py similarity index 99% rename from src/Mod/Path/PathScripts/PathOpGui.py rename to src/Mod/Path/Path/Op/Gui/Base.py index c60fb018b8..c582bd119d 100644 --- a/src/Mod/Path/PathScripts/PathOpGui.py +++ b/src/Mod/Path/Path/Op/Gui/Base.py @@ -23,12 +23,12 @@ import FreeCAD import FreeCADGui import Path +import Path.Op.Base as PathOp import PathGui as PGui # ensure Path/Gui/Resources are loaded import PathScripts.PathGeom as PathGeom import PathScripts.PathGetPoint as PathGetPoint import PathScripts.PathGui as PathGui import PathScripts.PathJob as PathJob -import PathScripts.PathOp as PathOp import PathScripts.PathPreferences as PathPreferences import PathScripts.PathSelection as PathSelection import PathScripts.PathSetupSheet as PathSetupSheet diff --git a/src/Mod/Path/PathScripts/PathCircularHoleBaseGui.py b/src/Mod/Path/Path/Op/Gui/CircularHoleBase.py similarity index 99% rename from src/Mod/Path/PathScripts/PathCircularHoleBaseGui.py rename to src/Mod/Path/Path/Op/Gui/CircularHoleBase.py index 7cde8bcc77..95d10bd4b4 100644 --- a/src/Mod/Path/PathScripts/PathCircularHoleBaseGui.py +++ b/src/Mod/Path/Path/Op/Gui/CircularHoleBase.py @@ -23,8 +23,8 @@ import FreeCAD import FreeCADGui import Path +import Path.Op.Gui.Base as PathOpGui import PathGui as PGui # ensure Path/Gui/Resources are loaded -import PathScripts.PathOpGui as PathOpGui from PySide import QtCore, QtGui diff --git a/src/Mod/Path/PathScripts/PathCustomGui.py b/src/Mod/Path/Path/Op/Gui/Custom.py similarity index 97% rename from src/Mod/Path/PathScripts/PathCustomGui.py rename to src/Mod/Path/Path/Op/Gui/Custom.py index 184229247d..4b00ad7d51 100644 --- a/src/Mod/Path/PathScripts/PathCustomGui.py +++ b/src/Mod/Path/Path/Op/Gui/Custom.py @@ -22,8 +22,8 @@ import FreeCAD import FreeCADGui -import PathScripts.PathCustom as PathCustom -import PathScripts.PathOpGui as PathOpGui +import Path.Op.Custom as PathCustom +import Path.Op.Gui.Base as PathOpGui from PySide.QtCore import QT_TRANSLATE_NOOP diff --git a/src/Mod/Path/PathScripts/PathDeburrGui.py b/src/Mod/Path/Path/Op/Gui/Deburr.py similarity index 98% rename from src/Mod/Path/PathScripts/PathDeburrGui.py rename to src/Mod/Path/Path/Op/Gui/Deburr.py index 77daa3fddd..be4c67799a 100644 --- a/src/Mod/Path/PathScripts/PathDeburrGui.py +++ b/src/Mod/Path/Path/Op/Gui/Deburr.py @@ -23,9 +23,9 @@ import FreeCAD import FreeCADGui import Path -import PathScripts.PathDeburr as PathDeburr +import Path.Op.Deburr as PathDeburr +import Path.Op.Gui.Base as PathOpGui import PathScripts.PathGui as PathGui -import PathScripts.PathOpGui as PathOpGui from PySide import QtCore, QtGui from PySide.QtCore import QT_TRANSLATE_NOOP diff --git a/src/Mod/Path/PathScripts/PathDrillingGui.py b/src/Mod/Path/Path/Op/Gui/Drilling.py similarity index 98% rename from src/Mod/Path/PathScripts/PathDrillingGui.py rename to src/Mod/Path/Path/Op/Gui/Drilling.py index e1b18f9b91..5075cc5c30 100644 --- a/src/Mod/Path/PathScripts/PathDrillingGui.py +++ b/src/Mod/Path/Path/Op/Gui/Drilling.py @@ -23,11 +23,11 @@ import FreeCAD import FreeCADGui import Path +import Path.Op.Drilling as PathDrilling +import Path.Op.Gui.Base as PathOpGui +import Path.Op.Gui.CircularHoleBase as PathCircularHoleBaseGui import PathGui as PGui # ensure Path/Gui/Resources are loaded -import PathScripts.PathCircularHoleBaseGui as PathCircularHoleBaseGui -import PathScripts.PathDrilling as PathDrilling import PathScripts.PathGui as PathGui -import PathScripts.PathOpGui as PathOpGui from PySide import QtCore diff --git a/src/Mod/Path/PathScripts/PathEngraveGui.py b/src/Mod/Path/Path/Op/Gui/Engrave.py similarity index 98% rename from src/Mod/Path/PathScripts/PathEngraveGui.py rename to src/Mod/Path/Path/Op/Gui/Engrave.py index 24dc13e30b..0283d9b6f9 100644 --- a/src/Mod/Path/PathScripts/PathEngraveGui.py +++ b/src/Mod/Path/Path/Op/Gui/Engrave.py @@ -23,9 +23,9 @@ import FreeCAD import FreeCADGui import Path +import Path.Op.Engrave as PathEngrave +import Path.Op.Gui.Base as PathOpGui import PathGui as PGui # ensure Path/Gui/Resources are loaded -import PathScripts.PathEngrave as PathEngrave -import PathScripts.PathOpGui as PathOpGui import PathScripts.PathUtils as PathUtils from PySide import QtCore, QtGui diff --git a/src/Mod/Path/PathScripts/PathHelixGui.py b/src/Mod/Path/Path/Op/Gui/Helix.py similarity index 96% rename from src/Mod/Path/PathScripts/PathHelixGui.py rename to src/Mod/Path/Path/Op/Gui/Helix.py index 331fe1ca35..b74af23fe6 100644 --- a/src/Mod/Path/PathScripts/PathHelixGui.py +++ b/src/Mod/Path/Path/Op/Gui/Helix.py @@ -23,10 +23,10 @@ import FreeCAD import FreeCADGui import Path +import Path.Op.Gui.Base as PathOpGui +import Path.Op.Gui.CircularHoleBase as PathCircularHoleBaseGui +import Path.Op.Helix as PathHelix import PathGui as PGui # ensure Path/Gui/Resources are loaded -import PathScripts.PathCircularHoleBaseGui as PathCircularHoleBaseGui -import PathScripts.PathHelix as PathHelix -import PathScripts.PathOpGui as PathOpGui import PathScripts.PathGui as PathGui from PySide.QtCore import QT_TRANSLATE_NOOP diff --git a/src/Mod/Path/PathScripts/PathMillFaceGui.py b/src/Mod/Path/Path/Op/Gui/MillFace.py similarity index 94% rename from src/Mod/Path/PathScripts/PathMillFaceGui.py rename to src/Mod/Path/Path/Op/Gui/MillFace.py index cdd7945b0c..ae264e49d4 100644 --- a/src/Mod/Path/PathScripts/PathMillFaceGui.py +++ b/src/Mod/Path/Path/Op/Gui/MillFace.py @@ -23,10 +23,10 @@ from PySide.QtCore import QT_TRANSLATE_NOOP import FreeCAD import Path -import PathScripts.PathMillFace as PathMillFace -import PathScripts.PathOpGui as PathOpGui -import PathScripts.PathPocketBaseGui as PathPocketBaseGui -import PathScripts.PathPocketShape as PathPocketShape +import Path.Op.Gui.Base as PathOpGui +import Path.Op.Gui.PocketBase as PathPocketBaseGui +import Path.Op.MillFace as PathMillFace +import Path.Op.PocketShape as PathPocketShape import FreeCADGui __title__ = "Path Face Mill Operation UI" diff --git a/src/Mod/Path/PathScripts/PathPocketGui.py b/src/Mod/Path/Path/Op/Gui/Pocket.py similarity index 94% rename from src/Mod/Path/PathScripts/PathPocketGui.py rename to src/Mod/Path/Path/Op/Gui/Pocket.py index 008ab3807a..d733bcb3a7 100644 --- a/src/Mod/Path/PathScripts/PathPocketGui.py +++ b/src/Mod/Path/Path/Op/Gui/Pocket.py @@ -22,9 +22,9 @@ import FreeCAD import Path -import PathScripts.PathOpGui as PathOpGui -import PathScripts.PathPocket as PathPocket -import PathScripts.PathPocketBaseGui as PathPocketBaseGui +import Path.Op.Gui.Base as PathOpGui +import Path.Op.Gui.PocketBase as PathPocketBaseGui +import Path.Op.Pocket as PathPocket from PySide.QtCore import QT_TRANSLATE_NOOP diff --git a/src/Mod/Path/PathScripts/PathPocketBaseGui.py b/src/Mod/Path/Path/Op/Gui/PocketBase.py similarity index 99% rename from src/Mod/Path/PathScripts/PathPocketBaseGui.py rename to src/Mod/Path/Path/Op/Gui/PocketBase.py index b3c44d052e..0ba2f9647c 100644 --- a/src/Mod/Path/PathScripts/PathPocketBaseGui.py +++ b/src/Mod/Path/Path/Op/Gui/PocketBase.py @@ -23,10 +23,10 @@ import FreeCAD import FreeCADGui import Path +import Path.Op.Gui.Base as PathOpGui +import Path.Op.Pocket as PathPocket import PathGui as PGui # ensure Path/Gui/Resources are loaded import PathScripts.PathGui as PathGui -import PathScripts.PathOpGui as PathOpGui -import PathScripts.PathPocket as PathPocket __title__ = "Path Pocket Base Operation UI" __author__ = "sliptonic (Brad Collette)" diff --git a/src/Mod/Path/PathScripts/PathPocketShapeGui.py b/src/Mod/Path/Path/Op/Gui/PocketShape.py similarity index 95% rename from src/Mod/Path/PathScripts/PathPocketShapeGui.py rename to src/Mod/Path/Path/Op/Gui/PocketShape.py index acd60454e2..70788fccce 100644 --- a/src/Mod/Path/PathScripts/PathPocketShapeGui.py +++ b/src/Mod/Path/Path/Op/Gui/PocketShape.py @@ -22,9 +22,9 @@ import FreeCAD import Path -import PathScripts.PathOpGui as PathOpGui -import PathScripts.PathPocketShape as PathPocketShape -import PathScripts.PathPocketBaseGui as PathPocketBaseGui +import Path.Op.Gui.Base as PathOpGui +import Path.Op.Gui.PocketBase as PathPocketBaseGui +import Path.Op.PocketShape as PathPocketShape import PathScripts.PathFeatureExtensionsGui as PathFeatureExtensionsGui from PySide.QtCore import QT_TRANSLATE_NOOP diff --git a/src/Mod/Path/PathScripts/PathProbeGui.py b/src/Mod/Path/Path/Op/Gui/Probe.py similarity index 98% rename from src/Mod/Path/PathScripts/PathProbeGui.py rename to src/Mod/Path/Path/Op/Gui/Probe.py index f19429892f..071881038d 100644 --- a/src/Mod/Path/PathScripts/PathProbeGui.py +++ b/src/Mod/Path/Path/Op/Gui/Probe.py @@ -23,9 +23,9 @@ import FreeCAD import FreeCADGui import Path +import Path.Op.Gui.Base as PathOpGui +import Path.Op.Probe as PathProbe import PathGui as PGui # ensure Path/Gui/Resources are loaded -import PathScripts.PathProbe as PathProbe -import PathScripts.PathOpGui as PathOpGui import PathScripts.PathGui as PathGui from PySide.QtCore import QT_TRANSLATE_NOOP diff --git a/src/Mod/Path/PathScripts/PathProfileGui.py b/src/Mod/Path/Path/Op/Gui/Profile.py similarity index 98% rename from src/Mod/Path/PathScripts/PathProfileGui.py rename to src/Mod/Path/Path/Op/Gui/Profile.py index 0a5513d61a..8cb09760e8 100644 --- a/src/Mod/Path/PathScripts/PathProfileGui.py +++ b/src/Mod/Path/Path/Op/Gui/Profile.py @@ -22,10 +22,10 @@ import FreeCAD import FreeCADGui +import Path.Op.Gui.Base as PathOpGui +import Path.Op.Profile as PathProfile import PathGui as PGui # ensure Path/Gui/Resources are loaded import PathScripts.PathGui as PathGui -import PathScripts.PathOpGui as PathOpGui -import PathScripts.PathProfile as PathProfile from PySide.QtCore import QT_TRANSLATE_NOOP diff --git a/src/Mod/Path/PathScripts/PathSlotGui.py b/src/Mod/Path/Path/Op/Gui/Slot.py similarity index 99% rename from src/Mod/Path/PathScripts/PathSlotGui.py rename to src/Mod/Path/Path/Op/Gui/Slot.py index 3162844f8b..68657be2be 100644 --- a/src/Mod/Path/PathScripts/PathSlotGui.py +++ b/src/Mod/Path/Path/Op/Gui/Slot.py @@ -22,10 +22,10 @@ import FreeCAD import FreeCADGui +import Path.Op.Gui.Base as PathOpGui +import Path.Op.Slot as PathSlot import PathGui as PGui # ensure Path/Gui/Resources are loaded -import PathScripts.PathSlot as PathSlot import PathScripts.PathGui as PathGui -import PathScripts.PathOpGui as PathOpGui from PySide import QtCore diff --git a/src/Mod/Path/PathScripts/PathSurfaceGui.py b/src/Mod/Path/Path/Op/Gui/Surface.py similarity index 99% rename from src/Mod/Path/PathScripts/PathSurfaceGui.py rename to src/Mod/Path/Path/Op/Gui/Surface.py index c44b130678..c428ec23ec 100644 --- a/src/Mod/Path/PathScripts/PathSurfaceGui.py +++ b/src/Mod/Path/Path/Op/Gui/Surface.py @@ -24,10 +24,10 @@ from PySide import QtCore import FreeCAD import FreeCADGui import Path +import Path.Op.Gui.Base as PathOpGui +import Path.Op.Surface as PathSurface import PathGui as PGui # ensure Path/Gui/Resources are loaded import PathScripts.PathGui as PathGui -import PathScripts.PathOpGui as PathOpGui -import PathScripts.PathSurface as PathSurface __title__ = "Path Surface Operation UI" diff --git a/src/Mod/Path/PathScripts/PathThreadMillingGui.py b/src/Mod/Path/Path/Op/Gui/ThreadMilling.py similarity index 98% rename from src/Mod/Path/PathScripts/PathThreadMillingGui.py rename to src/Mod/Path/Path/Op/Gui/ThreadMilling.py index 84857ee374..422b9cfd1d 100644 --- a/src/Mod/Path/PathScripts/PathThreadMillingGui.py +++ b/src/Mod/Path/Path/Op/Gui/ThreadMilling.py @@ -23,11 +23,11 @@ import FreeCAD import FreeCADGui import Path +import Path.Op.Gui.Base as PathOpGui +import Path.Op.Gui.CircularHoleBase as PathCircularHoleBaseGui +import Path.Op.ThreadMilling as PathThreadMilling import PathGui as PGui # ensure Path/Gui/Resources are loaded -import PathScripts.PathCircularHoleBaseGui as PathCircularHoleBaseGui -import PathScripts.PathThreadMilling as PathThreadMilling import PathScripts.PathGui as PathGui -import PathScripts.PathOpGui as PathOpGui import csv from PySide.QtCore import QT_TRANSLATE_NOOP diff --git a/src/Mod/Path/PathScripts/PathVcarveGui.py b/src/Mod/Path/Path/Op/Gui/Vcarve.py similarity index 98% rename from src/Mod/Path/PathScripts/PathVcarveGui.py rename to src/Mod/Path/Path/Op/Gui/Vcarve.py index c6eb6fc65c..dcff22fc07 100644 --- a/src/Mod/Path/PathScripts/PathVcarveGui.py +++ b/src/Mod/Path/Path/Op/Gui/Vcarve.py @@ -23,9 +23,9 @@ import FreeCAD import FreeCADGui import Path +import Path.Op.Gui.Base as PathOpGui +import Path.Op.Vcarve as PathVcarve import PathGui as PGui # ensure Path/Gui/Resources are loaded -import PathScripts.PathVcarve as PathVcarve -import PathScripts.PathOpGui as PathOpGui import PathScripts.PathUtils as PathUtils from PySide import QtCore, QtGui diff --git a/src/Mod/Path/PathScripts/PathWaterlineGui.py b/src/Mod/Path/Path/Op/Gui/Waterline.py similarity index 98% rename from src/Mod/Path/PathScripts/PathWaterlineGui.py rename to src/Mod/Path/Path/Op/Gui/Waterline.py index 381c980adf..a593fe97d9 100644 --- a/src/Mod/Path/PathScripts/PathWaterlineGui.py +++ b/src/Mod/Path/Path/Op/Gui/Waterline.py @@ -26,9 +26,9 @@ from PySide.QtCore import QT_TRANSLATE_NOOP import FreeCAD import FreeCADGui import Path +import Path.Op.Gui.Base as PathOpGui +import Path.Op.Waterline as PathWaterline import PathScripts.PathGui as PathGui -import PathScripts.PathOpGui as PathOpGui -import PathScripts.PathWaterline as PathWaterline __title__ = "Path Waterline Operation UI" __author__ = "sliptonic (Brad Collette), russ4262 (Russell Johnson)" diff --git a/src/Mod/Path/PathScripts/PathHelix.py b/src/Mod/Path/Path/Op/Helix.py similarity index 98% rename from src/Mod/Path/PathScripts/PathHelix.py rename to src/Mod/Path/Path/Op/Helix.py index 25c8937a69..31f5436180 100644 --- a/src/Mod/Path/PathScripts/PathHelix.py +++ b/src/Mod/Path/Path/Op/Helix.py @@ -27,8 +27,8 @@ from PySide.QtCore import QT_TRANSLATE_NOOP import FreeCAD import Part import Path -import PathScripts.PathCircularHoleBase as PathCircularHoleBase -import PathScripts.PathOp as PathOp +import Path.Op.Base as PathOp +import Path.Op.CircularHoleBase as PathCircularHoleBase import PathFeedRate diff --git a/src/Mod/Path/PathScripts/PathMillFace.py b/src/Mod/Path/Path/Op/MillFace.py similarity index 99% rename from src/Mod/Path/PathScripts/PathMillFace.py rename to src/Mod/Path/Path/Op/MillFace.py index 454074eb6e..f633492ae5 100644 --- a/src/Mod/Path/PathScripts/PathMillFace.py +++ b/src/Mod/Path/Path/Op/MillFace.py @@ -24,7 +24,7 @@ from __future__ import print_function import FreeCAD import Path -import PathScripts.PathPocketBase as PathPocketBase +import Path.Op.PocketBase as PathPocketBase import PathScripts.PathUtils as PathUtils from PySide.QtCore import QT_TRANSLATE_NOOP import numpy diff --git a/src/Mod/Path/PathScripts/PathPocket.py b/src/Mod/Path/Path/Op/Pocket.py similarity index 99% rename from src/Mod/Path/PathScripts/PathPocket.py rename to src/Mod/Path/Path/Op/Pocket.py index 6c24d6ec82..148ea4e0dc 100644 --- a/src/Mod/Path/PathScripts/PathPocket.py +++ b/src/Mod/Path/Path/Op/Pocket.py @@ -24,8 +24,8 @@ from PySide.QtCore import QT_TRANSLATE_NOOP import FreeCAD import Part import Path -import PathScripts.PathOp as PathOp -import PathScripts.PathPocketBase as PathPocketBase +import Path.Op.Base as PathOp +import Path.Op.PocketBase as PathPocketBase import PathScripts.PathUtils as PathUtils # lazily loaded modules diff --git a/src/Mod/Path/PathScripts/PathPocketBase.py b/src/Mod/Path/Path/Op/PocketBase.py similarity index 99% rename from src/Mod/Path/PathScripts/PathPocketBase.py rename to src/Mod/Path/Path/Op/PocketBase.py index 1952a03f9f..e032b0a610 100644 --- a/src/Mod/Path/PathScripts/PathPocketBase.py +++ b/src/Mod/Path/Path/Op/PocketBase.py @@ -22,8 +22,8 @@ import FreeCAD import Path -import PathScripts.PathAreaOp as PathAreaOp -import PathScripts.PathOp as PathOp +import Path.Op.Area as PathAreaOp +import Path.Op.Base as PathOp from PySide.QtCore import QT_TRANSLATE_NOOP diff --git a/src/Mod/Path/PathScripts/PathPocketShape.py b/src/Mod/Path/Path/Op/PocketShape.py similarity index 99% rename from src/Mod/Path/PathScripts/PathPocketShape.py rename to src/Mod/Path/Path/Op/PocketShape.py index 63a13e7271..f5124908e7 100644 --- a/src/Mod/Path/PathScripts/PathPocketShape.py +++ b/src/Mod/Path/Path/Op/PocketShape.py @@ -23,9 +23,9 @@ from PySide.QtCore import QT_TRANSLATE_NOOP import FreeCAD import Path +import Path.Op.Base as PathOp +import Path.Op.PocketBase as PathPocketBase import PathScripts.PathGeom as PathGeom -import PathScripts.PathOp as PathOp -import PathScripts.PathPocketBase as PathPocketBase # lazily loaded modules diff --git a/src/Mod/Path/PathScripts/PathProbe.py b/src/Mod/Path/Path/Op/Probe.py similarity index 99% rename from src/Mod/Path/PathScripts/PathProbe.py rename to src/Mod/Path/Path/Op/Probe.py index 7120cea74c..81ed2fdbb5 100644 --- a/src/Mod/Path/PathScripts/PathProbe.py +++ b/src/Mod/Path/Path/Op/Probe.py @@ -24,7 +24,7 @@ from __future__ import print_function import FreeCAD import Path -import PathScripts.PathOp as PathOp +import Path.Op.Base as PathOp import PathScripts.PathUtils as PathUtils from PySide.QtCore import QT_TRANSLATE_NOOP diff --git a/src/Mod/Path/PathScripts/PathProfile.py b/src/Mod/Path/Path/Op/Profile.py similarity index 99% rename from src/Mod/Path/PathScripts/PathProfile.py rename to src/Mod/Path/Path/Op/Profile.py index b5dab94dc1..7b79675ebf 100644 --- a/src/Mod/Path/PathScripts/PathProfile.py +++ b/src/Mod/Path/Path/Op/Profile.py @@ -24,8 +24,8 @@ import FreeCAD import Path -import PathScripts.PathAreaOp as PathAreaOp -import PathScripts.PathOp as PathOp +import Path.Op.Area as PathAreaOp +import Path.Op.Base as PathOp import PathScripts.PathUtils as PathUtils import PathScripts.drillableLib as drillableLib import math diff --git a/src/Mod/Path/PathScripts/PathSlot.py b/src/Mod/Path/Path/Op/Slot.py similarity index 99% rename from src/Mod/Path/PathScripts/PathSlot.py rename to src/Mod/Path/Path/Op/Slot.py index 28eb47e51d..7d5ec7d81c 100644 --- a/src/Mod/Path/PathScripts/PathSlot.py +++ b/src/Mod/Path/Path/Op/Slot.py @@ -32,8 +32,8 @@ __contributors__ = "" import FreeCAD from PySide import QtCore import Path +import Path.Op.Base as PathOp import PathScripts.PathUtils as PathUtils -import PathScripts.PathOp as PathOp import math # lazily loaded modules diff --git a/src/Mod/Path/PathScripts/PathSurface.py b/src/Mod/Path/Path/Op/Surface.py similarity index 99% rename from src/Mod/Path/PathScripts/PathSurface.py rename to src/Mod/Path/Path/Op/Surface.py index da67874b00..3093e65bd3 100644 --- a/src/Mod/Path/PathScripts/PathSurface.py +++ b/src/Mod/Path/Path/Op/Surface.py @@ -47,8 +47,8 @@ except ImportError: from PySide.QtCore import QT_TRANSLATE_NOOP import Path -import PathScripts.PathOp as PathOp -import PathScripts.PathSurfaceSupport as PathSurfaceSupport +import Path.Op.Base as PathOp +import Path.Op.SurfaceSupport as PathSurfaceSupport import PathScripts.PathUtils as PathUtils import math import time diff --git a/src/Mod/Path/PathScripts/PathSurfaceSupport.py b/src/Mod/Path/Path/Op/SurfaceSupport.py similarity index 99% rename from src/Mod/Path/PathScripts/PathSurfaceSupport.py rename to src/Mod/Path/Path/Op/SurfaceSupport.py index 142fa14191..c262c45f33 100644 --- a/src/Mod/Path/PathScripts/PathSurfaceSupport.py +++ b/src/Mod/Path/Path/Op/SurfaceSupport.py @@ -30,8 +30,8 @@ __contributors__ = "" import FreeCAD import Path +import Path.Op.Util as PathOpUtil import PathScripts.PathUtils as PathUtils -import PathScripts.PathOpTools as PathOpTools import math # lazily loaded modules @@ -426,7 +426,7 @@ class PathGeometryGenerator: loop_cnt = 0 def _get_direction(w): - if PathOpTools._isWireClockwise(w): + if PathOpUtil._isWireClockwise(w): return 1 return -1 diff --git a/src/Mod/Path/PathScripts/PathThreadMilling.py b/src/Mod/Path/Path/Op/ThreadMilling.py similarity index 99% rename from src/Mod/Path/PathScripts/PathThreadMilling.py rename to src/Mod/Path/Path/Op/ThreadMilling.py index a8ffa56e5f..fa56a64541 100644 --- a/src/Mod/Path/PathScripts/PathThreadMilling.py +++ b/src/Mod/Path/Path/Op/ThreadMilling.py @@ -24,9 +24,9 @@ from __future__ import print_function import FreeCAD import Path -import PathScripts.PathCircularHoleBase as PathCircularHoleBase +import Path.Op.Base as PathOp +import Path.Op.CircularHoleBase as PathCircularHoleBase import PathScripts.PathGeom as PathGeom -import PathScripts.PathOp as PathOp import Generators.threadmilling_generator as threadmilling import math from PySide.QtCore import QT_TRANSLATE_NOOP diff --git a/src/Mod/Path/PathScripts/PathOpTools.py b/src/Mod/Path/Path/Op/Util.py similarity index 99% rename from src/Mod/Path/PathScripts/PathOpTools.py rename to src/Mod/Path/Path/Op/Util.py index ea7e8cda0e..2f547986a3 100644 --- a/src/Mod/Path/PathScripts/PathOpTools.py +++ b/src/Mod/Path/Path/Op/Util.py @@ -32,7 +32,7 @@ from lazy_loader.lazy_loader import LazyLoader Part = LazyLoader("Part", globals(), "Part") -__title__ = "PathOpTools - Tools for Path operations." +__title__ = "Util - Utility functions for Path operations." __author__ = "sliptonic (Brad Collette)" __url__ = "https://www.freecadweb.org" __doc__ = "Collection of functions used by various Path operations. The functions are specific to Path and the algorithms employed by Path's operations." diff --git a/src/Mod/Path/PathScripts/PathVcarve.py b/src/Mod/Path/Path/Op/Vcarve.py similarity index 99% rename from src/Mod/Path/PathScripts/PathVcarve.py rename to src/Mod/Path/Path/Op/Vcarve.py index 70cdad768c..55f42a48f8 100644 --- a/src/Mod/Path/PathScripts/PathVcarve.py +++ b/src/Mod/Path/Path/Op/Vcarve.py @@ -23,8 +23,8 @@ import FreeCAD import Part import Path -import PathScripts.PathEngraveBase as PathEngraveBase -import PathScripts.PathOp as PathOp +import Path.Op.Base as PathOp +import Path.Op.EngraveBase as PathEngraveBase import PathScripts.PathUtils as PathUtils import PathScripts.PathGeom as PathGeom import PathScripts.PathPreferences as PathPreferences diff --git a/src/Mod/Path/PathScripts/PathWaterline.py b/src/Mod/Path/Path/Op/Waterline.py similarity index 99% rename from src/Mod/Path/PathScripts/PathWaterline.py rename to src/Mod/Path/Path/Op/Waterline.py index ddce93d22a..6f7a0328f4 100644 --- a/src/Mod/Path/PathScripts/PathWaterline.py +++ b/src/Mod/Path/Path/Op/Waterline.py @@ -43,8 +43,8 @@ except ImportError: raise ImportError import Path -import PathScripts.PathOp as PathOp -import PathScripts.PathSurfaceSupport as PathSurfaceSupport +import Path.Op.Base as PathOp +import Path.Op.SurfaceSupport as PathSurfaceSupport import PathScripts.PathUtils as PathUtils import math import time diff --git a/src/Mod/Path/Path/Post/scripts/gcode_pre.py b/src/Mod/Path/Path/Post/scripts/gcode_pre.py index 6cac633bd3..8dc43ec50a 100644 --- a/src/Mod/Path/Path/Post/scripts/gcode_pre.py +++ b/src/Mod/Path/Path/Post/scripts/gcode_pre.py @@ -50,11 +50,11 @@ import re from PySide.QtCore import QT_TRANSLATE_NOOP if FreeCAD.GuiUp: - import PathScripts.PathCustomGui as PathCustomGui + import Path.Op.Gui.Custom as PathCustomGui PathCustom = PathCustomGui.PathCustom else: - import PathScripts.PathCustom as PathCustom + import Path.Op.Custom as PathCustom translate = FreeCAD.Qt.translate diff --git a/src/Mod/Path/Path/Post/scripts/heidenhain_post.py b/src/Mod/Path/Path/Post/scripts/heidenhain_post.py index 1c4e9d113f..e42bda59f1 100644 --- a/src/Mod/Path/Path/Post/scripts/heidenhain_post.py +++ b/src/Mod/Path/Path/Post/scripts/heidenhain_post.py @@ -350,15 +350,15 @@ def export(objectslist, filename, argstring): MACHINE_LAST_POSITION["X"] = 99999 MACHINE_LAST_POSITION["Y"] = 99999 MACHINE_LAST_POSITION["Z"] = 99999 - elif isinstance(obj.Proxy, PathScripts.PathProfileEdges.ObjectProfile): + elif isinstance(obj.Proxy, Path.Op.ProfileEdges.ObjectProfile): Object_Kind = "PROFILE" if LBLIZE_ACTIVE: LBLIZE_STAUS = True - elif isinstance(obj.Proxy, PathScripts.PathMillFace.ObjectFace): + elif isinstance(obj.Proxy, Path.Op.MillFace.ObjectFace): Object_Kind = "FACE" if LBLIZE_ACTIVE: LBLIZE_STAUS = True - elif isinstance(obj.Proxy, PathScripts.PathHelix.ObjectHelix): + elif isinstance(obj.Proxy, Path.Op.Helix.ObjectHelix): Object_Kind = "HELIX" # If used compensated path, store, recompute and diff when asked diff --git a/src/Mod/Path/PathCommands.py b/src/Mod/Path/PathCommands.py index 621133e86b..a61e5ab25d 100644 --- a/src/Mod/Path/PathCommands.py +++ b/src/Mod/Path/PathCommands.py @@ -163,7 +163,7 @@ class _ToggleOperation: for sel in FreeCADGui.Selection.getSelectionEx(): selProxy = Path.Dressup.Utils.baseOp(sel.Object).Proxy if not isinstance( - selProxy, PathScripts.PathOp.ObjectOp + selProxy, Path.Op.Base.ObjectOp ) and not isinstance(selProxy, PathScripts.PathArray.ObjectArray): return False return True @@ -203,7 +203,7 @@ class _CopyOperation: return False try: for sel in FreeCADGui.Selection.getSelectionEx(): - if not isinstance(sel.Object.Proxy, PathScripts.PathOp.ObjectOp): + if not isinstance(sel.Object.Proxy, Path.Op.Base.ObjectOp): return False return True except (IndexError, AttributeError): diff --git a/src/Mod/Path/PathScripts/PathFeatureExtensionsGui.py b/src/Mod/Path/PathScripts/PathFeatureExtensionsGui.py index 8cb8daa639..5d4f9d8e0c 100644 --- a/src/Mod/Path/PathScripts/PathFeatureExtensionsGui.py +++ b/src/Mod/Path/PathScripts/PathFeatureExtensionsGui.py @@ -25,10 +25,10 @@ from pivy import coin import FreeCAD import FreeCADGui import Path +import Path.Op.Gui.Base as PathOpGui import PathScripts.PathFeatureExtensions as FeatureExtensions import PathScripts.PathGeom as PathGeom import PathScripts.PathGui as PathGui -import PathScripts.PathOpGui as PathOpGui # lazily loaded modules from lazy_loader.lazy_loader import LazyLoader diff --git a/src/Mod/Path/PathScripts/PathGuiInit.py b/src/Mod/Path/PathScripts/PathGuiInit.py index 3b34efe08e..36cbdd5e00 100644 --- a/src/Mod/Path/PathScripts/PathGuiInit.py +++ b/src/Mod/Path/PathScripts/PathGuiInit.py @@ -47,36 +47,36 @@ def Startup(): from Path.Dressup.Gui import RampEntry from Path.Dressup.Gui import Tags from Path.Dressup.Gui import ZCorrect + from Path.Op.Gui import Custom + from Path.Op.Gui import Deburr + from Path.Op.Gui import Drilling + from Path.Op.Gui import Engrave + from Path.Op.Gui import Helix + from Path.Op.Gui import MillFace + from Path.Op.Gui import Pocket + from Path.Op.Gui import PocketShape + from Path.Op.Gui import Probe + from Path.Op.Gui import Profile + from Path.Op.Gui import Slot + from Path.Op.Gui import ThreadMilling + from Path.Op.Gui import Vcarve from Path.Post import Command from Path.Tools import Controller from Path.Tools.Gui import Controller from PathScripts import PathArray from PathScripts import PathComment - from PathScripts import PathCustomGui - from PathScripts import PathDeburrGui - from PathScripts import PathDrillingGui - from PathScripts import PathEngraveGui from PathScripts import PathFixture - from PathScripts import PathHelixGui from PathScripts import PathHop from PathScripts import PathInspect - from PathScripts import PathMillFaceGui - from PathScripts import PathPocketGui - from PathScripts import PathPocketShapeGui - from PathScripts import PathProbeGui - from PathScripts import PathProfileGui from PathScripts import PathPropertyBagGui from PathScripts import PathSanity from PathScripts import PathSetupSheetGui from PathScripts import PathSimpleCopy from PathScripts import PathSimulatorGui - from PathScripts import PathSlotGui from PathScripts import PathStop - from PathScripts import PathThreadMillingGui from PathScripts import PathToolLibraryEditor from PathScripts import PathToolLibraryManager from PathScripts import PathUtilsGui - from PathScripts import PathVcarveGui from packaging.version import Version, parse diff --git a/src/Mod/Path/PathScripts/PathProfileContour.py b/src/Mod/Path/PathScripts/PathProfileContour.py index 3d2ee44d6d..56f6c59516 100644 --- a/src/Mod/Path/PathScripts/PathProfileContour.py +++ b/src/Mod/Path/PathScripts/PathProfileContour.py @@ -22,7 +22,7 @@ # * Major modifications: 2020 Russell Johnson * import FreeCAD -import PathScripts.PathProfile as PathProfile +import Path.Op.Profile as PathProfile __title__ = "Path Contour Operation (depreciated)" diff --git a/src/Mod/Path/PathScripts/PathProfileContourGui.py b/src/Mod/Path/PathScripts/PathProfileContourGui.py index 396d44b14a..79655c28bd 100644 --- a/src/Mod/Path/PathScripts/PathProfileContourGui.py +++ b/src/Mod/Path/PathScripts/PathProfileContourGui.py @@ -22,9 +22,10 @@ # * Major modifications: 2020 Russell Johnson * import FreeCAD -import PathScripts.PathOpGui as PathOpGui -import PathScripts.PathProfile as PathProfile -import PathScripts.PathProfileGui as PathProfileGui +import Path +import Path.Op.Gui.Base as PathOpGui +import Path.Op.Gui.Profile as PathProfileGui +import Path.Op.Profile as PathProfile from PySide.QtCore import QT_TRANSLATE_NOOP __title__ = "Path Contour Operation UI (depreciated)" diff --git a/src/Mod/Path/PathScripts/PathProfileEdges.py b/src/Mod/Path/PathScripts/PathProfileEdges.py index 12f487942f..2bbd0a5020 100644 --- a/src/Mod/Path/PathScripts/PathProfileEdges.py +++ b/src/Mod/Path/PathScripts/PathProfileEdges.py @@ -22,7 +22,8 @@ # * Major modifications: 2020 Russell Johnson * import FreeCAD -import PathScripts.PathProfile as PathProfile +import Path +import Path.Op.Profile as PathProfile __title__ = "Path Profile Edges Operation (depreciated)" diff --git a/src/Mod/Path/PathScripts/PathProfileEdgesGui.py b/src/Mod/Path/PathScripts/PathProfileEdgesGui.py index 8a647e6b41..d78bccb7ac 100644 --- a/src/Mod/Path/PathScripts/PathProfileEdgesGui.py +++ b/src/Mod/Path/PathScripts/PathProfileEdgesGui.py @@ -22,9 +22,9 @@ # * Major modifications: 2020 Russell Johnson * import FreeCAD -import PathScripts.PathOpGui as PathOpGui -import PathScripts.PathProfile as PathProfile -import PathScripts.PathProfileGui as PathProfileGui +import Path.Op.Gui.Base as PathOpGui +import Path.Op.Gui.Profile as PathProfileGui +import Path.Op.Profile as PathProfile from PySide.QtCore import QT_TRANSLATE_NOOP __title__ = "Path Profile Edges Operation UI (depreciated)" diff --git a/src/Mod/Path/PathScripts/PathProfileFaces.py b/src/Mod/Path/PathScripts/PathProfileFaces.py index 3de022ff57..14922b3951 100644 --- a/src/Mod/Path/PathScripts/PathProfileFaces.py +++ b/src/Mod/Path/PathScripts/PathProfileFaces.py @@ -23,7 +23,7 @@ # * Major modifications: 2020 Russell Johnson * import FreeCAD -import PathScripts.PathProfile as PathProfile +import Path.Op.Profile as PathProfile __title__ = "Path Profile Faces Operation (depreciated)" diff --git a/src/Mod/Path/PathScripts/PathProfileFacesGui.py b/src/Mod/Path/PathScripts/PathProfileFacesGui.py index 90acd3837a..93d487422b 100644 --- a/src/Mod/Path/PathScripts/PathProfileFacesGui.py +++ b/src/Mod/Path/PathScripts/PathProfileFacesGui.py @@ -22,9 +22,9 @@ # * Major modifications: 2020 Russell Johnson * import FreeCAD -import PathScripts.PathOpGui as PathOpGui -import PathScripts.PathProfile as PathProfile -import PathScripts.PathProfileGui as PathProfileGui +import Path.Op.Gui.Base as PathOpGui +import Path.Op.Gui.Profile as PathProfileGui +import Path.Op.Profile as PathProfile from PySide.QtCore import QT_TRANSLATE_NOOP __title__ = "Path Profile Faces Operation UI (depreciated)" diff --git a/src/Mod/Path/PathScripts/PathSimpleCopy.py b/src/Mod/Path/PathScripts/PathSimpleCopy.py index 62e269408f..b8a21c3443 100644 --- a/src/Mod/Path/PathScripts/PathSimpleCopy.py +++ b/src/Mod/Path/PathScripts/PathSimpleCopy.py @@ -22,6 +22,7 @@ import FreeCAD import FreeCADGui +import Path import PathScripts from PySide.QtCore import QT_TRANSLATE_NOOP @@ -45,7 +46,7 @@ class CommandPathSimpleCopy: return False try: obj = FreeCADGui.Selection.getSelectionEx()[0].Object - return isinstance(obj.Proxy, PathScripts.PathOp.ObjectOp) + return isinstance(obj.Proxy, Path.Op.Base.ObjectOp) except Exception: return False @@ -71,9 +72,9 @@ class CommandPathSimpleCopy: ) FreeCADGui.addModule("PathScripts.PathUtils") - FreeCADGui.addModule("PathScripts.PathCustom") + FreeCADGui.addModule("Path.Op.Custom") FreeCADGui.doCommand( - 'obj = PathScripts.PathCustom.Create("' + 'obj = Path.Op.Custom.Create("' + selection[0].Name + '_SimpleCopy")' ) diff --git a/src/Mod/Path/PathScripts/PathUtils.py b/src/Mod/Path/PathScripts/PathUtils.py index 71f191b154..a6187166fe 100644 --- a/src/Mod/Path/PathScripts/PathUtils.py +++ b/src/Mod/Path/PathScripts/PathUtils.py @@ -24,7 +24,6 @@ import FreeCAD from FreeCAD import Vector from PySide import QtCore -from PySide import QtGui import Path import PathScripts.PathGeom as PathGeom import PathScripts.PathJob as PathJob @@ -64,6 +63,7 @@ def waiting_effects(function): def new_function(*args, **kwargs): if not FreeCAD.GuiUp: return function(*args, **kwargs) + from PySide import QtGui QtGui.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor) res = None try: @@ -299,7 +299,7 @@ def getOffsetArea( ): """Make an offset area of a shape, projected onto a plane. Positive offsets expand the area, negative offsets shrink it. - Inspired by _buildPathArea() from PathAreaOp.py module. Adjustments made + Inspired by _buildPathArea() from Path.Op.Area.py module. Adjustments made based on notes by @sliptonic at this webpage: https://github.com/sliptonic/FreeCAD/wiki/PathArea-notes.""" Path.Log.debug("getOffsetArea()") diff --git a/src/Mod/Path/PathScripts/PathUtilsGui.py b/src/Mod/Path/PathScripts/PathUtilsGui.py index feafdf1f45..5fedf7caee 100644 --- a/src/Mod/Path/PathScripts/PathUtilsGui.py +++ b/src/Mod/Path/PathScripts/PathUtilsGui.py @@ -23,7 +23,7 @@ import FreeCADGui import FreeCAD import Path -import Path.Tools.Controller as PathToolsController +import Path.Tools.Controller as PathToolController import PathGui as PGui # ensure Path/Gui/Resources are loaded import PathScripts.PathJobCmd as PathJobCmd import PathScripts.PathUtils as PathUtils diff --git a/src/Mod/Path/PathTests/TestPathDeburr.py b/src/Mod/Path/PathTests/TestPathDeburr.py index 06fb2d31f7..6da805f125 100644 --- a/src/Mod/Path/PathTests/TestPathDeburr.py +++ b/src/Mod/Path/PathTests/TestPathDeburr.py @@ -21,7 +21,7 @@ # *************************************************************************** import Path -import PathScripts.PathDeburr as PathDeburr +import Path.Op.Deburr as PathDeburr import PathTests.PathTestUtils as PathTestUtils Path.Log.setLevel(Path.Log.Level.INFO, Path.Log.thisModule()) diff --git a/src/Mod/Path/PathTests/TestPathHelix.py b/src/Mod/Path/PathTests/TestPathHelix.py index c5e1fab693..fc630f28bd 100644 --- a/src/Mod/Path/PathTests/TestPathHelix.py +++ b/src/Mod/Path/PathTests/TestPathHelix.py @@ -23,7 +23,7 @@ import Draft import FreeCAD import Path -import PathScripts.PathHelix as PathHelix +import Path.Op.Helix as PathHelix import PathScripts.PathJob as PathJob import PathTests.PathTestUtils as PathTestUtils diff --git a/src/Mod/Path/PathTests/TestPathOpTools.py b/src/Mod/Path/PathTests/TestPathOpUtil.py similarity index 86% rename from src/Mod/Path/PathTests/TestPathOpTools.py rename to src/Mod/Path/PathTests/TestPathOpUtil.py index b3e6e92a9d..28f1e88b9b 100644 --- a/src/Mod/Path/PathTests/TestPathOpTools.py +++ b/src/Mod/Path/PathTests/TestPathOpUtil.py @@ -23,8 +23,8 @@ import FreeCAD import Part import Path +import Path.Op.Util as PathOpUtil import PathScripts.PathGeom as PathGeom -import PathScripts.PathOpTools as PathOpTools import PathTests.PathTestUtils as PathTestUtils import math @@ -85,7 +85,7 @@ def wireMarkers(wire): return pts -class TestPathOpTools(PathTestUtils.PathTestBase): +class TestPathOpUtil(PathTestUtils.PathTestBase): @classmethod def setUpClass(cls): global doc @@ -104,18 +104,18 @@ class TestPathOpTools(PathTestUtils.PathTestBase): pc = Vector(5, 5, 0) pd = Vector(5, 1, 0) - self.assertTrue(PathOpTools.isWireClockwise(makeWire([pa, pb, pc, pd]))) - self.assertFalse(PathOpTools.isWireClockwise(makeWire([pa, pd, pc, pb]))) + self.assertTrue(PathOpUtil.isWireClockwise(makeWire([pa, pb, pc, pd]))) + self.assertFalse(PathOpUtil.isWireClockwise(makeWire([pa, pd, pc, pb]))) def test01(self): """Verify isWireClockwise for single edge circle wires.""" self.assertTrue( - PathOpTools.isWireClockwise( + PathOpUtil.isWireClockwise( Part.makeCircle(5, Vector(1, 2, 3), Vector(0, 0, -1)) ) ) self.assertFalse( - PathOpTools.isWireClockwise( + PathOpUtil.isWireClockwise( Part.makeCircle(5, Vector(1, 2, 3), Vector(0, 0, +1)) ) ) @@ -124,31 +124,31 @@ class TestPathOpTools(PathTestUtils.PathTestBase): """Verify isWireClockwise for two half circle wires.""" e0 = Part.makeCircle(5, Vector(1, 2, 3), Vector(0, 0, -1), 0, 180) e1 = Part.makeCircle(5, Vector(1, 2, 3), Vector(0, 0, -1), 180, 360) - self.assertTrue(PathOpTools.isWireClockwise(Part.Wire([e0, e1]))) + self.assertTrue(PathOpUtil.isWireClockwise(Part.Wire([e0, e1]))) e0 = Part.makeCircle(5, Vector(1, 2, 3), Vector(0, 0, +1), 0, 180) e1 = Part.makeCircle(5, Vector(1, 2, 3), Vector(0, 0, +1), 180, 360) - self.assertFalse(PathOpTools.isWireClockwise(Part.Wire([e0, e1]))) + self.assertFalse(PathOpUtil.isWireClockwise(Part.Wire([e0, e1]))) def test03(self): """Verify isWireClockwise for two edge wires with an arc.""" e0 = Part.makeCircle(5, Vector(1, 2, 3), Vector(0, 0, -1), 0, 180) e2 = Part.makeLine(e0.valueAt(e0.LastParameter), e0.valueAt(e0.FirstParameter)) - self.assertTrue(PathOpTools.isWireClockwise(Part.Wire([e0, e2]))) + self.assertTrue(PathOpUtil.isWireClockwise(Part.Wire([e0, e2]))) e0 = Part.makeCircle(5, Vector(1, 2, 3), Vector(0, 0, +1), 0, 180) e2 = Part.makeLine(e0.valueAt(e0.LastParameter), e0.valueAt(e0.FirstParameter)) - self.assertFalse(PathOpTools.isWireClockwise(Part.Wire([e0, e2]))) + self.assertFalse(PathOpUtil.isWireClockwise(Part.Wire([e0, e2]))) def test04(self): """Verify isWireClockwise for unoriented wires.""" e0 = Part.makeCircle(5, Vector(1, 2, 3), Vector(0, 0, -1), 0, 180) e3 = Part.makeLine(e0.valueAt(e0.FirstParameter), e0.valueAt(e0.LastParameter)) - self.assertTrue(PathOpTools.isWireClockwise(Part.Wire([e0, e3]))) + self.assertTrue(PathOpUtil.isWireClockwise(Part.Wire([e0, e3]))) e0 = Part.makeCircle(5, Vector(1, 2, 3), Vector(0, 0, +1), 0, 180) e3 = Part.makeLine(e0.valueAt(e0.FirstParameter), e0.valueAt(e0.LastParameter)) - self.assertFalse(PathOpTools.isWireClockwise(Part.Wire([e0, e3]))) + self.assertFalse(PathOpUtil.isWireClockwise(Part.Wire([e0, e3]))) def test11(self): """Check offsetting a circular hole.""" @@ -157,13 +157,13 @@ class TestPathOpTools(PathTestUtils.PathTestBase): small = getWireInside(obj) self.assertRoughly(10, small.Edges[0].Curve.Radius) - wire = PathOpTools.offsetWire(small, obj.Shape, 3, True) + wire = PathOpUtil.offsetWire(small, obj.Shape, 3, True) self.assertIsNotNone(wire) self.assertEqual(1, len(wire.Edges)) self.assertRoughly(7, wire.Edges[0].Curve.Radius) self.assertCoincide(Vector(0, 0, 1), wire.Edges[0].Curve.Axis) - wire = PathOpTools.offsetWire(small, obj.Shape, 9.9, True) + wire = PathOpUtil.offsetWire(small, obj.Shape, 9.9, True) self.assertIsNotNone(wire) self.assertEqual(1, len(wire.Edges)) self.assertRoughly(0.1, wire.Edges[0].Curve.Radius) @@ -175,10 +175,10 @@ class TestPathOpTools(PathTestUtils.PathTestBase): small = getWireInside(obj) self.assertRoughly(10, small.Edges[0].Curve.Radius) - wire = PathOpTools.offsetWire(small, obj.Shape, 10, True) + wire = PathOpUtil.offsetWire(small, obj.Shape, 10, True) self.assertIsNone(wire) - wire = PathOpTools.offsetWire(small, obj.Shape, 15, True) + wire = PathOpUtil.offsetWire(small, obj.Shape, 15, True) self.assertIsNone(wire) def test13(self): @@ -188,13 +188,13 @@ class TestPathOpTools(PathTestUtils.PathTestBase): big = getWireOutside(obj) self.assertRoughly(20, big.Edges[0].Curve.Radius) - wire = PathOpTools.offsetWire(big, obj.Shape, 10, True) + wire = PathOpUtil.offsetWire(big, obj.Shape, 10, True) self.assertIsNotNone(wire) self.assertEqual(1, len(wire.Edges)) self.assertRoughly(30, wire.Edges[0].Curve.Radius) self.assertCoincide(Vector(0, 0, -1), wire.Edges[0].Curve.Axis) - wire = PathOpTools.offsetWire(big, obj.Shape, 20, True) + wire = PathOpUtil.offsetWire(big, obj.Shape, 20, True) self.assertIsNotNone(wire) self.assertEqual(1, len(wire.Edges)) self.assertRoughly(40, wire.Edges[0].Curve.Radius) @@ -217,7 +217,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): # make sure there is a placement and I didn't mess up the model self.assertFalse(PathGeom.pointsCoincide(Vector(), w.Edges[0].Placement.Base)) - wire = PathOpTools.offsetWire(w, obj.Shape, 2, True) + wire = PathOpUtil.offsetWire(w, obj.Shape, 2, True) self.assertIsNotNone(wire) self.assertEqual(1, len(wire.Edges)) self.assertRoughly(8, wire.Edges[0].Curve.Radius) @@ -241,7 +241,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): # make sure there is a placement and I didn't mess up the model self.assertFalse(PathGeom.pointsCoincide(Vector(), w.Edges[0].Placement.Base)) - wire = PathOpTools.offsetWire(w, obj.Shape, 2, True) + wire = PathOpUtil.offsetWire(w, obj.Shape, 2, True) self.assertIsNotNone(wire) self.assertEqual(1, len(wire.Edges)) self.assertRoughly(22, wire.Edges[0].Curve.Radius) @@ -267,12 +267,12 @@ class TestPathOpTools(PathTestUtils.PathTestBase): ], ) - wire = PathOpTools.offsetWire(small, obj.Shape, 3, True) + wire = PathOpUtil.offsetWire(small, obj.Shape, 3, True) self.assertIsNotNone(wire) self.assertEqual(3, len(wire.Edges)) self.assertTrue(wire.isClosed()) # for holes processing "forward" means CCW - self.assertFalse(PathOpTools.isWireClockwise(wire)) + self.assertFalse(PathOpUtil.isWireClockwise(wire)) y = 4 # offset works in both directions x = 4 * math.cos(math.pi / 6) self.assertLines( @@ -299,7 +299,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): Vector(0, y, 0), ], ) - wire = PathOpTools.offsetWire(small, obj.Shape, 5, True) + wire = PathOpUtil.offsetWire(small, obj.Shape, 5, True) self.assertIsNone(wire) def test22(self): @@ -321,7 +321,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): ], ) - wire = PathOpTools.offsetWire(big, obj.Shape, 5, True) + wire = PathOpUtil.offsetWire(big, obj.Shape, 5, True) self.assertIsNotNone(wire) self.assertEqual(6, len(wire.Edges)) lastAngle = None @@ -350,13 +350,13 @@ class TestPathOpTools(PathTestUtils.PathTestBase): else: self.assertIsNone("%s: angle=%s" % (type(e.Curve), angle)) lastAngle = angle - self.assertTrue(PathOpTools.isWireClockwise(wire)) + self.assertTrue(PathOpUtil.isWireClockwise(wire)) def test31(self): """Check offsetting a cylinder.""" obj = doc.getObjectsByLabel("circle-cut")[0] - wire = PathOpTools.offsetWire(getWire(obj.Tool), getPositiveShape(obj), 3, True) + wire = PathOpUtil.offsetWire(getWire(obj.Tool), getPositiveShape(obj), 3, True) self.assertEqual(1, len(wire.Edges)) edge = wire.Edges[0] self.assertCoincide(Vector(), edge.Curve.Center) @@ -364,7 +364,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertRoughly(33, edge.Curve.Radius) # the other way around everything's the same except the axis is negative - wire = PathOpTools.offsetWire( + wire = PathOpUtil.offsetWire( getWire(obj.Tool), getPositiveShape(obj), 3, False ) self.assertEqual(1, len(wire.Edges)) @@ -377,7 +377,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): """Check offsetting a box.""" obj = doc.getObjectsByLabel("square-cut")[0] - wire = PathOpTools.offsetWire(getWire(obj.Tool), getPositiveShape(obj), 3, True) + wire = PathOpUtil.offsetWire(getWire(obj.Tool), getPositiveShape(obj), 3, True) self.assertEqual(8, len(wire.Edges)) self.assertEqual(4, len([e for e in wire.Edges if Part.Line == type(e.Curve)])) self.assertEqual( @@ -392,10 +392,10 @@ class TestPathOpTools(PathTestUtils.PathTestBase): if Part.Circle == type(e.Curve): self.assertRoughly(3, e.Curve.Radius) self.assertCoincide(Vector(0, 0, -1), e.Curve.Axis) - self.assertTrue(PathOpTools.isWireClockwise(wire)) + self.assertTrue(PathOpUtil.isWireClockwise(wire)) # change offset orientation - wire = PathOpTools.offsetWire( + wire = PathOpUtil.offsetWire( getWire(obj.Tool), getPositiveShape(obj), 3, False ) self.assertEqual(8, len(wire.Edges)) @@ -412,13 +412,13 @@ class TestPathOpTools(PathTestUtils.PathTestBase): if Part.Circle == type(e.Curve): self.assertRoughly(3, e.Curve.Radius) self.assertCoincide(Vector(0, 0, +1), e.Curve.Axis) - self.assertFalse(PathOpTools.isWireClockwise(wire)) + self.assertFalse(PathOpUtil.isWireClockwise(wire)) def test33(self): """Check offsetting a triangle.""" obj = doc.getObjectsByLabel("triangle-cut")[0] - wire = PathOpTools.offsetWire(getWire(obj.Tool), getPositiveShape(obj), 3, True) + wire = PathOpUtil.offsetWire(getWire(obj.Tool), getPositiveShape(obj), 3, True) self.assertEqual(6, len(wire.Edges)) self.assertEqual(3, len([e for e in wire.Edges if Part.Line == type(e.Curve)])) self.assertEqual( @@ -433,7 +433,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertCoincide(Vector(0, 0, -1), e.Curve.Axis) # change offset orientation - wire = PathOpTools.offsetWire( + wire = PathOpUtil.offsetWire( getWire(obj.Tool), getPositiveShape(obj), 3, False ) self.assertEqual(6, len(wire.Edges)) @@ -452,7 +452,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): """Check offsetting a shape.""" obj = doc.getObjectsByLabel("shape-cut")[0] - wire = PathOpTools.offsetWire(getWire(obj.Tool), getPositiveShape(obj), 3, True) + wire = PathOpUtil.offsetWire(getWire(obj.Tool), getPositiveShape(obj), 3, True) self.assertEqual(6, len(wire.Edges)) self.assertEqual(3, len([e for e in wire.Edges if Part.Line == type(e.Curve)])) self.assertEqual( @@ -468,7 +468,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertCoincide(Vector(0, 0, -1), e.Curve.Axis) # change offset orientation - wire = PathOpTools.offsetWire( + wire = PathOpUtil.offsetWire( getWire(obj.Tool), getPositiveShape(obj), 3, False ) self.assertEqual(6, len(wire.Edges)) @@ -487,7 +487,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): """Check offsetting a cylindrical hole.""" obj = doc.getObjectsByLabel("circle-cut")[0] - wire = PathOpTools.offsetWire(getWire(obj.Tool), getNegativeShape(obj), 3, True) + wire = PathOpUtil.offsetWire(getWire(obj.Tool), getNegativeShape(obj), 3, True) self.assertEqual(1, len(wire.Edges)) edge = wire.Edges[0] self.assertCoincide(Vector(), edge.Curve.Center) @@ -495,7 +495,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertRoughly(27, edge.Curve.Radius) # the other way around everything's the same except the axis is negative - wire = PathOpTools.offsetWire( + wire = PathOpUtil.offsetWire( getWire(obj.Tool), getNegativeShape(obj), 3, False ) self.assertEqual(1, len(wire.Edges)) @@ -508,7 +508,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): """Check offsetting a square hole.""" obj = doc.getObjectsByLabel("square-cut")[0] - wire = PathOpTools.offsetWire(getWire(obj.Tool), getNegativeShape(obj), 3, True) + wire = PathOpUtil.offsetWire(getWire(obj.Tool), getNegativeShape(obj), 3, True) self.assertEqual(4, len(wire.Edges)) self.assertEqual(4, len([e for e in wire.Edges if Part.Line == type(e.Curve)])) for e in wire.Edges: @@ -516,10 +516,10 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertRoughly(34, e.Length) if PathGeom.isRoughly(e.Vertexes[0].Point.y, e.Vertexes[1].Point.y): self.assertRoughly(54, e.Length) - self.assertFalse(PathOpTools.isWireClockwise(wire)) + self.assertFalse(PathOpUtil.isWireClockwise(wire)) # change offset orientation - wire = PathOpTools.offsetWire( + wire = PathOpUtil.offsetWire( getWire(obj.Tool), getNegativeShape(obj), 3, False ) self.assertEqual(4, len(wire.Edges)) @@ -529,35 +529,35 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertRoughly(34, e.Length) if PathGeom.isRoughly(e.Vertexes[0].Point.y, e.Vertexes[1].Point.y): self.assertRoughly(54, e.Length) - self.assertTrue(PathOpTools.isWireClockwise(wire)) + self.assertTrue(PathOpUtil.isWireClockwise(wire)) def test37(self): """Check offsetting a triangular holee.""" obj = doc.getObjectsByLabel("triangle-cut")[0] - wire = PathOpTools.offsetWire(getWire(obj.Tool), getNegativeShape(obj), 3, True) + wire = PathOpUtil.offsetWire(getWire(obj.Tool), getNegativeShape(obj), 3, True) self.assertEqual(3, len(wire.Edges)) self.assertEqual(3, len([e for e in wire.Edges if Part.Line == type(e.Curve)])) length = 48 * math.sin(math.radians(60)) for e in wire.Edges: self.assertRoughly(length, e.Length) - self.assertFalse(PathOpTools.isWireClockwise(wire)) + self.assertFalse(PathOpUtil.isWireClockwise(wire)) # change offset orientation - wire = PathOpTools.offsetWire( + wire = PathOpUtil.offsetWire( getWire(obj.Tool), getNegativeShape(obj), 3, False ) self.assertEqual(3, len(wire.Edges)) self.assertEqual(3, len([e for e in wire.Edges if Part.Line == type(e.Curve)])) for e in wire.Edges: self.assertRoughly(length, e.Length) - self.assertTrue(PathOpTools.isWireClockwise(wire)) + self.assertTrue(PathOpUtil.isWireClockwise(wire)) def test38(self): """Check offsetting a shape hole.""" obj = doc.getObjectsByLabel("shape-cut")[0] - wire = PathOpTools.offsetWire(getWire(obj.Tool), getNegativeShape(obj), 3, True) + wire = PathOpUtil.offsetWire(getWire(obj.Tool), getNegativeShape(obj), 3, True) self.assertEqual(6, len(wire.Edges)) self.assertEqual(3, len([e for e in wire.Edges if Part.Line == type(e.Curve)])) self.assertEqual( @@ -573,7 +573,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertCoincide(Vector(0, 0, +1), e.Curve.Axis) # change offset orientation - wire = PathOpTools.offsetWire( + wire = PathOpUtil.offsetWire( getWire(obj.Tool), getNegativeShape(obj), 3, False ) self.assertEqual(6, len(wire.Edges)) @@ -612,7 +612,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertCoincide(Vector(-x, y, 0), edge.Vertexes[0].Point) self.assertCoincide(Vector(+x, y, 0), edge.Vertexes[1].Point) - wire = PathOpTools.offsetWire(Part.Wire([edge]), obj.Shape, 5, True) + wire = PathOpUtil.offsetWire(Part.Wire([edge]), obj.Shape, 5, True) self.assertEqual(1, len(wire.Edges)) y = y - 5 @@ -621,7 +621,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): # make sure we get the same result even if the edge is oriented the other way edge = PathGeom.flipEdge(edge) - wire = PathOpTools.offsetWire(Part.Wire([edge]), obj.Shape, 5, True) + wire = PathOpUtil.offsetWire(Part.Wire([edge]), obj.Shape, 5, True) self.assertEqual(1, len(wire.Edges)) self.assertCoincide(Vector(+x, y, 0), wire.Edges[0].Vertexes[0].Point) @@ -650,7 +650,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertCoincide(Vector(-x, y, 0), edge.Vertexes[0].Point) self.assertCoincide(Vector(+x, y, 0), edge.Vertexes[1].Point) - wire = PathOpTools.offsetWire(Part.Wire([edge]), obj.Shape, 5, False) + wire = PathOpUtil.offsetWire(Part.Wire([edge]), obj.Shape, 5, False) self.assertEqual(1, len(wire.Edges)) y = y - 5 @@ -659,7 +659,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): # make sure we get the same result on a reversed edge edge = PathGeom.flipEdge(edge) - wire = PathOpTools.offsetWire(Part.Wire([edge]), obj.Shape, 5, False) + wire = PathOpUtil.offsetWire(Part.Wire([edge]), obj.Shape, 5, False) self.assertEqual(1, len(wire.Edges)) self.assertCoincide(Vector(-x, y, 0), wire.Edges[0].Vertexes[0].Point) @@ -682,7 +682,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): ] self.assertEqual(2, len(lEdges)) - wire = PathOpTools.offsetWire(Part.Wire(lEdges), obj.Shape, 2, True) + wire = PathOpUtil.offsetWire(Part.Wire(lEdges), obj.Shape, 2, True) x = length / 2 + 2 * math.cos(math.pi / 6) y = -10 + 2 * math.sin(math.pi / 6) @@ -697,7 +697,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertCoincide(Vector(0, 0, -1), rEdges[0].Curve.Axis) # offset the other way - wire = PathOpTools.offsetWire(Part.Wire(lEdges), obj.Shape, 2, False) + wire = PathOpUtil.offsetWire(Part.Wire(lEdges), obj.Shape, 2, False) self.assertCoincide(Vector(+x, y, 0), wire.Edges[0].Vertexes[0].Point) self.assertCoincide(Vector(-x, y, 0), wire.Edges[-1].Vertexes[1].Point) @@ -726,7 +726,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertEqual(2, len(lEdges)) w = PathGeom.flipWire(Part.Wire(lEdges)) - wire = PathOpTools.offsetWire(w, obj.Shape, 2, True) + wire = PathOpUtil.offsetWire(w, obj.Shape, 2, True) x = length / 2 + 2 * math.cos(math.pi / 6) y = -10 + 2 * math.sin(math.pi / 6) @@ -741,7 +741,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertCoincide(Vector(0, 0, -1), rEdges[0].Curve.Axis) # offset the other way - wire = PathOpTools.offsetWire(Part.Wire(lEdges), obj.Shape, 2, False) + wire = PathOpUtil.offsetWire(Part.Wire(lEdges), obj.Shape, 2, False) self.assertCoincide(Vector(+x, y, 0), wire.Edges[0].Vertexes[0].Point) self.assertCoincide(Vector(-x, y, 0), wire.Edges[-1].Vertexes[1].Point) @@ -776,7 +776,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertCoincide(Vector(-x, y, 0), edge.Vertexes[0].Point) self.assertCoincide(Vector(+x, y, 0), edge.Vertexes[1].Point) - wire = PathOpTools.offsetWire(Part.Wire([edge]), obj.Shape, 2, True) + wire = PathOpUtil.offsetWire(Part.Wire([edge]), obj.Shape, 2, True) self.assertEqual(1, len(wire.Edges)) y = y + 2 @@ -785,7 +785,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): # make sure we get the same result even if the edge is oriented the other way edge = PathGeom.flipEdge(edge) - wire = PathOpTools.offsetWire(Part.Wire([edge]), obj.Shape, 2, True) + wire = PathOpUtil.offsetWire(Part.Wire([edge]), obj.Shape, 2, True) self.assertEqual(1, len(wire.Edges)) self.assertCoincide(Vector(-x, y, 0), wire.Edges[0].Vertexes[0].Point) @@ -815,7 +815,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertCoincide(Vector(-x, y, 0), edge.Vertexes[0].Point) self.assertCoincide(Vector(+x, y, 0), edge.Vertexes[1].Point) - wire = PathOpTools.offsetWire(Part.Wire([edge]), obj.Shape, 2, False) + wire = PathOpUtil.offsetWire(Part.Wire([edge]), obj.Shape, 2, False) self.assertEqual(1, len(wire.Edges)) y = y + 2 @@ -824,7 +824,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): # make sure we get the same result even if the edge is oriented the other way edge = PathGeom.flipEdge(edge) - wire = PathOpTools.offsetWire(Part.Wire([edge]), obj.Shape, 2, False) + wire = PathOpUtil.offsetWire(Part.Wire([edge]), obj.Shape, 2, False) self.assertEqual(1, len(wire.Edges)) self.assertCoincide(Vector(+x, y, 0), wire.Edges[0].Vertexes[0].Point) @@ -845,7 +845,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): ] self.assertEqual(2, len(lEdges)) - wire = PathOpTools.offsetWire(Part.Wire(lEdges), obj.Shape, 2, True) + wire = PathOpUtil.offsetWire(Part.Wire(lEdges), obj.Shape, 2, True) x = length / 2 - 2 * math.cos(math.pi / 6) y = -5 - 2 * math.sin(math.pi / 6) @@ -857,7 +857,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertEqual(0, len(rEdges)) # offset the other way - wire = PathOpTools.offsetWire(Part.Wire(lEdges), obj.Shape, 2, False) + wire = PathOpUtil.offsetWire(Part.Wire(lEdges), obj.Shape, 2, False) self.assertCoincide(Vector(-x, y, 0), wire.Edges[0].Vertexes[0].Point) self.assertCoincide(Vector(+x, y, 0), wire.Edges[-1].Vertexes[1].Point) @@ -883,7 +883,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertEqual(2, len(lEdges)) w = PathGeom.flipWire(Part.Wire(lEdges)) - wire = PathOpTools.offsetWire(w, obj.Shape, 2, True) + wire = PathOpUtil.offsetWire(w, obj.Shape, 2, True) x = length / 2 - 2 * math.cos(math.pi / 6) y = -5 - 2 * math.sin(math.pi / 6) @@ -895,7 +895,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): self.assertEqual(0, len(rEdges)) # offset the other way - wire = PathOpTools.offsetWire(Part.Wire(lEdges), obj.Shape, 2, False) + wire = PathOpUtil.offsetWire(Part.Wire(lEdges), obj.Shape, 2, False) self.assertCoincide(Vector(-x, y, 0), wire.Edges[0].Vertexes[0].Point) self.assertCoincide(Vector(+x, y, 0), wire.Edges[-1].Vertexes[1].Point) @@ -913,7 +913,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase): e0 = Part.Edge(Part.LineSegment(p0, p1)) e1 = Part.Edge(Part.LineSegment(p1, p2)) - wire = PathOpTools.orientWire(Part.Wire([e0, e1])) + wire = PathOpUtil.orientWire(Part.Wire([e0, e1])) wirePts = wireMarkers(wire) self.assertPointsMatch(wirePts, pts) @@ -930,16 +930,16 @@ class TestPathOpTools(PathTestUtils.PathTestBase): e1p = Part.Edge(Part.LineSegment(p1, p2)) e1m = Part.Edge(Part.LineSegment(p2, p1)) - wire = PathOpTools.orientWire(Part.Wire([e0p, e1p])) + wire = PathOpUtil.orientWire(Part.Wire([e0p, e1p])) self.assertPointsMatch(wireMarkers(wire), pts) - wire = PathOpTools.orientWire(Part.Wire([e0p, e1m])) + wire = PathOpUtil.orientWire(Part.Wire([e0p, e1m])) self.assertPointsMatch(wireMarkers(wire), pts) - wire = PathOpTools.orientWire(Part.Wire([e0m, e1p])) + wire = PathOpUtil.orientWire(Part.Wire([e0m, e1p])) self.assertPointsMatch(wireMarkers(wire), pts) - wire = PathOpTools.orientWire(Part.Wire([e0m, e1m])) + wire = PathOpUtil.orientWire(Part.Wire([e0m, e1m])) self.assertPointsMatch(wireMarkers(wire), pts) def test52(self): @@ -957,26 +957,26 @@ class TestPathOpTools(PathTestUtils.PathTestBase): e2p = Part.Edge(Part.LineSegment(p2, p3)) e2m = Part.Edge(Part.LineSegment(p3, p2)) - wire = PathOpTools.orientWire(Part.Wire([e0p, e1p, e2p])) + wire = PathOpUtil.orientWire(Part.Wire([e0p, e1p, e2p])) self.assertPointsMatch(wireMarkers(wire), pts) - wire = PathOpTools.orientWire(Part.Wire([e0p, e1m, e2p])) + wire = PathOpUtil.orientWire(Part.Wire([e0p, e1m, e2p])) self.assertPointsMatch(wireMarkers(wire), pts) - wire = PathOpTools.orientWire(Part.Wire([e0m, e1p, e2p])) + wire = PathOpUtil.orientWire(Part.Wire([e0m, e1p, e2p])) self.assertPointsMatch(wireMarkers(wire), pts) - wire = PathOpTools.orientWire(Part.Wire([e0m, e1m, e2p])) + wire = PathOpUtil.orientWire(Part.Wire([e0m, e1m, e2p])) self.assertPointsMatch(wireMarkers(wire), pts) - wire = PathOpTools.orientWire(Part.Wire([e0p, e1p, e2m])) + wire = PathOpUtil.orientWire(Part.Wire([e0p, e1p, e2m])) self.assertPointsMatch(wireMarkers(wire), pts) - wire = PathOpTools.orientWire(Part.Wire([e0p, e1m, e2m])) + wire = PathOpUtil.orientWire(Part.Wire([e0p, e1m, e2m])) self.assertPointsMatch(wireMarkers(wire), pts) - wire = PathOpTools.orientWire(Part.Wire([e0m, e1p, e2m])) + wire = PathOpUtil.orientWire(Part.Wire([e0m, e1p, e2m])) self.assertPointsMatch(wireMarkers(wire), pts) - wire = PathOpTools.orientWire(Part.Wire([e0m, e1m, e2m])) + wire = PathOpUtil.orientWire(Part.Wire([e0m, e1m, e2m])) self.assertPointsMatch(wireMarkers(wire), pts) diff --git a/src/Mod/Path/PathTests/TestPathThreadMilling.py b/src/Mod/Path/PathTests/TestPathThreadMilling.py index dac113a77b..207cd93604 100644 --- a/src/Mod/Path/PathTests/TestPathThreadMilling.py +++ b/src/Mod/Path/PathTests/TestPathThreadMilling.py @@ -22,7 +22,7 @@ import FreeCAD import PathScripts.PathGeom as PathGeom -import PathScripts.PathThreadMilling as PathThreadMilling +import Path.Op.ThreadMilling as PathThreadMilling import math from PathTests.PathTestUtils import PathTestBase diff --git a/src/Mod/Path/PathTests/TestPathVcarve.py b/src/Mod/Path/PathTests/TestPathVcarve.py index e90bd08f47..09d112590a 100644 --- a/src/Mod/Path/PathTests/TestPathVcarve.py +++ b/src/Mod/Path/PathTests/TestPathVcarve.py @@ -21,9 +21,9 @@ # *************************************************************************** import FreeCAD +import Path.Op.Vcarve as PathVcarve import Path.Tools.Bit as PathToolBit import PathScripts.PathGeom as PathGeom -import PathScripts.PathVcarve as PathVcarve import math from PathTests.PathTestUtils import PathTestBase diff --git a/src/Mod/Path/TestPathApp.py b/src/Mod/Path/TestPathApp.py index 3d0a0606f9..84676268fa 100644 --- a/src/Mod/Path/TestPathApp.py +++ b/src/Mod/Path/TestPathApp.py @@ -36,7 +36,7 @@ from PathTests.TestPathGeom import TestPathGeom from PathTests.TestPathHelpers import TestPathHelpers from PathTests.TestPathHelixGenerator import TestPathHelixGenerator from PathTests.TestPathLog import TestPathLog -from PathTests.TestPathOpTools import TestPathOpTools +from PathTests.TestPathOpUtil import TestPathOpUtil # from PathTests.TestPathPost import TestPathPost from PathTests.TestPathPost import TestPathPostUtils @@ -84,7 +84,7 @@ False if TestPathGeom.__name__ else True False if TestPathHelpers.__name__ else True # False if TestPathHelix.__name__ else True False if TestPathLog.__name__ else True -False if TestPathOpTools.__name__ else True +False if TestPathOpUtil.__name__ else True # False if TestPathPost.__name__ else True False if TestPathPostUtils.__name__ else True False if TestPathPreferences.__name__ else True