3D Surface - Face Selection (New feature) [Merged]

Here's the place for discussion related to CAM/CNC and the development of the Path module.
RatonLaveur
Posts: 692
Joined: Wed Mar 27, 2019 10:45 am

Re: 3D Surface - Face Selection (New feature) [Merged]

Postby RatonLaveur » Sat Mar 28, 2020 12:03 am

Russ4262 wrote:
Fri Mar 27, 2020 8:09 pm
EDIT: I deleted my `Default Tool` rant.
I opened your file and added a 2mm endmill with tool controller to the Job. I selected for the Surface operation and the operation then produces a correct path, sans erreur. ;) Toggling the tool controller back to `Default Tool` re-produces the error you report.

I guess I need to track down the specific erroneous or missing object value within `Default Tool` that is causing an error in some operations.
EDIT: I'll just throw a check in the error code you reported to check for the math error produced. Guess I should be smarter, not FreeCAD!
Actually, having seen the answer you gave earlier about the unexpected behavior of the default tool I created a proper end-mill with a tool controller, for some reason the problem persist. I feel more confidence due to the fact you were able to reproduce the problem on your side and solve it, as well as look into the math issue. Nevertheless, can't figure out what I'm doing differently than you to make it not work.
Russ4262
Posts: 440
Joined: Sat Jun 30, 2018 3:22 pm

Re: 3D Surface - Face Selection (New feature) [Merged]

Postby Russ4262 » Sat Mar 28, 2020 12:35 am

RatonLaveur wrote:
Sat Mar 28, 2020 12:03 am
...

Actually, having seen the answer you gave earlier about the unexpected behavior of the default tool I created a proper end-mill with a tool controller, for some reason the problem persist. I feel more confidence due to the fact you were able to reproduce the problem on your side and solve it, as well as look into the math issue. Nevertheless, can't figure out what I'm doing differently than you to make it not work.
Looking at the math, it appeared to be a unique combination of cutter diameter and stepover for the first circle in the Circular patterns. It should be fixed in the split PR.

What are your tool diameter and stepover values?

Russ
RatonLaveur
Posts: 692
Joined: Wed Mar 27, 2019 10:45 am

Re: 3D Surface - Face Selection (New feature) [Merged]

Postby RatonLaveur » Sat Mar 28, 2020 12:46 am

I'm always at 100% when troubleshooting Surface (computing time) and i tried a 1mm and 2mm endmill.

And there we go
ToolController_Stepover90_NoDefltTool.png
ToolController_Stepover90_NoDefltTool.png (262.94 KiB) Viewed 341 times
The combination of the following solved the particular issue:

- Not using default tool (i could reproduce your issue)
- Using a proper tool controler (2mm endmill)
- Switching from 100 to 90% stepover

Another issue regarding step-over with circular, is gaps between lines appearing depending on the combination of tool and stepover. It seems that sample interval and mesh deflection do not seem to have a strong impact on the issue.
Circular_stepover20.png
Circular_stepover20.png (336.67 KiB) Viewed 296 times
Circular_stepover10.png
Circular_stepover10.png (357.37 KiB) Viewed 296 times
Finding a gapless set of parameters is rather tedious.

Another remark: it seems you have worked-in a new parameter for translation into G2/G3 arcs of colinear segments. Unfortunately on that file i have so far been unable to make such conversion appear. Which may be due, again, to my lack of understanding. I tried at different gap parameters from 1 micron to 1 mm but I'm not quite sure it has an effect.
giedrius9999
Posts: 23
Joined: Tue Apr 17, 2018 12:57 pm

Re: 3D Surface - Face Selection (New feature) [Merged]

Postby giedrius9999 » Mon Apr 06, 2020 8:12 am

It works well...many thanks!!!
User avatar
freman
Posts: 951
Joined: Tue Nov 27, 2018 10:30 pm

Re: 3D Surface - Face Selection (New feature)

Postby freman » Mon Apr 06, 2020 8:45 am

sliptonic wrote:
Thu Mar 19, 2020 3:59 pm
Reminder. 3D surface can be very CPU intensive and little changes in setting can make a big difference.

Several settings are exposed but NOT in the task panel. Linear and Angular Deflection, Step over, and Sample Interval will make big differences.
Unfortunately it auto-recomputes if you change each one. So you might want to disable the op, make multiple changes, then re-enable.

As others have noted, start with simple models. I messed around with surfacing one face on this skull and it took several hours to complete. Down to 30 minutes after adjusting some parameters. Still learning...

skull.png
I did not realise there was an auto op to turn off, thanks. That is a problem.

Also when making changes in the dialogue UI , if you press Apply and get what you want, when you OK out it does the whole damned thing again even though nothing has changed. I'm sure that's a detail which will get fixed but it good to avoid this if you are waiting 30min each time !

probably best to use OK instead of Apply and if it needs further modification, open the dialogue again.
grzgrz
Posts: 2
Joined: Sun May 26, 2019 2:02 pm

Re: 3D Surface - Face Selection (New feature) [Merged]

Postby grzgrz » Mon Apr 06, 2020 10:37 am

Hi, has anyone else experienced issues with rotational paths with the recent merged script versions? I usually got proper 4th axis paths using some older FreeCAD versions with manually replaced Path scripts, but now am getting errors like these:

Code: Select all

