pogojig/dxf_export/main.sh
2014-11-28 18:41:04 +01:00

38 lines
1 KiB
Bash
Executable file

#! /usr/bin/env bash
set -e -o pipefail
in_file=$1
out_file=$2
# If environment variable DXF_EXPORT_DEBUG is set, the temporary file that is modified using Inkscape is saved in the same directory as the source file and not removed.
if [ "$DXF_EXPORT_DEBUG" ]; then
temp_file="$(dirname "$in_file")/$(basename "$in_file" '.svg')~temp.svg"
else
temp_dir=$(mktemp -d)
temp_file="$temp_dir/temp.svg"
fi
script_path=$(dirname "$BASH_SOURCE")
cp "$in_file" "$temp_file"
# Run a few commands using Inkscape on the SVG file to get in into a shape that makes a successful conversion to DXF more likely.
"$INKSCAPE" \
--verb UnlockAllInAllLayers \
--verb EditSelectAllInAllLayers \
--verb ObjectToPath \
--verb EditSelectAllInAllLayers \
--verb SelectionUnGroup \
--verb EditSelectAllInAllLayers \
--verb StrokeToPath \
--verb FileSave \
--verb FileClose \
"$temp_file"
# Convert the SVG to a DXF file.
python2 "$script_path/better_dxf_outlines.py" "$temp_file" > "$out_file"
if ! [ "$DXF_EXPORT_DEBUG" ]; then
rm -rf "$temp_dir"
fi