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

Here's the place for discussion related to CAM/CNC and the development of the Path module.
Russ4262
Posts: 373
Joined: Sat Jun 30, 2018 3:22 pm

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

Postby Russ4262 » Fri Jan 24, 2020 1:55 am

Evening, Freman.
Hope your day has been a pleasant one.
freman wrote:
Fri Jan 24, 2020 1:01 am
In terms of suggestions, I'd like to see some way of having more control over cut direction, like zig-zag without the zag. ;) If the tool would lift and come back so it always cuts in the same direction that would work on a lot of shapes and give a nicer more uniform finish.
This is available and correct in the PR version being tested here. Choose the `Line` option for `CutPattern`. The `CutMode` options of `Conventional` and `Climb` will be observed. This line pattern will give you the same-direction cut, lifting after each pass and returning for another. In the current 0.19 daily, I don't think these features are correctly observed. I didn't get them correct or finished way back when I made the PR for the current version.

Have a peaceful night.
Russell
Attachments
jet_1-test.FCStd
Source file for Line cut pattern using proposed 3D Surface, version 6a
(434.81 KiB) Downloaded 3 times
tmp_Jet-Line-pattern.png
tmp_Jet-Line-pattern.png (246.01 KiB) Viewed 384 times
Russ4262
Posts: 373
Joined: Sat Jun 30, 2018 3:22 pm

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

Postby Russ4262 » Sun Jan 26, 2020 12:19 am

Happy Saturday users of our most prized FreeCAD.

Today brings more good news for the looming merger of the active PR to update the PathSurface module, 3D Surface. I just finished pushing and rebasing the PR to version 7a. The latest improvement is the addition of a `Circular` cut pattern, per the request of @Freman. A few other minor improvements/changes were made - not really bugs, just cleaning of code and changing some default settings for new features.

I'd like to work with @mlampert and @sliptonic to revisit this module before or after merger to make some code optimizations. I am sure the implementations I am using to achieve certain outcomes can be simplified a bit. Currently the proposed changes in this PR seem stable and reliable in the simple testing I have done

Thanks for the support everyone!

Cheers,
Russ
Attachments
3D_Surface-Version 7a - Circular.png
New `Circular` cut pattern added
3D_Surface-Version 7a - Circular.png (253.25 KiB) Viewed 355 times
User avatar
freman
Posts: 939
Joined: Tue Nov 27, 2018 10:30 pm

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

Postby freman » Sun Jan 26, 2020 3:21 am

Thanks for picking up on my suggestion, that hemispherical path looks very nice. I'll probably wait until this gets merged before testing since I'm trying to get on with some h/w improvements. Thanks for the effort, this looks like significant improvements to the 3D capabilities of FreeCAD.
Russ4262
Posts: 373
Joined: Sat Jun 30, 2018 3:22 pm

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

Postby Russ4262 » Sun Jan 26, 2020 4:52 am

Looking at the last pic posted, I would like to go back and insert a basic optimization algorithm to keep the cutter down when transitioning from one complete circle to another complete circle. This would save time on the CNC and maybe make a little nicer cut.

Ahhhh… So much that could be done. Oh well, it will be better than it is now. One step/PR at a time.

Russ

Update: Now that I think about it, I know a very specific section of the code where the circles are converted to line segments and identified as complete loops/circles or partial loops(arcs). I can add a few line there to combine data from on complete loop with the next data set if it is also a complete loop - and continue this until an arc is identified. ...At least this is the first solution to pop in my head.
chrisb
Posts: 22526
Joined: Tue Mar 17, 2015 9:14 am

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

Postby chrisb » Sun Jan 26, 2020 6:29 am

This is again a step forward for FreeCAD Path!
User avatar
freman
Posts: 939
Joined: Tue Nov 27, 2018 10:30 pm

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

Postby freman » Sun Jan 26, 2020 2:04 pm

I can add a few line there to combine data from on complete loop with the next data set if it is also a complete loop - and continue this until an arc is identified.
It's small detail on finish but I think the link move probably needs to be : move x ; move z. I'm not sure what you had in mind but if you move x,z it will be closer to the modelled surface but will stand out more against the general staircase pattern of circles. Avoiding the full retraction would be great since this will probably happen at the slow z cut speed and be very detrimental to machine time.

You will also recall the recent discussion on reversal and preference for starting in the centre. Does that have some relevance here?
https://forum.freecadweb.org/viewtopic. ... ead#unread

