OpenSCAD通过Shellscript批量导出单个文件

u2nhd7ah  于 2023-06-24  发布在  Shell
关注(0)|答案(1)|浏览(136)

我在OpenSCAD中复制了一段代码来生成钥匙链文件,我有一个变量“name”,我改变它来调整文件。现在,我想使用“names.txt”文件中的名称列表来导出多个具有调整后名称的文件。
以下是我目前使用的shellscript:

#!/bin/bash

# Check if the names.txt file exists
if [ ! -f names.txt ]; then
    echo "Error: names.txt file does not exist!"
    exit 1
fi

# Get the names from the names.txt file
names=$(cat names.txt)

# Generate the STL files
for name in $names; do
    # Generate the STL file
    /Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD -o "$name".stl -D name="$name" generator.scad

    # Check for errors
    if [ $? -ne 0 ]; then
        echo "Error generating STL file for $name"
        exit 1
    fi
done

脚本似乎运行正常,但我得到一个警告:
WARNING: Ignoring unknown variable 'EVA' in file keychain_nametag_generator.scad, line 85
(The变量“伊娃”是我列表中的第一个名字)
OpenSCAD文件以此行开始:
name = read_string();
生成文件,但没有名称。我花了一整晚的时间试图修好它,但我不知道出了什么问题。

nkcskrwz

nkcskrwz1#

显然你在OpenSCAD用户手册中忽略了这一点:
要注意,shell(bash、cmd等)在将参数传递给openscad之前会对其进行解析,因此您需要使用特殊字符(如空格或引号)正确地引用或转义参数。...
所以你可以这样写:

…/OpenSCAD -o "$name".stl -D name=\""$name"\" generator.scad

相关问题