SimScale CAE Forum

3D Printer Workshop Session 3 - Harmonic Analysis of Complete 3D Printer Assembly



Submission Form

Deadline: 20th of July



Our aim is to investigate the mechanical behaviour of the frame of the 3D printer. We will therefore run two different simulations. First of all, we have to identify the critical eigenfrequencies of the printer frame. Later on, this information will be used as an input to analyze the physical response of our system.

Step by Step Instructions

CAD Model

First of all, let’s import the geometry into your SimScale workspace. To do this, simply click on this link.
It may take several minutes.

Important Note: Since there are quite large numbers of contacts and constraints in this case, the Geometry here we provide ( named with 3D-printer-simplified-partitioned) are partitioned beforehand. The contact faces between different parts are already defined within the CAD model, so you don’t need to manually set up the Contacts as previously. It saves you a lot of time.


  • Click on the New Mesh button to start creating mesh.

  • Select Tet-dominant from the list and choose the following settings
  • Specify the desired mesh order: First order
  • Fineness: 2 - Coarse
  • Number of computing cores: 4
  • Save the settings by clicking on the Save button.

  • Now you can start the meshing operation by clicking on the Start button.

  • The mesh computation takes several minutes to complete and once it is done, you will see a finished status in lower left corner, or under the mesh middle column menu if you close the browser and re-open the workbench page again.

Simulation Setup I - frequency analysis

First, we need to run a frequency analysis to identify the critical eigenfrequencies for the printer. Later on, this information will be used as an input in the harmonic simulation to analyze the physical response of our system.

  • Switch to the Simulation Designer by clicking the related button in the main ribbon bar and then click on New button to create a new simulation set up.

  • Name the simulation as - Frequency Analysis(optional)

  • Select Solid mechanics, Frequency analysis, and Save.

Next step is to specify the mesh to perform our simulation.

  • Click on the Domain item in the project tree and select 3D-printer-simplified_partitioned mesh under the Available Meshes. Don’t forget to save your selection.


Now we define and assign material properties to the different parts.

  • Click on the Material item in the project tree. This will open a middle column menu where you can edit and create materials and assign them to volumes. Click on the New button

Important Note: The material properties should be slight different between the motors and the rods, but we try to arrange the model as simple as possible, by merging the top two motors to its rotating shaft (connecting rods). So when it comes to the material definition, these two solids (volumeOnGeoVolumes_5, volumeOnGeoVolumes_16) are considered as motors.

Material #1 - Steel - rods

  • use import from material library function, we can assign Steel to all the connecting rods.

Material #2 - Steel - motors(350 g)

  • Add an additional material to your project tree.
  • use import from material library function as well, but change the material Density to 4657.

Material #3 - ABS - Acrylonitrile Butadiene Styrene

  • also import from material library , assign ABS - Acrylonitrile Butadiene Styrene to the connectors and all the other remain parts.

Boundary Conditions

  • Click on the Constrains item under Boundary Condition in the project tree which will open a new column in the middle of the windows. Click on New to create

  • Name: fixation
  • Type: Fixed Value
  • x displacement: prescribed with a value of 0
  • y displacement: prescribed with a value of 0
  • z displacement: prescribed with a value of 0

Numerics, which is the next item in the project tree, can be skipped since the default settings are fine.

Then click on the Simulation Control item in the project tree to specify how fast and accurate you want the simulation to be computed.

  • Numer of Computing cores: 4
  • Maximum runtime: 3600
  • Number of eigenfrequecies: 10
  • Lower frequency limit [Hz]: 0
  • Upper frequency limit [Hz]: 1000

To start the simulation, click on the Simulation Runs item in the tree and click on New, give the Run a name and then Create. ( you will get two warnings, one is about “the computation is not carried out in parallel in solver” and the second one about “multiple time steps being written” which can be safely ignored in this case.)

Post-Processing I