Begin 3D Surface operation...
<Path.Area> Area.cpp(1315): project failed
<Path.Area> Area.cpp(1457): empty projection
PathSurface.ERROR: try: PathUtils.getEnvelope() failed.
list index out of range
<Path.Area> Area.cpp(1315): project failed
<Path.Area> Area.cpp(1457): empty projection
PathSurface.ERROR: try: PathUtils.getEnvelope() failed.
list index out of range
PathSurface.WARNING: Final Depth might need to be lower. Internal features detected in Face1.
PathSurface.ERROR:  -Failed to create offset face.
Traceback (most recent call last):
  File "C:\FreeCAD_0.19.20391_x64_LP_12.1.2_PY3QT5-WinVS2015\Mod\Path\PathScripts\PathUtils.py", line 59, in new_function
    res = function(*args, **kwargs)
  File "C:\FreeCAD_0.19.20391_x64_LP_12.1.2_PY3QT5-WinVS2015\Mod\Path\PathScripts\PathOp.py", line 513, in execute
    result = self.opExecute(obj) # pylint: disable=assignment-from-no-return
  File "C:\FreeCAD_0.19.20391_x64_LP_12.1.2_PY3QT5-WinVS2015\Mod\Path\PathScripts\PathSurface.py", line 535, in opExecute
    CMDS.extend(self._processCutAreas(JOB, obj, m, FACES[m], VOIDS[m]))
  File "C:\FreeCAD_0.19.20391_x64_LP_12.1.2_PY3QT5-WinVS2015\Mod\Path\PathScripts\PathSurface.py", line 1563, in _processCutAreas
    final.extend(self._processRotationalOp(obj, base, COMP))
  File "C:\FreeCAD_0.19.20391_x64_LP_12.1.2_PY3QT5-WinVS2015\Mod\Path\PathScripts\PathSurface.py", line 3069, in _processRotationalOp
    base = JOB.Model.Group[mdlIdx]
<class 'TypeError'>: list indices must be integers or slices, not Part.Compound
608.498 <App> Document.cpp(3715): Failed to recompute Unnamed#Surface: list indices must be integers or slices, not Part.Compound
Recompute failed! Please check report view.
That's what happens when working with a simple cylinder oriented along the Y axis, but with more complex solids the results are similar.

OS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.20391 (Git)
Build type: Release
Branch: master
Hash: da92b8c242ead8cc106f480aa2eed0bac2edf10a
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: Polish/Poland (pl_PL)
Russ4262
Posts: 440
Joined: Sat Jun 30, 2018 3:22 pm

Re: 3D Surface - Face Selection (New feature) [Merged]

Postby Russ4262 » Mon Apr 06, 2020 7:14 pm

I will give it a look. I'm pretty sure it is the recent selected faces upgrade with which it is incompatible. Shouldn't be much to remove that process, and revert the rotational scan type back to previous version based directly on the model.

Russ
memfis
Posts: 184
Joined: Tue Nov 15, 2016 7:58 pm

Re: 3D Surface - Face Selection (New feature) [Merged]

Postby memfis » Tue Apr 07, 2020 10:05 am

I have a file where I try 3-d updates. And I can't get the whole surface curve to be fully processed.

What am I doing wrong?

OS: Arch Linux (GNOME/gnome)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.20406 (Git) AppImage
Build type: Release
Branch: master
Hash: bb45a2b01f9aafeae00cdf60c87b43fc36ad28ad
Python version: 3.8.2
Qt version: 5.12.5
Coin version: 4.0.0
OCC version: 7.4.0
Locale: Russian/Russia (ru_RU)
Attachments
проба_3д_фрезеровка.FCStd
(32.9 KiB) Downloaded 2 times
Снимок экрана от 2020-04-07 12-58-58.png
Снимок экрана от 2020-04-07 12-58-58.png (223.48 KiB) Viewed 189 times
herbk
Posts: 1792
Joined: Mon Nov 03, 2014 3:45 pm
Location: Windsbach, Bavarya (Germany)

Re: 3D Surface - Face Selection (New feature) [Merged]

Postby herbk » Tue Apr 07, 2020 11:14 am

I can confirm that.
3D_surface2.jpg
3D_surface2.jpg (25.99 KiB) Viewed 176 times
Also it's not posible to change the Cutter Direction and the BoundBox extra offset, - both worked at FC 0.19.20310

OS: openSUSE Leap 15.1 (KDE//usr/share/xsessions/plasma5)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.20406 (Git) AppImage
Build type: Release
Branch: master
Hash: bb45a2b01f9aafeae00cdf60c87b43fc36ad28ad
Python version: 3.8.2
Qt version: 5.12.5
Coin version: 4.0.0
OCC version: 7.4.0
Locale: German/Germany (de_DE)
Gruß Herbert
Russ4262
Posts: 440
Joined: Sat Jun 30, 2018 3:22 pm

Re: 3D Surface - Face Selection (New feature) [Merged]

Postby Russ4262 » Thu Apr 09, 2020 10:12 pm

memfis wrote:
Tue Apr 07, 2020 10:05 am
I have a file where I try 3-d updates. And I can't get the whole surface curve to be fully processed.
What am I doing wrong?
...
Reference the new properties and their brief descriptions here. Specifically, you need to look at `BoundaryEnforcement` and `BoundaryEnforcement`.

herbk wrote:
Tue Apr 07, 2020 11:14 am
...

Also it's not posible to change the Cutter Direction and the BoundBox extra offset, - both worked at FC 0.19.20310
...
If you are not doing a Rotational scan:
CutterDirection and BoundBoxExtraOffset are only available with `ScanType` = `Rotational`, otherwise use `BoundaryAdjustment` in place of BoundBoxExtraOffset, and use CutPatternAngle in place of CutterDirection.

Russ