3.8.3 Export Model to SAF
Last updated
Last updated
SAF stands for "Structural Analysis Format" and is a Excel-bases, open format for the exchange of structural models. Details can be found under https://www.scia.net/en/innovations/structural-analysis-format-saf.
The Karamba3D SAF exporter supports the following SAF features:
export of beams, slabs, plates and shells.
inclusion of beam and truss results for designing elements and connections in e.g. IDEA Statica.
export of loads and load-cases, point- and line-joints,...
Fig. 3.8.3.1 shows the "Export Model to SAF"-component in action. It takes a Karamba3d model as input and outputs an xlsx-file with the SAF model (see the example definition "SAF_SimpleCanopyExport.gh" on the bottom of the page). In case the user does not specify a Filepath the SAF lsx-file gets stored on the Desktop under the name "Karamba3DModel.xlsx".
Sometimes one wants to limit the exported load-cases to a subset of those available in the model. Use the "LCases" input-plug to specify the names of the load-cases and load-case-combinations to be exported. By defaukl all load-cases and load-case-combinations in the model get exported. The hint in section Load-Case-Combinations explains how load-cases and load-case-combinations can be excluded from the default list.
The export of large models can take some time. This is why one needs to supply a "True"-value at the input-plug "Export?" to initiate the process.
The submenus "Project Info" and "Model Info" can be used to specify detailed information that gets included in the SAF file. For a description of the individual inputs see https://www.saf.guide/en/stable/getting-started/project-and-model-specifications/README.html. The value-lists visible in Fig. 3.8.3.1 can be created by right-clicking on the component and selecting "Expand ValueLists" from the context menu.
The submenu "Export Options" contains further input that controls SAF-export:
"LSeg": When exporting cross section forces of 1-D elements this input specifies the maximum distance between result sections. The default value is "-1": a negative number means that the Karamba3D model setting is used. The latter can be specified in the "ModelView"-component under "Render Settings" and "Length/Segment".
"MaxFaces": Curved surface get exported based on their mesh: each mesh face then correponds to a surface. For very fine meshes this may lead to excessivley large SAF-files which take a ölong time to create. The "MaxFaces"-input sets the maximum number of faces per surface. Surfaces which exceed that number do not get exported.
"Version": This lets one specify the version of SAF to be used. It defaults to "2.3.0". Not all programs support the latest version of SAF. At the time of writing Dlubal's RFEM 6 supports SAF 1.0.5.
"CroSecConv": The export of cross-sections to different FE-programs can be cumbersome because their exact naming is not standardized. The "CroSecConv" input-plug can be used to specify a conversion table for cross section names for export. The file is expected to be a human readable CSV-file of the following format: ";name;alias-name". For an example see "CrossSectionNameAliases.csv" in the folder "CrossSections" of the Karamba3D installation folder. In case of multiple alias names the first one counts.
The possibility to export surfaces and surface loads as compact entities represents a major advantage of SAF over other line based formats like DAStV.
Flat surfaces may be bounded by straight lines, arcs and spline. These surfaces may contain arbitrary holes. In order to get this geometry data across to SAF use the Karamba3D Mesher (see here) for including it into the structural model. This mesher supplements the mesh with the underlying surface which allows for a clean export-data. Figure 3.8.3.2 shows the result of the example file "SAF_FlatSurfaceWithHoleExport.gh".
When point-loads or supports are placed on the curved boundary of a surface it may happen that an error occurs on import. The reason lies in numerical inacuracies which make the support or point-load position lie slightly outside the surface. In such cases try to move the points slightly to the inside and use MeshBreps "IPts" input-plug to supply those points as inclusion points of the mesh.
When exported to a SAF xlsx-file and imported into SCIA Engineer the result is a clean geometry as can be seen in fig. 3.8.3.3.
In case of curved surfaces the individual mesh faces get exported as surfaces which may lead to excessive computation times and file sizes. The "MaxFaces"-input under "Export Options" sets the default maximum number of mesh-faces to 2000. Change this value in case of larger meshes.
In Karamba3D distributed loads on surfaces can be modelled using MeshLoads. Similar to surfaces, flat MeshLoads which act on surfaces lend themselves to a clean SAF export which comprises the surface-boundary data only. As for surfaces the condition is, that the MeshLoads's mesh was created using the "MeshBreps"-component - since this leaves the mesh connected with the underlying brep. Using meshes without underlying surfaces also works - each mesh face is then exported as a single surface load. This also applies to loads specified on curved surfaces. Fig. 3.8.3.4 shows an exported model with an arbitrarily placed surface load.
In Karamba3D MeshLoads work differently than "SurfaceActionFree" in SAF. The latter apply to surfaces only. MeshLoads however may also cause line-loads on beams when being inside the loads-distribution range. Currently the SAF exporter of Karamba3D exports all MeshLoads as "SurfaceActionFree". In case one wants to create distributed loads on beams - like in fig. 3.8.3.1 one needs to apply the workaround shown in 3.8.3.5 and exemplified in "SAF_SimpleCanopyExport.gh". There those MeshLoads which shall act on beams get first selected and then disassembled into line-loads. The reassembled model can then be exported.