This application provides tools for topology optimization and finite element analysis (FEA), making advanced design techniques more accessible and affordable for hobbyists, makers, and students. It leverages the benefits of 3D printing and additive manufacturing to optimize for strength, weight reduction, and material savings.
- Topology Optimization: Advanced algorithms for optimizing material layout within a given design space.
- Finite Element Analysis (FEA): Tools to analyze the structural performance of designs.
- Interactive 3D Visualization: Integration with VTK for interactive visualization and selection of mesh regions.
- User-friendly GUI: Easy-to-use graphical interface for managing the optimization and analysis process.
Create a virtual environment and install the required packages:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Cloning the Repository
git clone https://github.com/blackforestdev/topology_optimization_app.git
cd topology_optimization_app
#Usage
##Running the Application
###Activate the virtual environment and run the main script:
source venv/bin/activate
python3 main.py
#GUI Overview
File Menu: Load and save project files.
Optimization Menu: Set up and run topology optimization.
Analysis Menu: Perform FEA on the optimized design.
View Menu: Toggle different visualization options.
##Example Workflow
Load an STL file of the design space.
Set material properties, loads, and constraints.
Run topology optimization to generate an optimized design.
Perform FEA to validate the structural performance.
Visualize the results in the 3D viewer.
#Directory Structure
topology_optimization_app/
├── fea/
│ ├── __init__.py
│ ├── fea_solver.py
│ ├── loads_and_constraints.py
│ ├── material_properties.py
│ ├── mesh_generation.py
├── gui/
│ ├── __init__.py
│ ├── app.py
│ ├── controls.py
│ ├── settings_dialogs.py
├── optimization/
│ ├── __init__.py
│ ├── algorithms.py
│ ├── solver.py
├── tools/
│ ├── test_pymesh.py
│ ├── test_vtk.py
│ ├── topop_program_settup.py
│ ├── vtkTkRenderWindowInteractor_test.py
├── utils/
│ ├── __init__.py
│ ├── file_utils.py
├── vtk_components/
│ ├── __init__.py
│ ├── interactor.py
│ ├── renderer.py
│ ├── vtk_utilities.py
├── main.py
└── requirements.txt
#Contributing
##Contributions are welcome! Please follow these steps to contribute:
Fork the repository.
Create a new branch (git checkout -b feature/your-feature).
Commit your changes (git commit -m 'Add some feature').
Push to the branch (git push origin feature/your-feature).
Open a pull request.
#License
###This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgements
Special thanks to the open-source community for providing the tools and libraries used in this project.
Inspired by various academic and industry research in topology optimization and finite element analysis.
#Contact
For any questions or feedback, please contact blackforestdev.