You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下如何通过命令行捕获OpenSCAD模型的ECHO输出以生成BOM

在Linux下用OpenSCAD 2021.01命令行捕获echo生成的BOM

核心逻辑

OpenSCAD的命令行模式可通过指定输出文件(即使丢弃输出)规避GUI启动,同时echo语句的输出默认发送到标准错误流(stderr),只需重定向或过滤该流即可提取BOM内容。

基础命令(捕获原始echo输出)

直接运行模型并将echo输出保存到文件:

openscad --quiet -o /dev/null your_model.scad 2> bom.txt

参数说明:

  • --quiet: 关闭模型加载等无关日志,仅保留echo输出
  • -o /dev/null: 指定输出文件为/dev/null(丢弃模型导出内容),强制OpenSCAD以命令行模式运行,不启动GUI
  • 2> bom.txt: 将标准错误流内容(即echo输出)写入bom.txt文件

过滤输出(去除echo前缀)

若需去掉echo:前缀,仅保留BOM实际内容,可结合grep和sed处理:

openscad --quiet -o /dev/null your_model.scad 2>&1 | grep "echo:" | sed 's/echo: //' > clean_bom.txt
  • 2>&1: 将stderr重定向到stdout,方便管道处理
  • grep "echo:": 仅保留含echo:的行,过滤无关错误信息
  • sed 's/echo: //': 删除每行开头的echo: 前缀

示例验证

假设模型文件assembly.scad包含以下echo语句:

echo("BOM: M4 x 16 Bolt - 4");
echo("BOM: Hex Nut M4 - 4");
echo("BOM: 20x20 Aluminum Profile - 2 pcs");

运行过滤命令后,clean_bom.txt内容为:

BOM: M4 x 16 Bolt - 4
BOM: Hex Nut M4 - 4
BOM: 20x20 Aluminum Profile - 2 pcs

注意事项

  • 可通过openscad --version验证2021.01版本是否正确安装
  • 若echo输出为数组等复杂结构,会保留JSON格式,可使用jq等工具进一步解析

内容的提问来源于stack exchange,提问作者Nikita Fedyashev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 23:27:22