5:24PM:
Well done
And thanks for such improvements and great features
Attached image is at 0.015mm sample interval and 10% step over on a 3.175mm endmill - a fairly moderate resolution.freman wrote: ↑Wed Feb 12, 2020 9:28 am Here is a stress test model I submitted to sliptonic's CNC-torture collection.
Russ, you may like to throw a 3D over that and look at accuracy where the squares and circles touch. This brought out a bug in one of the 2.5D tools which did not handle a zero dimension correctly.
There should be an unbroken vertical line from the corners of the top square down to the base, touching both cuboids and the cylinder.
LHS: the cutting direction being fully parallel to the edge there, the drop-cutter algorithm cannot distinguish it. Similar to waterline being unable to detect a horizontal plane. So technically yes it's "cutting the whole face at once" because the pattern encompasses the edge.freman wrote: ↑Wed Feb 12, 2020 5:55 pm Thanks, that looks nice. What's happening on the LHS of the base there?
Is it cutting the whole height of that face in one cut or not machining it at all?
This obviously not the ideal tool to cut this part, it would be there all day to get a good resolution finish. But it's an interesting exercise to see how it handles it.
But waterline will correctly cut across a horizontal plane at a suitable speed and will clear the surface won't it ?Similar to waterline being unable to detect a horizontal plane.
Yes, that would be another good test of the algo.If you want a nice finish on this part waterline it.
Code: Select all
<Exception> shapes are not planar
Traceback (most recent call last):
File "/home/gauthier/src/FreeCAD/build/Mod/Path/PathScripts/PathUtils.py", line 59, in new_function
res = function(*args, **kwargs)
File "/home/gauthier/src/FreeCAD/build/Mod/Path/PathScripts/PathOp.py", line 513, in execute
result = self.opExecute(obj) # pylint: disable=assignment-from-no-return
File "/home/gauthier/src/FreeCAD/build/Mod/Path/PathScripts/PathSurface.py", line 324, in opExecute
(faceShapesList, voidShapesList) = self._preProcessModel(JOB, obj)
File "/home/gauthier/src/FreeCAD/build/Mod/Path/PathScripts/PathSurface.py", line 540, in _preProcessModel
clsdAreas = self._extractFaceLoopFeatures(base, shape) # returns all closed loops
File "/home/gauthier/src/FreeCAD/build/Mod/Path/PathScripts/PathSurface.py", line 860, in _extractFaceLoopFeatures
fcShp = self._wireToFlatFaceShape(fc, wire) # complete object
File "/home/gauthier/src/FreeCAD/build/Mod/Path/PathScripts/PathSurface.py", line 899, in _wireToFlatFaceShape
env = PathUtils.getEnvelope(NW.Shape, depthparams=self.depthParams)
File "/home/gauthier/src/FreeCAD/build/Mod/Path/PathScripts/PathUtils.py", line 313, in getEnvelope
sec = area.makeSections(heights=[0.0], project=True)[0].getShape()
<class 'ValueError'>: {'sclassname': 'N4Base10ValueErrorE', 'sErrMsg': 'shapes are not planar', 'sfile': '', 'iline': 0, 'sfunction': '', 'swhat': 'shapes are not planar', 'btranslatable': False, 'breported': True}
6.9e-08 <App> Document.cpp(3462): Failed to recompute MouleCabane3#Surface: {'sclassname': 'N4Base10ValueErrorE', 'sErrMsg': 'shapes are not planar', 'sfile': '', 'iline': 0, 'sfunction': '', 'swhat': 'shapes are not planar', 'btranslatable': False, 'breported': True}
Recompute failed! Please check report view.