A few weeks ago (maybe a little more than just a few) @dubstar, @sliptonic and I had a conversation about tools and how we could possibly change them to move forward.
We implemented a proof of concept and the feature is by no means complete or thoroughly tested. And therein lies the crux - we're all pretty busy and we need validation of the principle. So the idea is to get feedback right from You, as early as possible.
We will merge the POC into master and it will be available iff you enable the experimental features. Additionally, you will have to edit the Path preferences and deselect "Use legacy tools". Once you do that opening the Tool Library Manager will open the new library manager and creating a Job (without any template) will also create a TC for the new Tool(Bit).
Note that any Job templates with old tools will still work as before - in fact, you can mix and match old and new tools as you please even within a Job. If that doesn't work it's a bug (I'm the one to blame for all of those) so please report it.
If you enable the experimental features you'll notice a few more menu items, all related to tools, tool libraries and tool controllers.
* the type for new tools is "ToolBit"
* ToolBit is implemented entirely in python, making it more accessible for changes and contributions
* ToolBit has a real Shape representing the actual geometry
* Shapes for ToolBit are regular FCStd files which follow a few simple rules
* Shapes are fully parametric
* Anybody can create their own (arbitrary) shapes with their own parameters for their tools
* the user can add arbitrary properties to the ToolBit, there is currently a predefined list, not extensible but the plan is that each user can customize that for themselves
* a ToolBit is stored as a json file on disk and converted/constructed to a solid when loaded or while it is edited
* ToolBits have the file extension '.fctb' (FreeCAD ToolBit)
* ToolBits, tool libraries and tool shapes are independent of the FC user configuration, so you can blow that away as often as you like without risking losing your tools.
* each ToolBit is its own object in the tree, independent of a TC
* multiple TCs can reference the same ToolBit object
* a Tool Library is a json file on disk referencing the tool json files
* thereby, a ToolBit can be referenced by multiple libraries and doesn't need to be copied
* a Tool Library has the file extension '.fctl' (FreeCAD Tool Library)
* everyone is free to store their tools, libraries and personal shapes wherever they want and organize them as they see fit
* due to tools and libraries being regular json files they can be generated by a script, archived, version controlled, batch modified ...
* in case the tools are stored under the Marco or the Path directory the following directory tree is additionally searched for the corresponding files:
Code: Select all
Tools +- Bit ... for ToolBit json files +- Library ... for tool library json files +- Shape ... for ToolBit shape files
There are some additional details and background information in the Tools/README.md file. If you want to create your own tool shapes it might be of interest. Just looking at the existing shapes you'll figure out what's going on, it's not that complicated. Note that the readme talks about "templates" - that turned out to be too confusing with "Job templates" so they got renamed to "shapes".
* give it a run, try it out, play with it
* let us know if you hate it or love it
* comment on every aspect of it
- what's missing
- what doesn't work
- what works very well
- what do you wan to see
As mentioned before, this is a POC, so anything and everything can change/go/be added depending on feedback. And if it doesn't work at all we'll remove it again. So don't hold back