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.

  • 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. Adjacent Faces should be selected at once, to create one coherent Machining Allowance. Therefore, the automatic execution mode can be turned off.

  • 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)

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

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

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

 

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

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.

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.

You can check the status of the optimisation in the GD Status and get more information on Warning and Error messages. This can be done directly in the Post-Processing as well as in the Studies tab for an optimisation that has already run.

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 22 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. You can also create six separate constraints and deactivate all of them as well as the six Non-Design Spaces.

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) 2021, MSC Software Corporation and its licensors. All rights reserved.