Wait for 8 minutes, the simulation will be finished. Now let’s take a look at the simulation result. Our interest is to find out the eigenfrequencies of our assembly.

  • Click on the Eigenfrequency plot sub-item in the project tree. This will open up a graph in the viewer, which shows the first 10 eigenmodes and their related eigenfrequency .

  • Also click on the Eigenfrequency table sub-item in the project tree, we’ll get a list of these 10 eigenfrequency in the viewer.

  • To have a look at the eigenmodes, pick it from the results field., and Add Filter of WarpByVector, make the Scale Factor a little bit lower, say 0.01 for example.

  • In order to visually distinguish the original position with the movement in the viewer, you can set one’s opacity value lower than the other.

Simulation Setup II

Now with the frequency range, we create a harmonic analysis to investigate the physical response of our system.

  • Back to the Simulation Designer, Click on Simulations and the New button
  • Create a Harmonic Analysis simulation run.

The next step of the setup should be exactly the same as we did in the Frequency Analysis from previous section, please assign the same mesh to the domain.

Geometry Primitives

There is one important thing to do before submitting the simulation, is to pick up the regions where we are interested in the result. So in order to get the region activated, now we need to define it beforehand under Geometry Primitives, and later we can just assign it to Point Data under Result Control .

  • Come to the Geometry Primitives under the Domain, click on New, and select Point

My interest is in the displacement of the far-end point (point 1) of the assembly to see if the frame is wabbling a lot and also will it be a big influence on the extruder’s tip (Point 4 - Extruder ). So we need to take the geometry coordinates (x, y, z) from a CAD viewer, and put it into the column.

  • Name: Point1
  • Center (x) [m]: 0.181
  • Center (y) [m]: 0.334
  • Center (z) [m]: -0.303

  • Name: Point4-Extruder
  • Center (x) [m]: 0.159
  • Center (y) [m]: 0.083
  • Center (z) [m]: -0.11


We’re going to assign the same material properties to different parts as previously in frequency simulation, but one additional thing, which is important is that here we want to include material damping.

Change the Damping properties:

Steel ( both for Steel-rods and Steel-motors)

  • Damping: Rayleigh Damping
  • αK: 0.00015
  • βM: 5.625

ABS - Acrylonitrile Butadiene Styrene

  • Damping: Rayleigh Damping
  • αK: 0.000037
  • βM: 1.5

And same as previous, fix these 4 supporting ends as Constraints.

Next beside the fixation constraints, add Loads under boundary condition:

  • Name: Extruder-Block mass (450 g)
  • Type: Force
  • fx: 0
  • fy: 0
  • fz: -4414.5 N
  • Scaling: 1

For the Numerics:
we are going to use MUMPS as the Equation solver

Click on the Simulation Control item in the project tree to specify the frequency details for this simulation using the result data we get from the frequency analysis previously.

  • Excitation frequencies: frequency list
  • Start frequency: 20
  • End frequency: 120
  • Frequency stepping: 2.5
  • Number of computing cores: 8
  • Maximum runtime: 14400

  • For the displacement Field, the result can be displayed in real and imag part as well as magnitude and phase.

Important Note: To prevent the machine from running out of storage, which could lead the simulation to failure, we only create our concerned subjects under Solution fields for the solver to compute. In this case, we care about the physical response of the system, which is the movement.
So please delete all the unconcerned fields such as cauchy stress or total strain which may already created as default, otherwise you may get storage errors.

  • Add Point Data to the Result Control, pick points from the Geometry Primitives which we created earlier, specify the details, and Save.

  • Name : point1-x/ point1-y/ point1-z
  • Type : Harmonic response
  • Field selection : displacement
  • Component selection : x-/ y-/ z- displacement (pick one selection regarding to each Name)
  • Complex numbers : magnitude and phase

Similarly, also specify them for point4-x/ point4-y/ point4-z.

Now finally, click on the Simulation Runs item in the tree and click on New( again, you will get two warnings, one is about “contacts being absent while the geometry consists of multiple solids” , second one is “multiple time steps being written”, just safely ignore them in this case, it will be fine.), give the Run a name and then Create.

The whole simulation could take up around 33 minutes, once your submitted the job is finished, you will see the 100% green bar as the finished status, and then you can see the simulation result.


PDF Version of the 3D Printer Workshop - Session 3



BY using this video we can assemble the printer, but I am getting a not connected error showing up error 30. HP Printer Error Code 30 assured me for help. Can i get the warning solution of multiple form?