Creating CNC roughing and finishing passes

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
User avatar
JoshM
Posts: 456
Joined: Thu Oct 05, 2017 5:34 pm
Location: New Hampshire

Re: Creating CNC roughing and finishing passes

Post by JoshM »

There's one issue other than Herbk's point that I would mention, Bill--and BTW, nice depiction there!

If you watch the steps, there are redundant passes over the same path lines as the sphere is cut away. I came online ask thoughts on how it should be handled and note your post. If in fact the algo were to step across sphere multiple passes, ideally offset passes.

I came across the question from a different angle. If you had the finish cut, and copied it upwards by a "step up", then bounded it with the Stock Model, it would look more like this
Job22.png
Job22.png (350.33 KiB) Viewed 2502 times
for finish_pass, and prior_pass.

My question is how difficult is it sewing up wires that are chopped where they exit the top of the Stock?

Best Regards,
Josh
User avatar
JoshM
Posts: 456
Joined: Thu Oct 05, 2017 5:34 pm
Location: New Hampshire

Re: Creating CNC roughing and finishing passes

Post by JoshM »

In looking at it further, the answer is to project planar pocket paths onto the same surface, with center section cut out, according to radial offset, at step height.

In concept, by bounding out the tall sections when generating stepped passes, we get the best of both worlds.
Job23.png
Job23.png (200.44 KiB) Viewed 2497 times
Honestly though, I think regular roughing, followed by a surface pass is probably the best option.

Josh
User avatar
bill
Posts: 376
Joined: Fri Jan 09, 2015 9:25 pm

Re: Creating CNC roughing and finishing passes

Post by bill »

Hey JM,

:D Keep up the valuable/great -- work/investigation!

JoshM wrote: Tue Oct 09, 2018 2:25 am Honestly though, I think regular roughing, followed by a surface pass is probably the best option.
Depending on the capability of your machining environ, workflow will vary.
There is no regular. No!?

Part workflow Example:
Hog/Rough with Drop-Cutter Op (StepDown = 10 mm)
Finishing Pass-1 with Drop-Cutter Op (StepDown = 0.5 mm)
Finish Pass-2 with Water-Line Op (StepDown = 0.5 mm)

Finishing with an additional Water-Line cut provide additional machining axis/bi-axial-finish.
User avatar
JoshM
Posts: 456
Joined: Thu Oct 05, 2017 5:34 pm
Location: New Hampshire

Re: Creating CNC roughing and finishing passes

Post by JoshM »

bill wrote: Tue Oct 09, 2018 11:52 am Hey JM,

:D Keep up the valuable/great -- work/investigation!

JoshM wrote: Tue Oct 09, 2018 2:25 am Honestly though, I think regular roughing, followed by a surface pass is probably the best option.
Depending on the capability of your machining environ, workflow will vary.
There is no regular. No!?

Part workflow Example:
Hog/Rough with Drop-Cutter Op (StepDown = 10 mm)
Finishing Pass-1 with Drop-Cutter Op (StepDown = 0.5 mm)
Finish Pass-2 with Water-Line Op (StepDown = 0.5 mm)

Finishing with an additional Water-Line cut provide additional machining axis/bi-axial-finish.
Thanks Bill--appreciate the encouragement. Here's what I mean by best of both worlds.

Here are paths generated from usual pocket-mode from Path FeatureArea, so any of usual options we have now exist here. This image shows an Offset projected onto the millable section of the sphere for a Square End Mill.
Job27.png
Job27.png (227.4 KiB) Viewed 2434 times
That was the result of this image.
Job26.png
Job26.png (231.72 KiB) Viewed 2434 times
And, per Herbk's suggestion, roughing could be done using usual pocketing, just operating on a 3d mill envelope from the top surface (Stock Top).
Job25.png
Job25.png (198.54 KiB) Viewed 2434 times
I separated out the roughing, and the surface finish pockets, so that zig-zag to offset or such can be done. I need to figure out how to make the projected wires on the surface same-same as the regular/top pocket, so that the projected wires change with the top pocket mode parameters. I know it can be done, I'm just new to using classes.

