Konstantin wrote: ↑
Fri Nov 02, 2018 8:09 am
It's nice to have automated fixture managing, that thinks for you, but I'm affraid, that it almost useless in this manner in real life. It is to rigid, uncontrollable and not easy to see what is happening.
- How can I control order of what operation must be done in which fixture? (it the way you propose I just can't see the way to do that)
- How can I see the fixture in which I am working right now? (In the way you propose I can't see or change anything, I prefer it would be in the list, as a regular operation, not hidden somewhere from my eyes)
- How can I change the fixture? (if they would be showed as a regular operation in the list I want to drag and drop them higher or lower in the list. That's a feature request)
- How can I point fixture's coordinate and orientation in 3d view? (take that as a feature request to )
- Something else I've forgot
The goal, so far, is to support gcode fixtures as they work now - at least in LinuxCNC. Fixtures can be useful for some things but have some serious limitations that are outside the scope of Path to fix. The most important limitation is that the relationship between fixtures and the machine coordinate system is entirely in the machine controller. Path has no way to get this information so visualizing a job using multiple fixtures is impossible.
As I noted in the video, I see three basic use-cases where a user might want/need gcode fixtures:
1) multiple identical copies of the same job
2) Multiple jobs for the same part post-processed into one gcode output file
3) Multiple independent parts post-processed into one gocde output file.
The first one is the ONLY one I'm thinking about right now. The second one MIGHT be possible with some additional work and the third is entirely outside our scope right now.
For all these use-cases, fixtures should be seen for what they are; one of several tools available in the toolbox. We also have Path Arrays, Multiple base jobs, etc.
I show you my real life workflow. I have working tables with different sets of fixtures.
- Example one:
Four equal parts in four fixtures. I need only to drill them, repeat the same operation in each fixture. First two operations must be done in offsets that lays on left lower corner of the part, second two in regular way. So I must have some ways to set easily these offsets and control their sequence in the way I need, not just G54,G55,G56,G57. And if I need to do something else on them? I almost could use your automatic fixture managing system but how can I controll where each fixtures offset is?
Are you saying you need to be able to control the sequence between fixtures? Like First G54, then G57, then G55? Can you explain this more?
Opposite milling. I have two parts that lays on table in opposite directions, so I need somehow to show the starting point and direction of that offset and rotate coordinate system. (My machine has coordinate system rotation operation, but I prefer not using it, because operators get confused by it, so I prefer if FreeCAD had ability to rotate fixture at least around Z xis)
This is like my #2 use-case above. I see it as a good thing to do but not possible yet. I would suggest that the workflow would be to set up two jobs. The first job would be in one (or more) fixtures and the second job in different fixtures. Then there would be some mechanism to select BOTH jobs and post-process to a single output file.
Different parts on one table. If they are totally different, then I might produce two FreeCAD projects, postprocess them and merge files, but...
- Most difficult part - Sometimes I need to do similar operations with the same tools but on different parts. For example, Drill holes in both parts, then drill with different bits and tap one, then mill both with the same mill again. Now I can have only one part per job, I can boolean unite two parts with offset by X axis, for example, and make all operations as usual, but for that I (again) need very flexible fixture managing and pointing system in FreeCAD.
For my workflow your system would be to rigid. And for anyone who will need to make something different, then you imagined.
This is the #3 use case and I agree we aren't even close to it. The easiest thing I an imagine now is a special command line post-processing script. The user would set up each project and job seperately and then use a command line tool to post-process them into a single gcode output file like:
>>batch_post.py --file=proj1.fcstd --file=proj2.fcstd --orderby=tool --output=myoutput.ngc
Thanks for the feedback!