38 lines
1 KiB
Bash
Executable file
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
|