Octaprint. Magic Timelapse. Делаем магию из таймлапса!
https://www.youtube.com/watch?v=pQCyZu9bUhI
https://www.youtube.com/watch?v=icr_eh0yZKM
Делаем приятные таймлапсы без рывков после каждого слоя. Остановка всегда в одном месте X, Y стола.
Установка
0) Считается что у вас уже настроена web камера для трансляции и записи таймлапсов. У меня камера mobius. Выдает 1280x720 на стрименге. Сервер печати работает на octopi (rp pi3) .
1) Ставим плагин: OctoPrint GCode System Commands
https://github.com/kantlivelong/OctoPrint-GCodeSystemCommands
ставим свою команду (у меня 'octo 666';)и соотв-щий ей скрипт.2) Скрипт запуска скриншота с камеры. Тут надо поменять путь на свой куда будут сохранятся файлы jpg.
#!/bin/sh
cd /home/pi/timelapses
/usr/bin/curl -o `date +%Y%m%d_%H%M%S`.jpg http://127.0.0.1:8080/?action=snapshot2)
3) Модификация GCODE (после CURA) c помощью MATLAB
===========
%gcode modification for magic timelapse 3d rpinter octoprint server
clc
clear
infile='d:3d_printermodelsTerminator_Mary_Bustfilesmary01.gcode ';
[f_path, f_name, f_ext]=fileparts(infile);
outfile=sprintf('%s\%s_%s%s',f_path,f_name,'magic_tl',f_ext);
fid=fopen(infile,'r');
fid_out=fopen(outfile,'w');
disp('Reading gcode file...');
all_text_data = textread(infile,'%s','whitespace','
');
disp('Read done!');
number_of_foundlines=0;
position_for_photo='G0 X5 Y30 F7800 ; move the printer to our ideal location for a photo';
for cur_line=1:length(all_text_data)
fprintf(fid_out,'%s
',all_text_data{cur_line});
if strfind(all_text_data{cur_line},' Z')
number_of_foundlines=number_of_foundlines+1;
fprintf(1,'line: %d, layer: %d: %s
',cur_line,number_of_foundlines,all_text_data{cur_line});
% fprintf(fid_out,'%s
','G92 E0'); %G92 E0 ; reset the filament position counter — this doesn’t move the filament
fprintf(fid_out,'%s
',position_for_photo); %moves to photo position
fprintf(fid_out,'%s
','G4 P2000 ; pause for 2,000ms (2 seconds)');
fprintf(fid_out,'%s
','G4 P1; pause for 1ms — these are here to flush the g-code buffer');
fprintf(fid_out,'%s
','G4 P1');
fprintf(fid_out,'%s
','G4 P1');
fprintf(fid_out,'%s
','G4 P1');
fprintf(fid_out,'%s
','G4 P1');
fprintf(fid_out,'%s
','G4 P1');
fprintf(fid_out,'%s
','G4 P1');
fprintf(fid_out,'%s
','G4 P1');
fprintf(fid_out,'%s
','G4 P1');
fprintf(fid_out,'%s
','OCTO666 ; take a snapshot');
fprintf(fid_out,'%s
','G4 P1000 ; pause for 1 second to let the script execute');
end;
end;
fclose('all');
===============
4) Собираем таймлапс из сохраненных jpg-ов. Можно это сделать автоматом, добавив еще одну комманду в конце запускающую скрипт сборки таймлапса.
у меня он такой:
======================
pi@octopi:~/scripts $ cat ./maketl
#/usr/bin/avconv -i *.jpg video.mp4
rm -f -r ./tmp
mkdir -v ./tmp
a=1
for i in *.jpg; do
new=$(printf '%04d.jpg' '$a';) #04 pad to length of 4
cp -i -- '$i' ./tmp/'$new'
let a=a+1
done
avconv -y -r 25 -i ./tmp/%04d.jpg -r 25 -vcodec libx264 -q:v 1 tl_25fps.mp4;
rm -f -r ./tmp
======================
ps: я еще использую скрипт для постобработки jpg-ов, поправляю уровни, тени, шарпинг и прочее. если надо пишите в коментах, напишу как (c помощью imagemagic)
Что надо доделать:
1) Изменение GCODE на сервере с помощью Python. Или сделать плагин пост опработки на питоне для CURA.
_Тут мне НУЖНА ПОМОЩЬ сообщества_
2) Добавление на картинку времени по дате создания файла, времени печати, сколько осталось
3) Автоматическая сшивка таймлапса, имя файла печати (удаление всем jpeg-ов потом).
Изначально увидел такой подход реализованный как скрипт пост обработки для Slic3r. Источник:
http://www.makermusings.com/2015/09/01/making-time-lapse-video-of-3d-prints/подписываемся на мою группу в VK: https://vk.com/3d_novosib
Еще больше интересных статей
Гибрид двух слайсеров для печати. Необычное решение
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Боль и страдание и при чем тут bambulab
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
10 лайфхаков в 3D-печати
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
А сразу расположить её внутри....
))) Это пересказ видео, своими...
Ну, вот и я так подумал. Больш...
Проблема такая: Поставил на пе...
Здравствуйте, у меня перестала...
Доброго времени суток.Неожидан...
Всем доброго дня. Вчера кинул...