heda wrote: ↑Tue Nov 16, 2021 4:53 pm
sounds like you are looking for a lightweight pdm-system for fc.
creating some database which is governing the fcstd files sounds way too corporate for me
But FreeCAD has this problem, think of having many assemblies and you want to merge them in a complex project, how do you do this sort of things?
Solutions are implemented using Links to external "documents" and this is the way @realthunder is moving (not seen in deep but I had read some discussions about this argument)
So the need for a more complex document format has already been asked.
OP will make a sort of indexing for complex project, some similar things are already done in STEP files, as the format was created having in mind interoperability between different industries in big projects (think of some big things, like Space Shuttle or other things, like ISS and so on, but even a simple car will suffice).
The point is that FCStd file is not actually easily extensible, I have had some talk with yorik some time ago (around one year ago), but the fear is that the format will became too complex to manage and too prone to malware as it will involve the need to some automation when opening documents, that could lead to some "malware injection" (or this is what i remember about).
As sqlite is part of "Python Standard Library" and FreeCAD already have it "on board" it will be not difficult to implement a sort of "index of complex document" like having a "pivot document" that refer to other intermediate documents.
The thing is already feasible as FCStd is simply a "zipped directory" so you could put many FCStd files into a sligtly different "directory tree", only problems I could see will be "file dimensions" and possible corruption problem that will arise if all the gears are not working perfectly, you have many "man hours" of work wasted in some milliseconds.
I could see the fear to have such a "leviatan file", but same thing happens when you make a backup of your HD and in business this is not seen as a "problem".
You are using "established ways" to do things, you are using one of the "most old and tested" compression algorithm and similar instruments.
However some decision has to be taken, and "reliability" is one of the factor to take into the formula, other could be:
- complexity
- external library could not be run on some machines (at least the thing should be run on Windows, MacOs and Linux)
- human readability in sense of "ability to recover from a crash" so having many files wil minimize the chances to destroy an "entire project" with a wrong "keypress" or a "short circuit".
- long term mantainability
- ease of use ? (complex things aren't easy "by definition")
Regards
Carlo D.
-