Proposed Feature: All Access Extension [PR Closed]

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

Proposed Feature: All Access Extension [PR Closed]

Postby Russ4262 » Thu Jan 14, 2021 5:10 am

Evening FreeCADians.
It is that time again. We need a great new feature here near at the end of the 0.19 dev cycle. This might be the one!

It is simple and elegant with zero regressions and gets in places that current tools just can't reach. No, I'm not talking about a waterpick-toothbrush combo. Those are so 2020. I am talking about `All Access Extension` for the already dependable PocketShape and Adaptive operations as a bright way to start off the new year! If the toolbit can physically fit in the space, then this extension makes clearing that part of the face possible.

Now, I know what you are thinking, "We already have and Extensions feature for PocketShape." Yes we do, and a mighty big thanks to our resident MLampert for that great feature. This feature will only add to the your ability to clear every sliver in those hard-to-reach regions of those complicated pockets.

The new feature is off by default (when value is zero). Set it to whatever value you wish for extending the reach of the toolbit. The current Pass Extension feature is unaffected. Zero regressions. All progression!

Let's clear 2021 in style. Happy pocketing in 2021 !

Special thanks to Jehovah for creativity and to forum user MRx for testing the current PocketShape capabilities. Well done sir! Keep those tests coming! His tests are available in the Which milling strategy thread.

PR #4278, Path: Pocket clearing extension [New Feature]
Additional info:
  • When used, this new feature will produce a little air milling, but this is a compensation for gaining access to previously unreachable areas using the op in its current state, or in combination with other ops. The air milling could be reduced, but that would complicate the code - such an addition does not seem worth it at this point.
  • The parent PR also clones the existing `Use Outline` feature from PocketShape to Adaptive to improve usability.

EDIT: One regression starring me in the face, holes! Well, back to the drawing board. I will see if I can get that taken care of soon.
My apologies for the over-confidence about ZERO regressions. Maybe next time...

EDIT: I changed the name to `All Access Extension`, fixed the hole regression, and applied it to the Adaptive op as well. Ice cream, anyone?

Edit: PR closed until additional submission requirements met.

God bless,
Russell
Attachments
Snip macro screenshot-75dea3.png
Snip macro screenshot-75dea3.png (331.19 KiB) Viewed 540 times
Last edited by Russ4262 on Fri Jan 15, 2021 5:58 pm, edited 5 times in total.
User avatar
dubstar-04
Posts: 598
Joined: Mon Mar 04, 2013 8:41 pm
Location: Chester, UK
Contact:

Re: New Feature: PocketShape - Clear All Extension

Postby dubstar-04 » Thu Jan 14, 2021 1:17 pm

NIce work Russ!

It would be great if this was available to the adaptive operation too. I could ditch my helperface addon then.

https://github.com/dubstar-04/PathHelperFace

Thanks,

Dan
Russ4262
Posts: 598
Joined: Sat Jun 30, 2018 3:22 pm

Re: New Feature: PocketShape - Clear All Extension

Postby Russ4262 » Thu Jan 14, 2021 5:50 pm

dubstar-04 wrote:
Thu Jan 14, 2021 1:17 pm
...
It would be great if this was available to the adaptive operation too. ...
Here is a teaser with the fix for holes ... ! I still have to update the PR.

Cheers,
Russ
Attachments
Snip macro screenshot-140aab.png
Snip macro screenshot-140aab.png (221.73 KiB) Viewed 449 times
User avatar
dubstar-04
Posts: 598
Joined: Mon Mar 04, 2013 8:41 pm
Location: Chester, UK
Contact:

Re: New Feature: PocketShape - Clear All Extension

Postby dubstar-04 » Thu Jan 14, 2021 6:29 pm

Russ4262 wrote:
Thu Jan 14, 2021 5:50 pm
dubstar-04 wrote:
Thu Jan 14, 2021 1:17 pm
...
It would be great if this was available to the adaptive operation too. ...
Here is a teaser with the fix for holes ... ! I still have to update the PR.

Cheers,
Russ
Russ, that is incredible.

I'm really excited to try this out.

Thank you for all your effort.

Dan
User avatar
dubstar-04
Posts: 598
Joined: Mon Mar 04, 2013 8:41 pm
Location: Chester, UK
Contact:

