Given the number of print parameters available, the number of possible print configurations is quite large, consisting of all the possible combinations of the different parameter values.
It is not obvious how the different parameters will interact with one another to produce different behavior in the as-printed part, so making decisions about what print configuration to choose to obtain a working part is difficult to say the least. The goal of the SmartSlice optimization algorithm is to provide a user with a ranked list of print configurations, each of which satisfies the requirements of maximum displacement and minimum safety factor, and to do so quickly and accurately.
To begin optimizing a part, the algorithm needs the model (.stl file), the boundary conditions (the anchor faces, the load faces, and the load magnitudes and directions), and the specified requirements (displacement and safety factor).
Given this data, the algorithm first tests a solid version of the model as a means of determining if any printable version of the part will meet the requirements. If the solid version fails to meet the requirements, there is no need to continue with optimization and modifications to the model geometry or requirements must be made.
If the solid model meets the requirements, the algorithm then begins to search the space of possible print configurations for solutions that both meet the requirements and also provide the user with additional benefits, for example, faster print time or lower material usage. In addition, the algorithm looks for results that vary over the range of design variables to provide options containing differing numbers of walls, top and bottom layers, infill densities, modifier meshes, etc.
The final ranked list of print configurations represents a range of design options, all of which satisfy the requirements, allowing the user to choose the print configurations that best suits their needs.