Skip to content

RandoTechNerd/Knob-Generator

Repository files navigation

🎛️ 3D Printable Knob Generator

A specialized design tool for creating custom, 3D-printable knobs for potentiometers, encoders, and mechanical machine parts. Built with Python and Streamlit, it exports ready-to-print STL files.

✨ Features

  • Custom Geometry: Adjust diameter, height, and number of lobes.
  • Shaft Options: Support for D-Shafts, Round Holes, and Nut Traps (Hex nuts).
  • Real-time Preview: Interactive 3D visualization of the generated part.
  • STL Export: One-click download of high-quality mesh files.

🤝 Credits & Powered By

This project stands on the shoulders of giants. It is built using the following open-source technologies:

  • Streamlit: For the rapid, interactive web application framework.
  • NumPy: For high-performance numerical calculations.
  • numpy-stl: For handling STL mesh generation and manipulation.
  • Plotly: For the interactive 3D rendering engine.
  • PyInstaller: For packaging the application into a standalone Windows executable.

Inspired by parametric knob discussions on Maker Forums.

📥 Download & Install

For Users: Please visit the Releases page on this repository to download the latest Windows Installer (KnobGenerator_Setup.exe).

🛠️ Developer Setup

If you want to run the code from source or contribute:

  1. Clone this repository.
  2. Run the automated setup script:
    • Windows: Double-click developer_setup.bat.
  3. Or manually:
    pip install -r requirements.txt
    streamlit run app.py

📄 License

This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License.

You are free to use, share, and adapt this software for personal, non-commercial purposes. For any commercial use (selling the software or the 3D printed parts generated by it), please contact the author for permission.

CC BY-NC 4.0

View Full License

About

Knob Generator -make custom knob models that can be downloaded as STL

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors