I can take a look at #2 on the list. I know the last PR with an update to Profile Faces included fixes for the `Process Perimeter` toggle. I suppose the changes be incomplete, or are not producing the intended or purposed effect. I'll check it out.nahshon wrote: ↑Fri Jun 28, 2019 5:30 pmI'm trying to use Profile Faces. I have simple extrusion with some round holes.
1. Some optimization was introduced in commit 423830ba8c5ece01055334e50be703dcf13c79a4 (Sabin Iacob, March 4 2019). Its really reducing the processing time, but in some cases it is processing the outside perimeter before the holes.
Before the change, each face had its holes processed before the perimeter.
(There were still some limitations that I will explain later in a reply to this post).
2. The Process Perimeter flag is not respected. Perimeters are always processed. That started with commit 4c69b48dc67680ac1c350fed4b1f154c730a7562 (Russell Johnson, June 11 2019). I understand it's still a work in progress and I still have to learn the excellent new features that Russ is adding.
If you wrap these in the commit tag they will automagically link to the commit on Github.
Code: Select all
OS: "Fedora release 28 (Twenty Eight)" (KDE//usr/share/xsessions/plasma) Word size of OS: 64-bit Word size of FreeCAD: 64-bit Version: 0.19.17167 (Git) Build type: Debug Branch: master Hash: 9e174f1115ebd312c3245b2b4a364de798f00e62 Python version: 2.7.15 Qt version: 4.8.7 Coin version: 3.1.3 OCC version: 6.9.1.oce-0.18 Locale: English/UnitedStates (en_US)
Thanks for the tip! Updating my post.Kunda1 wrote: ↑Sat Jun 29, 2019 3:00 pmIf you wrap these in the commit tag they will automagically link to the commit on Github.
git commit 423830ba8c5ece01055334e50be703dcf13c79a4
You can also shorten them
git commit 423830ba8c5
I wrote earlier about wanting to process the perimeter after any holes. In the more general case, we may optimize material usage by placing small parts into holes in larger parts. I created this Yin-Yang example to show my idea. The operation consists of 10 closed paths. We can cut this with a CNC router, Laser, Plasma or Drag-knife. In all cases we want to start with the inner paths and proceed to outer part only after the parts that are contained in them are done.
I loaded your file and ran with a recent script prior to the `Else` block.nahshon wrote: ↑Sat Jun 29, 2019 3:39 pmI want to cut a small part with holes out of 3 mm acrylic board. Using 1.5mm EndMill. To work around the other problem I had to separate the holes and the perimeter to two operations, where I hit this problem.
In PathProfileFaces.py near line 252 you added the else part for the 'if obj.processPerimeter:'.
Code: Select all
PathJobGui.ERROR: 'NoneType' object is not iterable Traceback (most recent call last): File "/home/itai/Freecad-src/build/Mod/Path/PathScripts/PathJobGui.py", line 1273, in Create obj.ViewObject.Proxy.editObject(obj.Stock) File "/home/itai/Freecad-src/build/Mod/Path/PathScripts/PathJobGui.py", line 175, in editObject return self.openTaskPanel('Stock') File "/home/itai/Freecad-src/build/Mod/Path/PathScripts/PathJobGui.py", line 155, in openTaskPanel self.taskPanel = TaskPanel(self.vobj, self.deleteObjectsOnReject()) File "/home/itai/Freecad-src/build/Mod/Path/PathScripts/PathJobGui.py", line 529, in __init__ self.template = PathJobDlg.JobTemplateExport(self.obj, self.form.jobBox.widget(1)) File "/home/itai/Freecad-src/build/Mod/Path/PathScripts/PathJobDlg.py", line 289, in __init__ self.updateUI() File "/home/itai/Freecad-src/build/Mod/Path/PathScripts/PathJobDlg.py", line 323, in updateUI opsWithSettings = job.SetupSheet.Proxy.operationsWithSettings() File "/home/itai/Freecad-src/build/Mod/Path/PathScripts/PathSetupSheet.py", line 248, in operationsWithSettings for prop in value.registeredPropertyNames(name): File "/home/itai/Freecad-src/build/Mod/Path/PathScripts/PathSetupSheet.py", line 278, in registeredPropertyNames return [OpPropertyName(name, prop) for prop in self.properties()] TypeError: 'NoneType' object is not iterable