Re: New Feature: PocketShape & Adaptive - All Access Extension

Postby dubstar-04 » Thu Jan 14, 2021 9:51 pm

Hi Russ,

I would like to get your thoughts on machining this feature:

Face.png
Face.png (39.52 KiB) Viewed 367 times

I have had lots of trouble generating acceptable paths for machining this feature and that led to me creating the path helperface addon resulting in this path:
AdaptiveFace.png
AdaptiveFace.png (70.12 KiB) Viewed 367 times
I have tested the new Extension Feature resulting in the following:
AdaptiveExtension.png
AdaptiveExtension.png (101.4 KiB) Viewed 367 times


How would you create a path for this feature? (File attached)

Thanks,

Dan
Attachments
BatMountTest.FCStd
(749.02 KiB) Downloaded 10 times
Russ4262
Posts: 598
Joined: Sat Jun 30, 2018 3:22 pm

Re: New Feature: PocketShape & Adaptive - All Access Extension

Postby Russ4262 » Fri Jan 15, 2021 3:59 pm

dubstar-04 wrote:
Thu Jan 14, 2021 9:51 pm
... How would you create a path for this feature? (File attached) ...
Top of the morning to you sir.

Attached is the modified file and a screenshot of my take on it.
A few things to note:
  • I did leave a 1mm depth and lateral allowance on all operations except for drilling and initial milling of top face. So these ops are roughing ops as I have them setup.
  • Not being a machinist/engineer nor having real-world CNC experience, I cannot verify the practicality of my work flow presented for your part. Mainly I am just trying to demonstrate my approach as I see the part.
  • I did make use of the newly proposed `All Access Extension` branch, which also clones the PocketShape `UseOutline` into the Adaptive op.
  • Thanks for asking my opinion for a real-world situation. Fun stuff!
  • I would follow the current ops with a set of finishing-pass operations. You might choose Adaptive for the two end faces so the finish is a bit nicer, where the zigzagoffset pattern is used for roughing these areas.
  • As mentioned above, most of the ops have a 1mm lateral and depth allowance. I don't know what allowance is practical, maybe 0.1mm with a commercial machine (or perhaps none in that case!).
  • The Adaptive ops in this project make use of both the `All Access Extension` and the `Use Outline` features proposed in the PR.
  • Disclaimer: Do not send this project to the mill without verifying first: depths, order of ops, allowances, tools used per op, the weather, etc... .
Some afterthoughts:
  • While in FC, the Adaptive op stands alone, the reality is it is just another cut pattern. From a technical stand point, I would expect to see it listed in the MillFace and PocketShape ops alongside the zigzag, line, offset, etc... No, I am not suggesting that we attempt to do that, at all. Just an observation.
  • I am assuming you would mount this part in some sort of fixture (not sure of correct terminology) so the part could be rotated to mill all sides.
  • I might add the same `Boundary shape` selection found in MillFace to the Adaptive op, in a more limited fashion. Say, Face, Outline, and BoundBox options. Again, Adaptive is a removal pattern applied, not an operation type, like pocket, profile, drill, etc..., so it needs to allow for greater region selection/customization as the op stands in its current independent form. It is a widely used removal pattern in the CNC industry, so we need to expand user access via improved face/region selection for our users.
  • With the proposed PR, the Adaptive op gets two upgrades: this All Access Extension and a clone of the Use Outline feature found in PocketShape. Both of these features are only available in the Properties View of the Data tab for Adaptive. Addition of GUI access can easily be added if we think either of them are regularly used.
As in the past, a pleasure. Have a great weekend.

Russell
Attachments
BatMountTest_A.FCStd
Modified path file
(328.71 KiB) Downloaded 6 times
Snip macro screenshot-c78076.png
Snip macro screenshot-c78076.png (203.01 KiB) Viewed 246 times
Last edited by Russ4262 on Fri Jan 15, 2021 4:50 pm, edited 1 time in total.
User avatar
dubstar-04
Posts: 598
Joined: Mon Mar 04, 2013 8:41 pm
Location: Chester, UK
Contact:

Re: New Feature: PocketShape & Adaptive - All Access Extension

