Overview
To understand Econ and Tech scores it is important to understand what information is considered and how it is processed to get to a result.
The graph to the right describes exemplary the relation among a part’s properties, blackboxes, and scores.
Each part is made up of a number of properties and corresponding values.
Blackboxes are small functions that evaluate one or several part properties by reading their values and calculating a result.
The blackbox results are fed into scores where they are aggregated and produce a score result.
Calculating an Econ Score
By convention, Econ and Tech score results lie between 0 and 1. whereby 0 indicates poor suitability and 1 perfect suitability. The results in the [0, 1] interval are displayed as percentage values from 0% to 100% in the user interface.
The formula to arrive at an Econ score is to choose which blackboxes should influence the Econ score results and then calculate the Weighted Average of these results. Results of blackboxes also lie in an [0, 1] interval by convention.
Extensive details on the Weighted Average formula can be found on Wikipedia: https://en.wikipedia.org/wiki/Weighted_arithmetic_mean#Mathematical_definition
An econ score might consist of the following blackboxes - the properties that are evaluated by each blackbox - and a weight that informs how much impact an individual blackbox has in relation to the other blackbox results.
Blackbox | Properties incl. Type | Weight |
---|---|---|
Lead time |
| 0.7 |
Part price |
| 0.5 |
Price per kg |
| 0.5 |
Selection logic |
| 1.0 |
In the above example, the blackbox Selection logic has the strongest impact on the econ score.
The results of the score calculation are displayed for each part and each score in an overview:
Factor
The blackbox - and thus the corresponding properties - that are considered for the scoreScore
The individual result which is calculated by the corresponding blackbox - without applying weights.Impact
The weight, or impact, this blackbox should have in the overall calculationSubscore
The weighted result of each blackbox how it is considered for the overall score calculation
Calculating a Tech Score
The functions seen in the tech score are as follows:
// 1. Max Dimension: function fMaxDim(maxDim) { const center = 200; // Center of the Gaussian curve const deviation = Math.abs(maxDim - center); // Only consider positive deviations const standardDeviation = 200; // Adjust this value based on desired sensitivity // Gaussian function to calculate the score const gaussian = (x) => Math.exp(-Math.pow(deviation,2) / (2 * Math.pow(standardDeviation,2))); const score = gaussian(maxDim) return score; } //2. Average Wall Thickness function fAvgWallThickness(avgWallThickness) { const printableThreshold = 0.7; // Threshold for printable average wall thickness const sigmoidFactor = 2; // Adjust this factor based on desired sensitivity const score = 1 / (1 + Math.exp(-(avgWallThickness - printableThreshold) * sigmoidFactor)); return score; } //3. average wall thickness & maxDim function fMaxDimAvgWallThickness(maxDim, avgWallThickness) { const desiredRatio = 10; // Adjust the desired ratio based on specific requirements // Calculate the ratio between max dimension and average wall thickness const ratio = maxDim / avgWallThickness; // Calculate the score based on the ratio and desired ratio const score = 1 - Math.abs(ratio - desiredRatio) / desiredRatio; // Ensure the score is within the range of 0 to 1 return Math.max(0, Math.min(score, 1)); } // 4. Model Area / Bounding Box Area: function fSurfaceAreaBoundingBoxArea(x, y, z, surfaceArea, volume) { const boundingBoxArea = 2 * (x * y + y * z + z * x); const desiredRatio = 0.9; // Adjust the desired ratio (closer to 1 for higher score) const sigmoidFactor = 1; // Adjust the sigmoid factor based on desired sensitivity const ratio = surfaceArea / boundingBoxArea; // Apply sigmoid function to map the ratio between 0 and 1 const sigmoid = (x) => 1 / (1 + Math.exp(-x * sigmoidFactor)); const score = sigmoid(ratio - desiredRatio); return ratio; } //5. Aspect Ratio function fAspectRatio(x, y, z) { const desiredAspectRatio = 1; // Desired aspect ratio const aspectRatio = Math.max(x, y, z) / Math.min(x, y, z); const sigma = 2; // Adjust this parameter based on desired sensitivity // Calculate the bell curve value using the Gaussian distribution formula const exponent = -(Math.pow(aspectRatio - desiredAspectRatio, 2) / (2 * Math.pow(sigma, 2))); const bellCurveValue = Math.exp(exponent); return bellCurveValue; } //6. Waste Ratio function fWasteRatio(volume, boundingBoxVolume) { const desiredWasteRatio = 0.00; // Desired waste ratio (close to 0) const sigmoidFactor = 5; // Adjust this factor based on desired sensitivity // Sigmoid function to map the ratio between 0 and 1 const sigmoid = (x) =>1 - 1 / (1 + Math.exp(-(x - 0.5) * sigmoidFactor)); const ratio = volume / boundingBoxVolume; const score = sigmoid(ratio); return score; }
Having these functions seeks to give more power to evaluate parts for DfAM mathematically.
What do these functions mean?
Max Dimension (MaxDim):
Summary: Evaluates the printability and structural integrity of a 3D printed part based on its maximum dimension.
Explanation: The function calculates a score that reflects how the maximum dimension of a part compares to a desired center value. The score is determined using a Gaussian curve, with a higher score indicating that the part's size is closer to the desired center value. This center value is determined through empirical evaluation that parts that are too small should be penalized and parts that are close to the printer’s maximum are also slightly less viable than those with a reasonable dimension and where multiple of the same part can fit in the printer.
Average Wall Thickness (AvgWallThickness):
Summary: Assesses the printability of a 3D printed part by considering the average thickness of its walls.
Explanation: The function calculates a score based on the average wall thickness of a part. A sigmoid function is used to map the score, with a higher score indicating that the average wall thickness is closer to a printable threshold. This score helps determine whether the part's walls are within a suitable range for successful printing. A lower threshold is riskier in AM while being over-thick isn’t problematic, unless special printing processes take place, such as printing large full metal blocks that can cause issues with thermal stresses.
Max Dimension vs. Avg. Wall Thickness (MaxDimAvgWallThickness):
Summary: Provides a combined assessment of a part's size and wall thickness to determine its printability and structural stability.
Explanation: A higher ratio indicates that the part is relatively larger compared to the thickness of its walls, which can result in thin or unsupported areas. This may pose challenges during printing, as thin walls can be prone to deformation, warping, or structural instability. On the other hand, a lower ratio suggests that the part has a more balanced relationship between its size and wall thickness, which can contribute to better printability and structural integrity. It indicates that the walls are relatively thicker compared to the overall size of the part, providing better stability and strength.
Surface Area vs. Bounding Box Area (SurfaceAreaBoundingBoxArea):
Summary: Evaluates how efficiently a 3D printed part utilizes its space within the bounding box.
Explanation: A higher ratio indicates that the part's surface area is relatively larger compared to its bounding box, suggesting a more complex and intricate geometry. This can be desirable for detailed and intricate 3D prints. On the other hand, a lower ratio indicates that the part's surface area is relatively smaller compared to its bounding box, suggesting a simpler and more solid geometry. This can be advantageous for printing sturdy and robust objects with less intricate details.
Aspect Ratio (AspectRatio):
Summary: Assesses the balance between the dimensions of a 3D printed part to ensure optimal printability.
Explanation: A higher ratio indicates that the part's surface area is relatively larger compared to its bounding box, suggesting a more complex and intricate geometry. This can be desirable for detailed and intricate 3D prints. On the other hand, a lower ratio indicates that the part's surface area is relatively smaller compared to its bounding box, suggesting a simpler and more solid geometry. This can be advantageous for printing sturdy and robust objects with less intricate details.
Waste Ratio (WasteRatio):
Summary: Evaluates the efficiency of material usage in a 3D printed part.
Explanation: Minimizing the waste ratio is desirable in 3D printing as it helps optimize material usage, reduce costs, and reduce environmental impact. Design considerations, such as optimizing support structures, using lattice or infill patterns, and incorporating lightweight designs, can help reduce the waste ratio and improve the overall efficiency of the printing process. Additionally, a high waste ratio for classical manufacture does point towards AM as a solution.
Profiles with Different Weights
It is possible to look at the same part from different angles. Two typical cases for optimization are cost reduction and lead time improvement. It is possible to set up different Econ scores by including different blackboxes or adjusting the weights by which blackboxes impact the overall results. Thus different Profiles can be created that score parts according to different measurements.
By default, we have configured three different profiles by which to assess parts:
General
Cost reduction
Lead time improvement