Separate 3D Surface and Waterline (new feature) [Merged]

Here's the place for discussion related to CAM/CNC and the development of the Path module.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
Russ4262
Posts: 941
Joined: Sat Jun 30, 2018 3:22 pm
Location: Oklahoma
Contact:

Separate 3D Surface and Waterline (new feature) [Merged]

Post by Russ4262 »

Afternoon fellow fabulous fain FreeCAD forum frequenters for fantastic finishes!
Fow foes four fay?

Okay, okay... I'll forgo the FUN.

Anyhow, I wanted to post public notice of the desire to, and PR in place, to split the `3D Surface` and `Waterline` operations into two independent operations. Doing so will provide a few benefits:
  • shink the enormous PathSurface module,
  • provide for easier code maintenance,
  • make access to the Waterline operation a little easier,
  • allow for further development of the two operations independently,
  • pave the way for new PathWB improvements on the solar horizon, and
  • greatly irritate COVID-19 to no end, expressing just a fraction(set to 3 decimal places) of our frustration in a nice PathWB conventional-offset-pattern-with-holding-tag-lead-in-and-out-dressups-using-a-6mm-4-flutted-up-cut-carbide-endmill kind of way.
... It might just make the world a better place, but that might be pushing it a bit much. :)

As of this posting, the PR, [Path] Separate 3D Surface and Waterline into independent operations [HOLD] #3247, is not ready for merger.

Update 2020-03-26 18:45 CST - I closed above PR and created a new one ready for review, [Path] Split 3D Surface and Waterline into independent operations #3268. Thanks
Update 2020-04-01 20:09 CST - Split PR was merged into 0.19_pre.

Please post comments and suggestions here for public discussion. Those in favor say `Yea`. All those opposed, say `Nay`. You will be allotted the set amount of time by our moderator, @ChrisB, to present your arguments. If it please the PathWB committee, I make a motion to proceed with the opening arguments.

Russ
Last edited by Russ4262 on Thu Apr 02, 2020 1:12 am, edited 2 times in total.
chrisb
Veteran
Posts: 53935
Joined: Tue Mar 17, 2015 9:14 am

Re: Separate 3D Surface and Waterline (new feature)

Post by chrisb »

Russ4262 wrote: Mon Mar 23, 2020 5:44 pm Afternoon fellow fabulous fain FreeCAD forum frequenters for fantastic finishes!
Funny :lol:
As of this posting, the PR, [Path] Separate 3D Surface and Waterline into independent operations [HOLD] #3247, is not ready for merger.
Is this planned for 0.19?
If it is an 0.20 task, the I would vote for moving 3D surface now that it is matured from "experimental" to "normal" - neglecting that it is exceptional to be normal.
- OCL is included in the distros (not sure in all?)
- Code is well enough tested
- Gui is matured.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
RatonLaveur
Posts: 991
Joined: Wed Mar 27, 2019 10:45 am

Re: Separate 3D Surface and Waterline (new feature)

Post by RatonLaveur »

Fantastic fellow this Fuss ferson.
Obfiously hif ftrain of COFID 19 if fifferent from others and leadf to unufual fide effects.
Fhat feing faid, i positifely say Fay! (and now it's tricky isn't it?)

\Normal Mode

I agree with the split whole heartedly, if only because at the moment one needs to first compute a dropcutter op and then switch it to waterline in data. Also because as Russ says, these two ops are different and if that makes the code more manageable, more power to you.

I also agree with Chris' assessment that 3D surface is mature enough to go crash random people's computer the world over. If it wasn't for the sometimes ungodly computing time and the crashes, the OP in itself has full GUI, full capabilities and we even have an example of a user's usage of the useful tool (freman). So Yay here too.
Russ4262
Posts: 941
Joined: Sat Jun 30, 2018 3:22 pm
Location: Oklahoma
Contact:

Re: Separate 3D Surface and Waterline (new feature)

Post by Russ4262 »

Evening FreeCADians, FreeCADonians, FreeCADers, FreeCADans, or just are we FreeCs… Haha!

Anyhow, I just wanted to throw some imagery your way that will be included in the PR for the split of 3D Surface and Waterline. I took a little time to address the GUI side since the last 3D Surface update added a lot. Here are the proposed (in the PR) task panels for the two operations. I tried to keep them simple.

Thanks for the support and feedback.

High five,
Russ
Attachments
Proposed task panel for independent Waterline operation
Proposed task panel for independent Waterline operation
Task_Panel-Waterline-1.png (12.33 KiB) Viewed 2637 times
Proposed task panel for independent 3D Surface
Proposed task panel for independent 3D Surface
Task_Panel-3D_Surface-1.png (16.86 KiB) Viewed 2637 times
Russ4262
Posts: 941
Joined: Sat Jun 30, 2018 3:22 pm
Location: Oklahoma
Contact:

Re: Separate 3D Surface and Waterline (new feature)

Post by Russ4262 »