The thing about practical surface milling is that the moment you introduce steps down value, you either buff the top, and for metals, it may be slower--or you break tools. The compromise--where existing roughing/surface finish isn't adequate, I think that I can introduce the hybrid step/surface fairly quickly by cutting top_face used for the pocket-mode paths. That too, I need to figure out how to make easy to modify for path wires projected onto surface and offset.
User avatar
bill
Posts: 376
Joined: Fri Jan 09, 2015 9:25 pm

Re: Creating CNC roughing and finishing passes

Post by bill »

BTW josh, your last post(s) was more interesting then the last Star Wars episode. Nice modeling of the Death Star (case study)!
chrisb
Veteran
Posts: 53930
Joined: Tue Mar 17, 2015 9:14 am

Re: Creating CNC roughing and finishing passes

Post by chrisb »

Talking about the death star: https://www.youtube.com/watch?v=xxX7QCll3oc and https://www.youtube.com/watch?v=Sv5iEK-IEzw give interesting insight into the internal organization. :lol:
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
onekk
Veteran
Posts: 6146
Joined: Sat Jan 17, 2015 7:48 am
Contact:

Re: Creating CNC roughing and finishing passes

Post by onekk »

Sorry if I'm late.
sliptonic wrote: Thu Sep 27, 2018 7:17 pm If the roughing op uses a dropcutter algo to determine intersection points, that collection of points may not be useful for a finishing op that uses the same tool and model but a waterline algo. Or maybe it is. I don't know. I'm just suggesting that it's a level of optimization that can wait.
Speaking of opencamlib, the dropcutter algorithm, is a mere "probing" of the 3D surface with the tool "model" if I remember well when I have mailed with Anders Wallin some time ago, it is a sort of collision detection using the model and the shape of the tool, and there is differences, between say a 3mm cylindrical tool and a ballnose tool and even with a bullnose tool.

For the roughing operation, many strategies could be use, obviously the final scope is to minimize time and preserve the surface for the subsequent finishing operation.
In some case like cutting wood or some granular materials if you go very rough in the roughing operation you have to take in account the amount of material that could be "damaged" by the roughing strategy, plywood or laminated wood as an examples could be damaged by some splines that are lifted by the roughing operation.

So maybe if a roughing strategy is to be implemented, maybe a sort of "allowance" parameter that enlarge the area of roughing could be inserted.

Some CAM program have a "Roughing Clearance" parameters and a sort of dual mode for the operations.

basically the operation have two mode "roughing and finishing" and some parameters are taken in account according to the mode.

When operating you create the finishing OP, then copy the finishing OP and set the trigger that state that this operation is a "roughing".

For the order of the operation that someone has cited in this discussion, a parameter that specifies the order of the operation at the GCode creation phase could be introduced, if there is no need of modifications the order of creation could be used if not if you have say 8 operation and want that the 8 is done before the 6 [1,2,3,4,5,6,7,8] could became [1,2,3,4,5,8,6,7] and obviously this care has to be taken by the user.

I will try the Path workbench in the near future, as I'm developing a workbench that convert a file written by a CAM program in FreeCAD entities, and I'm thinking of implement a manner to translate the MOPs (Machine OPerations as they are called in the other program) in FreeCAD Path.

my two cents, and sorry for the intrusion

Regards

Carlo D.
GitHub page: https://github.com/onekk/freecad-doc.
- In deep articles on FreeCAD.
- Learning how to model with scripting.
- Various other stuffs.

Blog: https://okkmkblog.wordpress.com/
User avatar
onekk
Veteran
Posts: 6146
Joined: Sat Jan 17, 2015 7:48 am
Contact:

Re: Creating CNC roughing and finishing passes

Post by onekk »

Talking about milling of a sphere, maybe if the paths of the "slices" are done in circular way this could be improve the times of the roughing operation, but this maybe involve a different strategy of calculating the pocket paths.

Using the "internal shape" and outline the contour in a circular path an filling the outer shape (maybe rectangular or square) could reduce the total "distance traveled" by the tool.

