OUTDATED VERSION. Follow the link for the latest version: https://www.hexagonmi.com/MSC-Apex-Generative-Design/help
Generative Design - GD-Bracket
Goal of this tutorial
Influencing the Complexity - experiencing the influence
Reducing fixation points vs. Keep all Non-Design Spaces
Applying Event Specific Stress Goals
Set up different optimisations to exploit the full potential of Generative Design
Training:
Relevant data for this tutorial:
Step 1: Start MSC Apex Generative Design
The program starts and you can directly create your optimisation model
Step 2: Model generation
You can either create the geometry directly in MSC Apex Generative Design or import already existing files. You can import .xb, .xt, .step, and .sldprt files into the program.
Import/create the Design Space including the Non-Design Spaces in MSC Apex Generative Design 2020 as one solid. For this GD-Bracket the already prepared Design Space was imported.
Open the Optimisation Tools to select the imported Geometry as the Design Space
Non-Design Spaces have to be selected using the Optimisation Tools. In this case six fixation points at the bottom of the part and four force application points are selected using the offset method with an offset distance of 3 mm.
Machining Allowances should be applied to every functional surface. Thus, at the end two geometries are created: The Nominal-Geometry and the Print-Geometry. Adjacent Faces should be selected at once, to create one coherent Machining Allowance
In this case a value of 1 mm was chosen. How much Machining Allowance is necessary, depends on the dimensions of the part and the manufacturing process/machine.
Create the material in the Materials editor and assign it to the Design Space
The specific values needed are the Young's Modulus (192e3 MPa), Poisson ratio (0.3) and Density (7.97e-6 kg/mm3)
For the next steps the Machining Allowances are hidden.
Step 3: Definition of boundary conditions
Go to the Loads & Boundary Condition Tool to enter the loads and fixations. Displacements, Forces, Moments, Gravity and Pressure Loads can be applied using different selection options.
Creation of local coordinate systems to apply forces
For this model one Local Coordinate System needs to be created to easily apply the corresponding force to the model.
By opening the Coordinate Tools a local coordinate system is created by entering the three orientations (alpha = 75°, beta = 90°, gamma = 315°) and placing it on the front plane (coordinate system 1).
To apply the forces the Loads & Boundary Condition Tool is needed. By disabling the Thunderbolt (tool execution mode selector) on the top, both Faces of the Non-Design Spaces can be selected simultaneously. Select the Faces on the left side.
Three remote loads are created (Force - Moment 1, Force - Moment 2 and Force - Moment 3) on the shown surfaces with the given values in the tables.
Name | Force/Moment/Pressure/Gravity | Direction (depending on local coordinate system) | Value in N/Nmm |
---|---|---|---|
Force - Moment 1 | Force on faces | z (proposed center is point of application) | -5000 |
Force - Moment 2 is applied on the other two surfaces. The point of application of this remote Force can set up by determining a point regarding the global coordinate system.
Name | Force/Moment/Pressure/Gravity | Direction (depending on local coordinate system) | Value in N/Nmm |
---|---|---|---|
Force - Moment 2 | Force on faces | z (Point of Application [-100;0;-15]) | -2000 |
Force - Moment 3 is applied on the same surfaces like the first Force. This new Load is referring to the local coordinate system created earlier.
Name | Force/Moment/Pressure/Gravity | Direction (depending on local coordinate system) | Value in N/Nmm |
---|---|---|---|
Force - Moment 3 | Force on faces | x (local coordinate system 1; proposed center is point of application) | 7000 |
One Constraint which includes all six Non-Design Spaces is created:
Name | Direction |
---|---|
Constraint 1 | x, y, z (=0) |
Therefore, the Loads & Boundary Condition Tool is needed.
Under Displacement Constraints a “clamped” constraint can be chosen, which locks translations in all three directions. On the left side of the Tool the relevant geometry choice can be selected. In this case the inner surfaces of the Non-Design Spaces are selected to attach the constraints.
Step 4: Definition of load cases
The next steps are defined in the Studies area.
All boundary conditions must be assigned to the specific load cases, which are defined as Events. The number of Events can be changed by adding/deleting Events to the GD Scenario. The assignment of the boundary conditions to the Events can be made in the Loads & Constrains Window. The already created loads and constraints that concern the Design Space are listed in this window and can be activated for each Event individually.
Event1: Force-Moment 1, Force-Moment 2, Constraint 1
Event2: Force-Moment 2, Force-Moment 3, Constraint 1
Step 5: Definition of optimisation parameters and Generative Design Settings
The optimisation parameters are selected in the Studies Area as well.
Select the Strut Density: Medium
Select the Shape Quality: Balanced
Set the Complexity Setting: 20
Enter the Stress Goal: 80 MPa
Don’t forget to save the project!
Adding Advanced User Settings
If on all functional surfaces a Machining Allowance is applied, with the Advances User Settings the automatic growth of Non-Design Spaces can be deactivated with the following command:
automaticFunctionalFacesDetection.positiveNonDesignDirection=false
The automatic growth of Non-Design Spaces is activated as the default in case that no Machining Allowances are applied. The automatic growth of Non-Design Spaces can sometimes lead to some issues. More information here.
Generative Design
You can always change the Strut Density, Stress Goal and Complexity to influence the results and try out different options.
Changing the complexity setting:
By changing the Complexity from 8 GB (left image below) to 20 GB (right image below) the resulting structure changes as well because the optimisation is carried out with a higher resolution. The emerging structure is more detailed and defined, but it also takes more time to get to this result. It depends on the model, the field of application and other non-quantifiable conditions which complexity setting is best suited for the part. We suggest starting with a low Complexity value for the first optimisations and after receiving the results consider whether a higher value is appropriate for the model.
Reduce fixation points vs. Keep all Non-Design Spaces
To realize an optimisation with as much freedom as possible you should disable the Keep Non-Design Spaces function for the six fixations points as well as the constraint created with them. For this to work it is important that all fixation points are fixated in one constraint.
This way the algorithm works at its best and creates the most fitting results to the boundary conditions. With this approach it is possible to let the algorithm decide which and how many fixation points are necessary and needed for the applied boundary conditions. The reduction of fixation points almost always results in a more lightweight design by still taking into consideration the Stress Goal of the structure.
You can see the results for the two Complexity settings and the deactivation of Keep Non-Design Spaces below.
In other cases, it is important to keep defined fixation points and this can be realized with the activated Keep Non-Design Spaces function.
The result in this example includes all six fixation points (Complexity 8). As shown in the left image the first optimisation reduced one of the fixation points and by choosing the presented function all of the six fixation points are included in the result.
Introducing Event Specific Stress Goals
To prioritize Events differently, Event Specific Stress Goals can be placed on single Events. It is also possible to prioritize only one Event. In this case the other event will take the global Stress Goal into consideration for the optimisation.
It can be seen clearly that the prioritization of the first Events changes the design. The geometry in the left picture shows more material in the structure because of the lower Stress Goal for the first Event. The enveloped stress for both Events shows clearly a gradation between front and back structure. You can also have a look at the stress distribution for each Event separately. By activating the Lock Spectrum Range, the stresses can be compared more easily.
Step 6: Starting the optimisation and visualize the results
If all data is correct, the optimisation can be started and tracked in the Post Processing. The Analysis Readiness function checks if all information is provided and the optimisation can start.
All result iterations are displayed as soon as they are available. Furthermore, you are able to stop the optimisation in this selection area. However, a Restart is not directly possible.
The optimisation is finished after 64 iterations (Shape Quality: Balanced).
Step 7: Visualization of Stresses & Displacements
Inside the Post Processing the von Mises stress and the displacements are visible for all iterations
The Scale can be influenced individually
You might also be interested in these tutorials:
Copyright (C) 2020, MSC Software Corporation and its licensors. All rights reserved.