GUI for topology optimization of compliant mechanisms coded in Python by Luc PREVOST.
Topopt Comec requires the folowing packages on a 3.xx Python environement:
To execute it, set the optimizer2D.py, optimizer3D.py, topopt_comec.py in the same folder and run the topopt_comec.py file.
After launching the program, a defaut case is created. This last is a force inverter, a classic test case among compliant mechanisms.
The convention used for "dimensions" is classic: (X, Y, Z), but negative values are not accepted. The "volume fraction" corresponds to the filling of the domain and is between 0 and 1.
It is possible to impose a "void" area in the domain. This last is defined by a "shape" (square or circle), a "radius" which must be positive and a "center". To disable this functionality, set the "shape" at -.
There must be an "input force" and at least one "output force". Their point of application must me inside the domain. A negative "stiffness" is accepted and has the same effect as flipping the direction. To disable a "force", set the "direction" at -.
There must be at least one "support". They must be inside the domain. To disable a "support", set the "fixed dimensions" parameter at -.
The material is defined by the "Young's modulus" for the elasticity, and the "Poisson's ratio" for the deformation in directions perpendicular to the specific direction of loading. The "Young's modulus" must be between 0 and 10, and the "Poisson's ratio" must be between 0 and 0.5.
The optimisation part is a modified version of the 165 lines topology optimization code from DTU. It constits of a linear optimization with SIMP method. There is one optimizer file for the 2D case and one for the 3D case, but they operates in the exact same way. The first parameter allows the user to chose the "filter" method between density and sensitivity. The second is about the filter's "radius", which must be stricly positive. The "penalization" factor is used in the SIMP method, and 3 is generally a good choice. The time per "iteration" is roughly proportional to the total number of elements. The number of "iteration" must be positive. Before creating a mechanism with many iterations, it is recomended to visualy check the inputs by running 0 "iteration". The iteration process is updated in the terminal. It is possible to save the result by checking the box "save". This will create a folder named Results, and place inside the image output as a png file. The box "save" must be checked before clicking "create".
Now it is your turn to create cool mechanisms !
Thank you for using Topopt Comec 🙂
Just optimize !