Металл2024 Реклама
Метобр2024 Реклама

Octaprint. Magic Timelapse. Делаем магию из таймлапса!

maelstrom
Идет загрузка
Загрузка
02.12.2017
9016
13
3D-печать

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

13
Смотрим, что это такое:

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';)и соотв-щий ей скрипт.
Octaprint. Magic Timelapse. Делаем магию из таймлапса!
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

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

13
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама