diff --git a/src/Mod/Path/PathScripts/Macros/create_tool.py b/src/Mod/Path/PathScripts/Macros/create_tool.py deleted file mode 100644 index bec8f0a4a0..0000000000 --- a/src/Mod/Path/PathScripts/Macros/create_tool.py +++ /dev/null @@ -1,42 +0,0 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2014 Daniel Falck * -#* * -#* 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 * -#* * -#*************************************************************************** - -''' -This macro is used in conjunction with the toolpathparams script to create an object that represents a tool for use in a CNC program. Create a group and then select it- then run the macro. -You will have to edit the parameters inside the Data tab of the tool object. -''' - -import FreeCAD -import FreeCADGui -import PathScripts -import toolpathparams as tp - - -tl = FreeCAD.ActiveDocument.addObject("App::FeaturePython","Tools") - -tp.ToolParams(tl) -tp.ViewProviderToolParams(tl.ViewObject) - -sel = FreeCADGui.Selection.getSelection() -g = sel[0] -g.addObject(tl) -App.activeDocument().recompute() diff --git a/src/Mod/Path/PathScripts/Macros/holefinder.py b/src/Mod/Path/PathScripts/Macros/holefinder.py deleted file mode 100644 index f8ff6f4ece..0000000000 --- a/src/Mod/Path/PathScripts/Macros/holefinder.py +++ /dev/null @@ -1,65 +0,0 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2014 Daniel Falck * -#* * -#* 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 -from FreeCAD import Base -import Part -import Draft -from PySide import QtGui,QtCore -from math import pi -''' -This macro makes a list of holes for drilling from a solid -1. Select a solid object that has holes in it and run the macro -2. It only collects info on holes that are parallel to the Z axis- I don't have a 4 or 5 axis mill at the moment -3. It pulls the center of the hole bounding box and the XLength for it's diameter -4. It will place a list of the holes on the clipboard -5. Uncomment the line that starts with '#Draft.makeLine' and manipulate it, if you want to see lines down the center of each hole. -6. Manipulate the line that starts with 'holelist.append' to make the list fit your own needs- I've put the ZMax at the ZMax of the solid's bounding box -because I want to make sure that my drill tip doesn't collide with anything on the top of the part. YMMV. -''' -def findholes(obj): - facelist = [] - holelist =[] - vz = Base.Vector(0,0,1) - for f in obj.Faces: - if ( round(f.ParameterRange[0], 8)==0.0 ) and ( round(f.ParameterRange[1],8) == round(pi*2, 8) ) : #eliminate flat faces - facelist.append(f) - - for h in facelist: - for w in h.Wires: - for c in w.Edges: - if ( isinstance(c.Curve,Part.LineSegment)): - v0=Base.Vector(c.Vertexes[0].X, c.Vertexes[0].Y, c.Vertexes[0].Z); v1=Base.Vector(c.Vertexes[1].X,c.Vertexes[1].Y, c.Vertexes[1].Z) - if (v1.sub(v0).x == 0) and (v1.sub(v0).y == 0): - lsp = Base.Vector(h.BoundBox.Center.x,h.BoundBox.Center.y,h.BoundBox.ZMax) - lep = Base.Vector(h.BoundBox.Center.x,h.BoundBox.Center.y,h.BoundBox.ZMin) - if obj.isInside(lsp, 0,False) or obj.isInside(lep, 0,False): - pass - else: - Draft.makeLine((h.BoundBox.Center.x,h.BoundBox.Center.y,obj.BoundBox.ZMax ),(h.BoundBox.Center.x,h.BoundBox.Center.y,h.BoundBox.ZMin )) - x =h.BoundBox.Center.x;y=h.BoundBox.Center.y;zmax=obj.BoundBox.ZMax;zmin=h.BoundBox.ZMin;diameter=h.BoundBox.XLength - holelist.append((diameter, x,y,zmax,zmin)) - clipboard = QtGui.QApplication.clipboard() - clipboard.setText(str(holelist)) - -sel=Gui.Selection.getSelection() -obj = sel[0].Shape -findholes(obj) diff --git a/src/Mod/Path/PathScripts/Macros/outer_profile.py b/src/Mod/Path/PathScripts/Macros/outer_profile.py deleted file mode 100644 index 5ebf2b9403..0000000000 --- a/src/Mod/Path/PathScripts/Macros/outer_profile.py +++ /dev/null @@ -1,45 +0,0 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2014 Daniel Falck * -#* * -#* 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 * -#* * -#*************************************************************************** -''' -This macro finds the outside profile of a 3D shape. Right now it just creates wires that represent the shape,but it could be used for finding the outside profile of an object for a toolpath -''' -import FreeCADGui -import DraftGeomUtils -from FreeCAD import Vector -from PathScripts import find_outer_profile as fop - -sel = FreeCADGui.Selection.getSelection()[0] -obj = sel -el = fop.edgelist(obj) -hl = fop.horizontal(el) -connected = DraftGeomUtils.findWires(hl) -goodwires = fop.openFilter(connected) - -outerwires ,innerwires, same = fop.findOutsideWire(goodwires) -#get distance from outerwires Z to bottom of part -zdiff = obj.Shape.BoundBox.ZMin- outerwires.BoundBox.ZMax -outerwires.Placement.move(Vector(0,0,zdiff)) -Part.show(outerwires) - -zupperouter = outerwires -zupperouter.Placement.move(Vector(0,0,obj.Shape.BoundBox.ZMax)) -Part.show(zupperouter)