4
4
# Original by: arturo182
5
5
# gist: https://gist.github.com/arturo182/57ab066e6a4a36ee22979063e4d5cce1
6
6
#
7
+
8
+ extract_project_name () {
9
+ echo " $1 " | rev | cut -d ' /' -f 1 | rev | sed -e " s/.kicad_pcb//g"
10
+ }
11
+
12
+ extract_output_path () {
13
+ echo " $1 " | sed -e " s/[^\/]*\.kicad_pcb//g"
14
+ }
15
+
16
+ OUTPUT_FILE=" "
17
+
18
+ if [[ -z " $3 " ]]; then
19
+ path=$( extract_output_path " $2 " )
20
+ name=$( extract_project_name " $2 " )
21
+ OUTPUT_FILE=" ${path}${name} "
22
+ echo " OUTPUT_FILE: $OUTPUT_FILE "
23
+ else
24
+ OUTPUT_FILE=" $3 /rotating"
25
+ fi
26
+
7
27
FORMAT=" $1 "
8
28
OUTPUT_DIR=" ${3:-/ pwd} "
9
29
FRAME_DIR=" /tmp/render"
@@ -27,17 +47,17 @@ for ((i = 0; i < FRAMES; i++)); do
27
47
ROTATE_Y=-$(( $i * STEP))
28
48
OUTPUT_PATH=" $FRAME_DIR /frame$i .png"
29
49
echo " Rendering frame $i ($ROTATE_Y degrees) to $OUTPUT_PATH "
30
- $KICAD_CLI pcb render --rotate " $ROTATE_X ,$ROTATE_Y ,$ROTATE_Z " --zoom $ZOOM -w $WIDTH -h $HEIGHT --background opaque -o $OUTPUT_PATH $INPUT_FILE > /dev/null
50
+ $KICAD_CLI pcb render --rotate " $ROTATE_X ,$ROTATE_Y ,$ROTATE_Z " --zoom $ZOOM -w $WIDTH -h $HEIGHT --background opaque -o $OUTPUT_PATH " $INPUT_FILE " > /dev/null
31
51
done
32
52
33
53
# Combine frames into an MP4 with the specified framerate
34
54
if [[ $FORMAT == " mp4" ]]; then
35
55
echo " Combining frames into an MP4..."
36
- ffmpeg -y -framerate $FRAMERATE -i " $FRAME_DIR /frame%d.png" -c:v libx264 -r 30 -pix_fmt yuv420p " $OUTPUT_DIR /rotating .mp4"
56
+ ffmpeg -y -framerate $FRAMERATE -i " $FRAME_DIR /frame%d.png" -c:v libx264 -r 30 -pix_fmt yuv420p " $OUTPUT_FILE .mp4"
37
57
echo " MP4 created successfully."
38
58
elif [[ $FORMAT == " gif" ]]; then
39
59
echo " Combining frames into an GIF..."
40
- ffmpeg -y -framerate $FRAMERATE -i " $FRAME_DIR /frame%d.png" " $OUTPUT_DIR /rotating .gif"
60
+ ffmpeg -y -framerate $FRAMERATE -i " $FRAME_DIR /frame%d.png" " $OUTPUT_FILE .gif"
41
61
echo " GIF created successfully."
42
62
else
43
63
# TODO: this should be vaildated before rendering anything
0 commit comments