README.md

    🖨️ Генератор STL по изображению для многоцветной 3D-печати

    Скрипт преобразует изображение в набор STL-файлов, разделённых по цветам и слоям, для послойной FDM-печати с несколькими экструдерами или цветами.


    📦 Что делает

    • Определяет до 3 преобладающих цветов
    • Создаёт:
      • Слой 0 — сплошная подложка (150×150 мм, 0.48 мм)
      • Слои 1+ — каждый слой содержит свой цвет + все менее распространённые
      • Промежуточные слои — для плавных переходов между цветами (опционально)
    • Каждый STL содержит только нужную геометрию слоя
    • Все STL объединяются в единый .3mf-файл для удобной печати

    🛠 Установка

    pip install -r requirements.txt
    

    Или вручную:

    pip install numpy opencv-python trimesh scikit-learn tk configparser
    

    Для GUI может потребоваться установка:

    sudo apt install python3-tk
    

    🚀 Использование

    1. Поместите изображение (.png или .jpg) в любую папку.
    2. Запустите из терминала:
    python3 img_print.py путь/к/изображению.png
    
    1. Для запуска графического интерфейса:
    python3 gui.py
    

    📂 Результат

    В той же папке появится подкаталог __result, содержащий:

    • STL-файлы с подложкой и цветными слоями (*_layer.stl)
    • Маски-предпросмотры (*_preview.png)
    • Финальный .3mf-файл для загрузки в слайсер

    Импортируйте все STL или .3mf в слайсер (например, Bambu Studio), объедините в один объект, назначьте цвет/экструдер для каждого слоя.


    ⚙️ Настройки по умолчанию

    Параметр Значение Назначение
    output_size_mm 150 Размер модели в мм по большей стороне (ширина или высота)
    base_thickness_mm 0.48 Толщина базовой подложки, которая печатается первой
    layer_thickness_mm 0.08 Толщина цветных слоёв, соответствующих сегментам изображения
    shade_thickness_mm 0.08 Толщина дополнительных слоёв-затенений между цветами
    max_colors 4 Максимальное количество выделяемых цветов изображения
    target_resolution 1024 Размер изображения, к которому оно приводится перед анализом
    smooth_kernel 3 Размер ядра для размытия масок (0 — без сглаживания)
    shade_delta 100 Максимальное отличие цвета для попадания в зону тени
    debug_mode false Только сохранять маски без генерации STL (для тестов)

    Настройки можно изменить в файле config.ini или через графический интерфейс.

    ✅ Поддержка

    Проект заточен под Bambu Lab A1 mini, но может работать и с другими принтерами. Ошибки, предложения и баг-репорты приветствуются!

    Описание

    Репозиторий чтоб превратить картинку в модели для печати несколькими цветами

    Конвейеры
    0 успешных
    0 с ошибкой