Now I don't find the link but a similar approach was discussed also by Ander Wallin in on of this post on his forum some time ago giving a link to another site that was testing his OCL library.

Regards

Carlo D.
GitHub page: https://github.com/onekk/freecad-doc.
- In deep articles on FreeCAD.
- Learning how to model with scripting.
- Various other stuffs.

Blog: https://okkmkblog.wordpress.com/
chrisb
Veteran
Posts: 53930
Joined: Tue Mar 17, 2015 9:14 am

Re: Creating CNC roughing and finishing passes

Post by chrisb »

onekk wrote: Sat Oct 20, 2018 5:11 pm Sorry if I'm late.
Very late. Some of the functions you talk about seem to be already implemented
Some CAM program have a "Roughing Clearance" parameters and a sort of dual mode for the operations.
Is it the same as Pass extension?
For the order of the operation that someone has cited in this discussion, a parameter that specifies the order of the operation at the GCode creation phase could be introduced, if there is no need of modifications the order of creation could be used if not if you have say 8 operation and want that the 8 is done before the 6 [1,2,3,4,5,6,7,8] could became [1,2,3,4,5,8,6,7] and obviously this care has to be taken by the user.
Edit the Operations and you can reorder them.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
onekk
Veteran
Posts: 6146
Joined: Sat Jan 17, 2015 7:48 am
Contact:

Re: Creating CNC roughing and finishing passes

Post by onekk »

chrisb wrote: Sat Oct 20, 2018 8:14 pm
onekk wrote: Sat Oct 20, 2018 5:11 pm Sorry if I'm late.
Very late. Some of the functions you talk about seem to be already implemented
Some CAM program have a "Roughing Clearance" parameters and a sort of dual mode for the operations.
Is it the same as Pass extension?
For the order of the operation that someone has cited in this discussion, a parameter that specifies the order of the operation at the GCode creation phase could be introduced, if there is no need of modifications the order of creation could be used if not if you have say 8 operation and want that the 8 is done before the 6 [1,2,3,4,5,6,7,8] could became [1,2,3,4,5,8,6,7] and obviously this care has to be taken by the user.
Edit the Operations and you can reorder them.
No for the Roughing Clearance, is more to enlarge the paths, near the objects to be milled so more material is left in the roughing pass, the stepover is the same. (But i don't know how the "Pass extension" works).

For the reordering I mean the "order" in the final Gcode output.

All my posts however are more teorical, as in the past I've tried to develop a CAM program that worked on Linux, so I've had some interesting discussion with Anders Wallin about the OCL "internals" and thi is related to the first post.

The second post are about a more wide and different project, as I've developed some plugins for another CAM program, (not so widespread, but according to the last information seen i have near 8000 users), and I'm developing a "FreeCAD WorkBench" that read directly the XML file of this program and translate it in FreeCAD entities (sorry but I don't know of to proper call them), for now with the only scope of using the machining operation and the entities data to obtain a 3D representation on the final pieces cut from a plywood sheet, to make maybe some assemblies using the Assembly plugin.

This work is in the early stage , but some users of this CAM have expressed some interest in it.

The final goal is to make some "interoperability" between this CAM and FreeCAD, like importing the "shapes" (entity or whatsoever we want call them) maybe modify them and then reexport them in the XML format (as this CAM have postprocessor for many professional machines).

But maybe some of them want to try to mill something with FreeCAD, (maybe even me), so in the near future i will study the FreeCAD Path workbench as today it seem more mature form the time I've started to try it (And I was not encouraged to continue as many of my question were answered with It is an heavy work in progress so it is not usable yet)

Intentionally I don't want to publish here the name of this CAM, (I don't want advertise nor my work, nor the CAM maker).

Thank for the reply and Best Regards

Carlo D.
GitHub page: https://github.com/onekk/freecad-doc.
- In deep articles on FreeCAD.
- Learning how to model with scripting.
- Various other stuffs.

Blog: https://okkmkblog.wordpress.com/
Post Reply