I don't know the format of Fcstd file. I have asked but no one has answered me.
But if you create a libreoffice, openoffice file, you will see that if you change the extension in zip you could open it with an archive tools or simply unzip it and you will find a directory tree with many file:
I suscpect that most of the machinery is already in FreeCAD, maybe chosing a compression alghorithm more efficient than zip will be better, but it is not very crucial.
In this way a document could contain almost everything.
Images, text file, even spreadsheet and database file, or even his own set of Macro, or even a whole workbench.
You could imagine even a scenery where you put into this file the machinery needed to manage a completely different approach.
incorporating annotations, as Yorick say about a csv file, will be more easier, the "FCnew" file will contain maybe three file:
Only a rough example, in content.xml will be the glue of whole document, maybe a description of the content of the file, some comments and so on.
For a more complex approach:
To not reinvent the wheel maybe if the machinery is present, or a decent 2D cad library could be found, the entire Drawing workbench could be managed by a completely different library in DXF format, that is a somewhat solid standard.
Images, material texture and whatever you could imagine could be put in place, if not needed or not supported it will be simply ignored by the program that open it.
Simply in FreeCAD at the start we have to add a filter for the file name, a decompression code into a temporary directory and simply load the document.FCstd.
an ipotetical skeleton of the content.xml would be:
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<version num=2020 />
Obviously for each task and workbench maybe a different file will be created, so if you have to modify the 3D part you have only to load the 3D part and the drawings or the textures are not loaded.
Obviously it has to be discussed by the main developer as it is better to make some discussion on some aspects.
But the power of this approach I think could boost FreeCAD development, as when someone will add a new workbench simply anew file that contains the relevant information for this workbench is added.
Think of a document with a some 3D objects and all the technical drawings, maybe even a pdf file with the manual with the specifications and so on.
There were discussion on how to implement the IFC translation in FreeCAD, simply it will be not necessary, the IFC file is simply a part of the new container and only the translation part will occur.
Suppose that FreeCAD version 2020 will manage only 3 or 4 construct of the iIFC part, and maybe version 2023 will manage 10 cnostruct, the 3 years old file is preserving the original IFC file, so the 2023 version could manage and visualize, and maybe modify more information than 2020 version, but the carefully created "version 2020" "FCnew" file will be used without modification.
Only my two cents