Have a good one.
Russ4262
Posts: 373
Joined: Sat Jun 30, 2018 3:22 pm

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

Postby Russ4262 » Sun Jan 26, 2020 8:16 pm

Afternoon, Sir.
Thanks for the point-er.
freman wrote:
Sun Jan 26, 2020 2:04 pm
It's small detail on finish but I think the link move probably needs to be : move x ; move z. I'm not sure what you had in mind but if you move x,z it will be closer to the modelled surface but will stand out more against the general staircase pattern of circles.
This is my general method for handling optimization between successive line/loops. I'll just have to test the relationship between last point on current loop with first point on next to determine whether or not the retraction should be to layer clearance, or all the way to safe height.

freman wrote:
Sun Jan 26, 2020 2:04 pm
You will also recall the recent discussion on reversal and preference for starting in the centre. Does that have some relevance here?
https://forum.freecadweb.org/viewtopic. ... ead#unread
Yes, this has some relevance.
The reversal issue discussed there shouldn't be an issue here. I've coded in consistent direction management at each layer.
The starting point is not currently available in 3D Surface. I'll have to look at another operation in the PathWB and copy the implementation to this operation.

Also, speaking of starting points, I think it would be nice to allow the user to alter the seed point when using the `Circular` cut pattern. Currently the default is to seed the circles at the center of mass of the selected face(s). Other choices could be center of boundary box, or custom point.

These two start-point related features are candidates to add to the improvement list, for implementation consideration for this operation.

Thanks for the input.

Russ
User avatar
freman
Posts: 939
Joined: Tue Nov 27, 2018 10:30 pm

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

Postby freman » Sun Jan 26, 2020 9:47 pm

The reversal issue discussed there shouldn't be an issue here. I've coded in consistent direction management at each layer.
I appreciate direction management, that is huge and puts 3Dsurface ahead of 2.5D tools in that respect. However, the request for reversal over there was to do with starting at the centre of the area to clear and not around the periphery. The aim being to ensure that the point when you inevitably have to start a cut with the full width of the tool, this is a short inner cut and not the longest ( and probably finishing ) external cut.

Beyond that , I did not have a current need for reversal as a user input.

Starting point is nice to have but having a good default starting point is probably a convenient way to go before the added UI overhead of user inputting the starting point.
Russ4262
Posts: 373
Joined: Sat Jun 30, 2018 3:22 pm

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

Postby Russ4262 » Fri Jan 31, 2020 5:25 am

Evening fellow FreeCADians,

Wanted to pass along some more news on the 3D Surface development. The last week or two have seen a lot of improvements from the last version - some of which are just behind the scenes.

Changes and improvements with the latest version 8c pushed to the PR tonight, include:
  • Refined the optimization for the new `Circular` cut pattern.
  • Added a new `CircularZigZag` cut pattern that might be adapted to, or applied as, a clearing operation.
  • Added user customization options for the center seed point when using the new circular cut patterns.
  • Restructured a lot of the initial control code on the back end.
    Benefits include:
    • preparation for breaking off the `Waterline` algorithm into an independent operation in the PathWB
    • modifications to accommodate multiple models in the Job
    • easier implementation of additional new features and modifications
  • Added new methods to allow for a mid-level awareness of the stock, specified cut area(s), and avoidance areas. These are making avoidance paths and heights better. The implementation calculates the lowest safe travel height between two points on the model while being aware of the stock and specified avoidance areas.
  • Extended the new face-selection feature to the existing `Waterline` algorithm. This still needs some testing, and I presume, will need some more tweaking. This idea was discussed briefly in the chat room at https://gitter.im/FreeCAD/Path.
  • This version 8c still needs some minor tweaking of the optimization algorithms and general transitions between path lines/arcs in the `Multi-pass` cut mode.
FYI, I have not updated the script attached to the OP of this thread. At the moment, I do not see much need. I haven't made any screenshots of the new features and implementations in this version. I might add some in the next few days.

If you have ideas for improvements, or tweaks, please let me know. I hope this operation will see much greater use once these new changes are merged.

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

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

Postby RatonLaveur » Fri Jan 31, 2020 6:34 pm

Actually, not to put too fine a point on it Sir, but I took the liberty of testing it. Not allowed to show anything but all i can say is well FreeCAD done!
At the moment one thing i could think off for waterline milling is constant stepover (not constant height). That would enable some neaaat surface finish with the laser ;)

Note: and oh, i know it's not as easy as it sounds.

Thanks so much. I'm glad you came back from a well deserved break with a vengeance.