Slic3r Manual - Post-Processing Scripts
Bob’s Project Notebook - Post-processing PrusaSlicer G-Code
Если штатных возможностей формирования и замены g-кода в PrusaSlicer Вам не хватает, можно использовать сценарии постобработки.
Можно использовать любой доступный Вам интерпретатор, например Perl, Python, Ruby, Bash, VBScript, ...
- Необходимо указать пути к интерпретатору и сценарию в поле Настройки печати - Выходные параметры - Скрипты постобработки.
Если сценариев несколько, укажите путь к каждому из них на отдельной строке.
Если сценарий необходимо временно исключить, добавьте символ # в начало строки.
- Сценарии постобработки запускаются при Экспорте в G-код.
PrusaSlicer автоматически добавляет в качестве последнего аргумента сценария путь к временному файлу с g-кодом.
Сценарий должен обработать временный файл и сохранить в него результат. - После завершения сценария и передачи интерпретатором кода 0, результат сохраняется в файл, указанный пользователем.
Если код отличается от 0, выводит сообщение об ошибке.
Примечания
- Предварительный просмотр g-кода в окне слайсера показывает код без постобработки.
- В python для получения аргументов, переданных сценарию, используется модули sys или argparse:
sys.argv[0] - содержит путь к сценарию
Код: Выделить всё
import sys file_input = str(sys.argv[1])
sys.argv[1] - содержит путь к файлу с g-кодом
Если сценарию передаются дополнительные аргументы, для получения последнего аргумента используйте номер [-1]Код: Выделить всё
import sys file_input = str(sys.argv[-1])
- PrusaSlicer передаёт все параметры профилей через переменные окружения.
Имена переменных окружений пишутся полностью заглавными буквами и начинаются с 'SLIC3R_'
Для получения параметра в python используется модуль getenv из библиотеки os
Пример для получения значения параметра высоты слоя layer_heightКод: Выделить всё
from os import getenv asdfg=str(getenv('SLIC3R_LAYER_HEIGHT')
- При возникновении ошибки исполнения сценария, т.е если интерпретатор передаёт код завершения отличный от 0, результаты постобработки не сохраняются и выводится сообщение с кодом ошибки и выводом от интерпретатора. Это можно использовать для вывода своих сообщений, например:
Код: Выделить всё
if flag: sys.exit("\n!!! Внимание !!!\n\nЧто-то пошло не по плану.\nПроверьте там и здесь.")
Установка python3 в GNU/Linux
- Для установки python3 в GNU/Linux на основе Debian выполните в терминале
Код: Выделить всё
sudo apt install python3
- Чтобы сделать python3 по умолчанию выполните команду, которая обновит ссылку на python в вашем /usr/bin каталоге
Код: Выделить всё
sudo ln -sf python3 /usr/bin/python