Postby dubstar-04 » Fri Jan 15, 2021 4:49 pm

Hi Russ,

Thank you for taking the time to have a look at the model and I really appreciate your feedback.

Some really nice ideas in there and definitely some good point for future projects.

Don't worry, I won't be running the code on the machine. This is an old project from last year.
batmount.jpg
batmount.jpg (141.48 KiB) Viewed 213 times
I just revisited the boundary dressup with an adaptive and this seems to give some good results:
boundaryDressup.png
boundaryDressup.png (90.35 KiB) Viewed 213 times
Thank you and have a good weekend,

Dan
Attachments
BatMountTest_B.FCStd
(478.21 KiB) Downloaded 2 times
User avatar
sliptonic
Posts: 2083
Joined: Tue Oct 25, 2011 10:46 pm
Location: Columbia, Missouri
Contact:

Re: New Feature: PocketShape & Adaptive - All Access Extension

Postby sliptonic » Fri Jan 15, 2021 8:54 pm

Russ4262 wrote:
Fri Jan 15, 2021 3:59 pm

Some afterthoughts:
  • While in FC, the Adaptive op stands alone, the reality is it is just another cut pattern. From a technical stand point, I would expect to see it listed in the MillFace and PocketShape ops alongside the zigzag, line, offset, etc... No, I am not suggesting that we attempt to do that, at all. Just an observation.
I concur. Adaptive is implemented quite differently which is why it has the cool pre-rendering of the path. However, it's just another pattern so it could be consolidated into Pocket. Consolidation has some advantages but also some disadvantages. After 0.19 I'd like to talk more about a unified approach to operations.
[*]I am assuming you would mount this part in some sort of fixture (not sure of correct terminology) so the part could be rotated to mill all sides.
I was taught that a 'fixture' is something that holds the work while a 'jig' is something that guides the tool. Not sure if those definitions are universal but that's the way I think about it.
[*]I might add the same `Boundary shape` selection found in MillFace to the Adaptive op, in a more limited fashion. Say, Face, Outline, and BoundBox options. Again, Adaptive is a removal pattern applied, not an operation type, like pocket, profile, drill, etc..., so it needs to allow for greater region selection/customization as the op stands in its current independent form. It is a widely used removal pattern in the CNC industry, so we need to expand user access via improved face/region selection for our users.
Not just selection but also visualization. It should be easier for a user to 'see' what material is going to be removed by an operation. Currently the calculated removalShape is a hidden property of most Area ops. We could include that shape in the viewprovider of the ops so a 'ghost' of the removal is visable.
[*]With the proposed PR, the Adaptive op gets two upgrades: this All Access Extension and a clone of the Use Outline feature found in PocketShape. Both of these features are only available in the Properties View of the Data tab for Adaptive. Addition of GUI access can easily be added if we think either of them are regularly used.
[/list]
I see you closed the PR for now. I hope you're going to resubmit in a more complete form. Let's also make sure the UI is consistent and intuitive with the existing extensions feature.
onekk
Posts: 464
Joined: Sat Jan 17, 2015 7:48 am
Contact:

Re: New Feature: PocketShape & Adaptive - All Access Extension

Postby onekk » Sat Jan 16, 2021 2:20 pm

sliptonic wrote:
Fri Jan 15, 2021 8:54 pm
I was taught that a 'fixture' is something that holds the work while a 'jig' is something that guides the tool. Not sure if those definitions are universal but that's the way I think about it.

A fixture is place on the machine table, usually it is associated with a WCS but not every time.

In some CAMs a fixture is intended as an obstacle to avoid mainly in rapid moves, as they are protruding from the table and maybe are in place everytime if smaller pieces are used on the macnhine and removedo only rare cases when the full table space is used to machine a big part.

Some other CAM misnamed WCS as fixture,

A more general approach would be to name WCS the proper WCS (G54-G59.x) and define all the fistures in term of offset from the main WCS used, and used as (0,0,0) points for nested parts in "series" production, setting an operation and then offsetting using G90 G91, as described here:

https://gcodetutor.com/gcode-tutorial/g ... gcode.html

From the little I've seen in FreeCAD fixture is used as a synonim for WCS.

Regards

Carlo D.