The FreeCAD Standard file format ({{FileName|.FCStd}}) is FreeCAD's main file format. It is a compound format, supports compression and embedding of different kinds of data.
FCStd is a standard zip file containing one or more files in a specific structure. As such, it is possible to unpack a {{FileName|.FCStd}} file using a regular zip decompression tool, but care needs to be taken while packing the contents of a {{FileName|.FCStd}} file. FreeCAD contains a "Project Utility" to re-pack {{FileName|.FCStd}} files, it's use is described in Change the source of the file .FCStd below.
This is the main {{FileName|.xml}} file describing all the objects inside a FreeCAD document, that is, only the geometric and parametric definition of the objects, not their visual representation. If FreeCAD is ran in console mode (without the GUI), only this {{FileName|Document.xml}} will be used.
{{Code|lang=xml|code=
}}This is the GUI counterpart of the {{FileName|Document.xml}} file. For each object described in the {{FileName|Document.xml}}, there is one corresponding object in {{FileName|GuiDocument.xml}}, describing the visual representation of that object (color, linewidth, etc).
This is a 128x128 pixels thumbnail image of the document, which is a screenshot of the 3D view at save time. Thumbnails are generated only if the corresponding option is enabled in the FreeCAD preferences.
These are the B-rep shapes of all objects that have a Part shape in the {{FileName|Document.xml}}. Each object, even if it is parametric, has its shape stored as an individual {{FileName|.brep}} file, so it can be accessed by components without the need to recalculate the shape.
These are the template svg files used in TechDraw pages.
Structure of a typical {{FileName|.FCStd}} file. The extension can be changed to {{FileName|.zip}} to explore it like a normal directory. The {{FileName|Document.xml}} and {{FileName|GuiDocument.xml}} are at the root of the archive, together with any number of {{FileName|.brp}} (BREP) files. One subdirectory may hold the thumbnail, and another the SVG templates used by TechDraw.
File.FCStd (File.zip)
|
|--thumbnails/
| |
| :--Thumbnail.png
|
:--Document.xml
:--GuiDocument.xml
:--Shape1.brp
:--Shape2.brp
:--MyPage.svg
:--etc.
In order to embed other file types inside a FCStd file, you must first create a scripted object from the Python console, and give it an App::PropertyFileIncluded
property.
Then in the property editor you can go to the added property and choose a file in the computer. Once the FCStd file is saved, the file assigned to the PropertyFileIncluded property will be packed inside the .FCStd
. When the document is restored, the same file will be restored with the PropertyFileIncluded property.
custom_obj = App.ActiveDocument.addObject("App::FeaturePython", "CustomObject")
custom_obj.addProperty("App::PropertyFileIncluded", "AttachedFile")
See the forum thread, PDF inside the project.
- See Std ProjectUtil.
- A file Converter utility ImageConv.
documentation index > Developer > [Developer Documentation](Category_Developer Documentation.md) > File_Formats > File Format FCStd