chrisb wrote: Mon Mar 23, 2020 6:53 pm Is this planned for 0.19?
If it is an 0.20 task, the I would vote for moving 3D surface now that it is matured from "experimental" to "normal"...
It might happen in 0.19. There is time. @ETrombly and I have some updates for 3D Surface either way. Also, I've got Waterline 2.0 in the works that is not OCL based - this will make @RatonLaveur's mouth water like a slab of baby back ribs with fresh corn-on-the-cob at a Super Bowl tailgate party. Okay, maybe not that much due to a few bugs to be worked out, but I think he'll want to stay late when he sees it just to use the laser and FreeCAD. I plan to start a Waterline upgrade topic after the split.

As for moving 3D Surface to "normal", that will literally be about a three or four line code change - so, easy to do. I think those who hesitate to move it to "normal" might have concerns about:
  • the OCL dependency,
  • the lack of true mass testing and feedback,
  • or the additional demand to the greater PathWB GUI as a whole.
I'm cool either way. It's in FreeCAD, and it's available for path generation!

I'm just glad to be lounging at the FreeCAD pool, sippin' a twin fluted raspberry iced tea in one hand, watching the chips fly, while wearing my tinted safety glasses and spider-silk-lined ear protection, with the remote cutoff switch in the other hand.

Nope. The reality is that my CNC is buried in the garage. LOL.

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

Re: Separate 3D Surface and Waterline (new feature)

Post by RatonLaveur »

Oh wow. OCLless 3D algo, are you reworking from scratch? using JoshM groundwork or another dependency?

indeed my mouth waters as I am just now commissioning my new laptop with a little more ooomph under the hood. Dowloading 0.19.20276 as we speak. I'm looking forwards to what comes next.

I don't believe anyone would shun the PathWB GUI. It one of those things that FreeCAD has that nothing else at this price point really has.
As for mass testing, I feel like mass testing the 3D paths is harder specifically because of the idiosyncrasies involved in making it work, i.e. create and change a boolean parameter. make sure the dependency is in. adding the updated files you provide from several posts (although I think the quality of your post releases is top notch, with the OP always up to date). The whole combined actually means none of my colleagues have bitten so far. The use the PathWB just fine. But not 3D surface.

Also you need to unbury you CNC machine. Depending what it is you may well have fun with it, break a few tools and why not make a few bucks too...
Russ4262
Posts: 941
Joined: Sat Jun 30, 2018 3:22 pm
Location: Oklahoma
Contact:

Re: Separate 3D Surface and Waterline (new feature) [Merged]

Post by Russ4262 »

Evening All.
This PR was recently by @Sliptonic into FC master for inclusion in the 0.19 release. Nightly builds have not been updated --as of this posting-- to include the split and associated bug fixes. You will need to build from source if you wish to have access for the short-term.

@RatonLaveur, I was able to get Waterline 2.0, version 1.0 into the same split PR, so you should have something with which to work. It has a few additional features, like clearing at each layer and clear the bottom layer only. This might help you achieve some of the milling you have been working on.

Big thanks to @Sliptonic for reviewing and overseeing all the PathWB PRs. It is a big task and you handle it quite well. I tip my hat to you, Sir.


Cordially,
Russell
RatonLaveur
Posts: 991
Joined: Wed Mar 27, 2019 10:45 am

Re: Separate 3D Surface and Waterline (new feature) [Merged]

Post by RatonLaveur »

Well done to the team! There are really exciting things!

As soon as the nightly build is up, I'll give it a shot.
User avatar
roerich_64
Veteran
Posts: 1465
Joined: Thu May 21, 2015 7:00 pm
Location: Ostfriesland

Re: Separate 3D Surface and Waterline (new feature) [Merged]

Post by roerich_64 »

Hello Russel,

great and wonderful job!
Now here a little cosmetic feedback ;)

i have tested the Waterline and the 3D-Surface on this:
Waterline_I.jpg
Waterline_I.jpg (450.94 KiB) Viewed 2394 times
Surface_I.jpg
Surface_I.jpg (408.22 KiB) Viewed 2394 times
with

Code: Select all

OS: Linux Mint 19.3 (X-Cinnamon/cinnamon)
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)
On both 3D Surface and Waterline, i have to set 'Linear Deflection' from 0.00 to 0.01 to get a short computing time.
The standard value of 'linear deflection' should be 0.01 in order to have a short computing time from the beginning.
(It safes many frustrations of waiting :lol:)

Bests Walter
Die Liebe wird siegen, denn sie ist unzerstörbar :) ;)
chrisb
Veteran
Posts: 53935
Joined: Tue Mar 17, 2015 9:14 am

Re: Separate 3D Surface and Waterline (new feature) [Merged]

Post by chrisb »

Perhaps it is sensible to use Preferences->Path->DefaultGeometryTolerance as a default value. A woodworker may not need the high precision of 1/1000 while for some mechanical models this can well be a requirement.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Post Reply