printfarmhero is a web-based utility designed to help manage 3D printing projects by generating a printable checklist from a collection of STL files. Simply upload a .zip archive containing your 3D models, and the application will produce an HTML checklist complete with 3D previews for each .stl file.
This tool is perfect for "print farms" or individuals managing complex projects with numerous parts, ensuring every component is accounted for before starting a print job.
- ZIP File Upload: Easily upload all your project's STL files in a single
.ziparchive. - Automatic STL Detection: The application recursively scans the uploaded archive to find all
.stlfiles. - 3D Preview Generation: A 2D preview image of each 3D model is automatically generated to provide a visual reference.
- Printable Checklist: Generates a clean, simple HTML page with filenames, file paths, visual previews, and checkboxes, ready to be printed.
- File Count: Displays the total number of STL files found in the archive.
You can run printfarmhero directly on your machine using Python.
- Python 3.12 or newer
-
Clone the repository:
git clone https://github.com/fbedev/printfarmhero.git cd printfarmhero -
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python app.py
-
Open your web browser and navigate to
http://127.0.0.1:8000.
- Once the application is running, open the web interface in your browser.
- Click the "Choose File" button and select a
.zipfile containing your STL models. - Click the "Generate Checklist" (生成清單) button.
- A progress bar will show the status of the file upload and processing.
- Once complete, the checklist will be displayed on the page.
- Use the "Print Checklist" (列印清單) button to open your browser's print dialog.
For a containerized setup, you can use the provided Dockerfile.
-
Build the Docker image:
docker build -t printfarmhero . -
Run the Docker container:
docker run -p 8000:8000 printfarmhero
-
The application will be accessible at
http://localhost:8000.
- Backend: Python, Flask
- 3D Model Processing:
numpy-stl - Image Generation:
matplotlib - Frontend: HTML, CSS, JavaScript
- Containerization: Docker
