3D Surface - Face Selection (New feature) [Merged]
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
-
- Posts: 991
- Joined: Wed Mar 27, 2019 10:45 am
Re: 3D Surface - Face Selection (New feature)
I really think the discussion on multiple model handling needs to be had especially before too much coding is done.
Consider the actual workflow of a CNC machinist when processing multiple parts. There is almost never a case when one single OP is coded for two parts.
Case1: palletisation, repeating the same part in a batch of stocks.
In that case the ideal is to code ONE single part and change local coordinate systems based on the pallet if its designed accurately enough or based on individual part indication. Either way, to minimize cycle time, tool changes are minimized. So one ot two ops based on one tool will be coded for the first part and then this will be repeated in sequence by changing the Local Work Coordinate Offset. (Usually a G51 code, sometimes a G92 for more brute force coders). Then a tool change is operated and other ops are planned on the first part only and repeated at each LWCO...so on and so forth.
Either way the CAM only outputs one of each ops on one single part. The repeats can be planned in CAM in which case a "CAM workflow" tool needs to be implemented but certainly not the OP itself modified.
Case 2: different parts in the same work zone.
To be honest in that case i do not understand why the CNC machinist would hope to perform one OP on both parts at once. Each part will need a specific tweak somewhere for optimisation. So it should be per part OPs.
Case 3: rectification
One case in which a single op may be beneficial on several parts is the facing operation. It may be beneficial to run a face mill or fly- cutter in all parts at once for rectification. Specifically when considering the size of those tools which anyway would encompass several small parts at once on a well designed pallet.
Case 4: here i defer to others to offer an alternative use case.
My point is: we need to be careful to not try to code five headed unicorns for each OP. Use cases are very important and in many cases the user should think about their workflow. I think single part OPs are the best bet for a robust KISS approved Path WB. And if we really want to be fancy, prepare new Workflow tools for multiple parts. Including making a more prominent use of the existing Fixture tool, and perhaps even prepare local G92s that can be reset.
Consider the actual workflow of a CNC machinist when processing multiple parts. There is almost never a case when one single OP is coded for two parts.
Case1: palletisation, repeating the same part in a batch of stocks.
In that case the ideal is to code ONE single part and change local coordinate systems based on the pallet if its designed accurately enough or based on individual part indication. Either way, to minimize cycle time, tool changes are minimized. So one ot two ops based on one tool will be coded for the first part and then this will be repeated in sequence by changing the Local Work Coordinate Offset. (Usually a G51 code, sometimes a G92 for more brute force coders). Then a tool change is operated and other ops are planned on the first part only and repeated at each LWCO...so on and so forth.
Either way the CAM only outputs one of each ops on one single part. The repeats can be planned in CAM in which case a "CAM workflow" tool needs to be implemented but certainly not the OP itself modified.
Case 2: different parts in the same work zone.
To be honest in that case i do not understand why the CNC machinist would hope to perform one OP on both parts at once. Each part will need a specific tweak somewhere for optimisation. So it should be per part OPs.
Case 3: rectification
One case in which a single op may be beneficial on several parts is the facing operation. It may be beneficial to run a face mill or fly- cutter in all parts at once for rectification. Specifically when considering the size of those tools which anyway would encompass several small parts at once on a well designed pallet.
Case 4: here i defer to others to offer an alternative use case.
My point is: we need to be careful to not try to code five headed unicorns for each OP. Use cases are very important and in many cases the user should think about their workflow. I think single part OPs are the best bet for a robust KISS approved Path WB. And if we really want to be fancy, prepare new Workflow tools for multiple parts. Including making a more prominent use of the existing Fixture tool, and perhaps even prepare local G92s that can be reset.
Re: 3D Surface - Face Selection (New feature)
I would be very cautious about declaring one method "ideal" and then suggesting other ways of doing things can effectively be ignored. No one can anticipate all job / machine requirements and dictate how a particular job "should " be done. This inevitably leads to false assumptions based on someone's specific needs/knowledge.n that case the ideal is to code ONE single part and change local coordinate systems based on ....
I recently needed four attachments for the gas shocks on a roof window. They were small but relatively complex parts to be cut from one piece of stock. They required several tools and reorientation of the stock. I made an array of the single part in FC and created separate .nc files for each path on the ensemble of the four parts.
I don't think I would want to have been constrained by CAM limitations to make a smaller file and manually poking around with four G92 commands.
[In fact I ended up doing 3+1, but that's beside the point. ]
- Attachments
-
- velux3-vice.jpeg (296.5 KiB) Viewed 1269 times
-
- Posts: 991
- Joined: Wed Mar 27, 2019 10:45 am
Re: 3D Surface - Face Selection (New feature)
Indeed and that's exactly why i suggested others present alternative use cases as you well did.
I can merely offer my own industrial experience and even I am not a reference on the matter, seeing as others are more experienced cnc machinists.
I was indeed thinking of making parts from individual stocks. When indeed there should be the ability to mill several parts in the same stock...
It's really a matter of discussing it before intense coding is performed.
I can merely offer my own industrial experience and even I am not a reference on the matter, seeing as others are more experienced cnc machinists.
I was indeed thinking of making parts from individual stocks. When indeed there should be the ability to mill several parts in the same stock...
It's really a matter of discussing it before intense coding is performed.
Re: 3D Surface - Face Selection (New feature)
Hi all,
@RatonLaveur,
The goal of what I am trying to program today is to mill 2 symmetrical pieces at the same time with a single G-code file in a single stock.
There is only one FreeCAD model, but which contains 2 solids, one of which is symmetrical to the other.
The only workshops I used to create the geometry are Draft, Sketcher and Part.
In the Path module, the job is based on the 2 solids...
I think it should be possible doing this, FreeCAD should not limit this.
@Russ4262, I made another simple modes wich I think, reproduce the error : See attached model TestSurf01.FCStd...
When there is only one edge with a fillet, the 3D surface path is computed fine. The error appear when there is more than one edge wich is filleted...
By the way, when there is more than one adjacents surface, the algorithm output 2 or more (one per face) separate path with no continuity between there. It should be one complete path on the 2 or more complete surfaces.
@++;
Gauthier.
@RatonLaveur,
The goal of what I am trying to program today is to mill 2 symmetrical pieces at the same time with a single G-code file in a single stock.
There is only one FreeCAD model, but which contains 2 solids, one of which is symmetrical to the other.
The only workshops I used to create the geometry are Draft, Sketcher and Part.
In the Path module, the job is based on the 2 solids...
I think it should be possible doing this, FreeCAD should not limit this.
@Russ4262, I made another simple modes wich I think, reproduce the error : See attached model TestSurf01.FCStd...
When there is only one edge with a fillet, the 3D surface path is computed fine. The error appear when there is more than one edge wich is filleted...
By the way, when there is more than one adjacents surface, the algorithm output 2 or more (one per face) separate path with no continuity between there. It should be one complete path on the 2 or more complete surfaces.
@++;
Gauthier.
- Attachments
-
- TestSurf01.FCStd
- (378.74 KiB) Downloaded 48 times
Re: 3D Surface - Face Selection (New feature)
Yes, this is an issue I had planned on changing, as it is desirable that adjacent faces would be combined into one area. I am addressing this with the fixes I am working on.
Thanks for the additional feedback and model to test.
Russ
Re: 3D Surface - Face Selection (New feature)
Hello,
@Russ4262 firstly thank you for the great work.
I'm not sure if it has already been suggested as I didn't read the hole thread, if it did please just consider this a +1. I would like to suggest the possibility to choose/invert the cutting/sampling direction. The possibility to choose between circular and lines is already great but I would like to be able to select something like "cirular inward" or "lines in x direction but starting with the line at y=10 and ending with the line at y=0". I hope it is clear what I mean by this. The reason for this is trying to approximate slopes using a staircase with the 3d surface operation and an end mill. When you start at the highest stair and move downwards you get "burrs" at every step. However, when you start at the lowest stair and move upwards the burrs get automatically cleaned up when the next stair is milled. For lines this can currently be achieved by rotating the workpiece by 180° when generating paths but that is a little inconvenient and doesn't work for circular features.
Thank you very much,
jffmichi
@Russ4262 firstly thank you for the great work.
I'm not sure if it has already been suggested as I didn't read the hole thread, if it did please just consider this a +1. I would like to suggest the possibility to choose/invert the cutting/sampling direction. The possibility to choose between circular and lines is already great but I would like to be able to select something like "cirular inward" or "lines in x direction but starting with the line at y=10 and ending with the line at y=0". I hope it is clear what I mean by this. The reason for this is trying to approximate slopes using a staircase with the 3d surface operation and an end mill. When you start at the highest stair and move downwards you get "burrs" at every step. However, when you start at the lowest stair and move upwards the burrs get automatically cleaned up when the next stair is milled. For lines this can currently be achieved by rotating the workpiece by 180° when generating paths but that is a little inconvenient and doesn't work for circular features.
Thank you very much,
jffmichi
Re: 3D Surface - Face Selection (New feature)
If it is easy doing it may be included, but I think this is a rather exotic usecase. And there is a workaround: create a new operation for each stair. And you wouldn't mill the Niesen staircase starting at the bottom anyway.
But let's see if others need this too.
But let's see if others need this too.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Re: 3D Surface - Face Selection (New feature)
What seems a bit odd is that the current path tool is cutting arbitrarily deep cuts in one hit. Potentially using the full height ( or more ) of the side of the endmill to remove material.
IIRC , when I used 3Dsurrface almost a year ago to cut a semi cylindrical form, it stepped down progressively taking a controlled depth of material at each cut until finally getting to the desired 3D profile.
Now it seems that "step down" on the Depths tab has no effect and the whole depth is removed in one cut. This will not work in practice and seems uncontrollable. The depth being cut away simply being all the material which is there in that particular position.
I'd noted this earlier but assumed that Russ was just displaying the final cut for clarity in his screenshots.
As a quick aside, the 3Dsurface paths are presented in the treeview with a label "Surface". This seems too vague and does not match the name of the tool in the too bar where it is presented as "3D Surface". Python has an aversion to variable names beginning with a numeric character and while we can change this label at will, the default value reflects an underlying variable name. I would suggest "Surface3D" or something similar which more clearly identifies the path tool used.
IIRC , when I used 3Dsurrface almost a year ago to cut a semi cylindrical form, it stepped down progressively taking a controlled depth of material at each cut until finally getting to the desired 3D profile.
Now it seems that "step down" on the Depths tab has no effect and the whole depth is removed in one cut. This will not work in practice and seems uncontrollable. The depth being cut away simply being all the material which is there in that particular position.
I'd noted this earlier but assumed that Russ was just displaying the final cut for clarity in his screenshots.
As a quick aside, the 3Dsurface paths are presented in the treeview with a label "Surface". This seems too vague and does not match the name of the tool in the too bar where it is presented as "3D Surface". Python has an aversion to variable names beginning with a numeric character and while we can change this label at will, the default value reflects an underlying variable name. I would suggest "Surface3D" or something similar which more clearly identifies the path tool used.
- Attachments
-
- 3Dslope.png (19.3 KiB) Viewed 1129 times
-
- slope.FCStd
- (24.69 KiB) Downloaded 50 times
Re: 3D Surface - Face Selection (New feature)
You have to set LayerMode to Multi-pass.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Re: 3D Surface - Face Selection (New feature)
Ah, yes, that nifty feature tucked away in the treeview. Many thanks.
This really needs to be in UI, but I'm sure Russ will take care of that when the basics are finished. Or maybe this is only really needed for debugging anyway.
This really needs to be in UI, but I'm sure Russ will take care of that when the basics are finished. Or maybe this is only really needed for debugging anyway.