惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News: Ask HN
Hacker News: Ask HN
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
Jina AI
Jina AI
Stack Overflow Blog
Stack Overflow Blog
量子位
博客园_首页
Vercel News
Vercel News
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Forbes - Security
Forbes - Security
IT之家
IT之家
N
News and Events Feed by Topic
S
Security Affairs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Webroot Blog
Webroot Blog
Recorded Future
Recorded Future
L
LangChain Blog
Y
Y Combinator Blog
AI
AI
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Know Your Adversary
Know Your Adversary
AWS News Blog
AWS News Blog
Help Net Security
Help Net Security
Cyberwarzone
Cyberwarzone
L
Lohrmann on Cybersecurity
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Google Online Security Blog
Google Online Security Blog
V2EX - 技术
V2EX - 技术
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
PCI Perspectives
PCI Perspectives
I
Intezer
T
Tenable Blog
G
Google Developers Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Troy Hunt's Blog
L
LINUX DO - 最新话题
云风的 BLOG
云风的 BLOG
C
CXSECURITY Database RSS Feed - CXSecurity.com
有赞技术团队
有赞技术团队
O
OpenAI News
P
Proofpoint News Feed
TaoSecurity Blog
TaoSecurity Blog
C
Check Point Blog
Last Week in AI
Last Week in AI
S
Schneier on Security
Simon Willison's Weblog
Simon Willison's Weblog
Blog — PlanetScale
Blog — PlanetScale

博客园 - 我才是银古

第16章:常见问题、排错与最佳实践 第15章:扩展生态、MCAD 与外部集成 第12章:实战案例:机械结构与 3D 打印零件 第14章:构建、测试、调试与贡献流程 第13章:OpenSCAD 源码架构与核心执行流程 第11章:预览、渲染、网格精度与性能优化 第09章:列表推导、递归与算法建模 第08章:参数化零件库与复用设计 第06章:CSG 布尔建模方法 第07章:二维图形、拉伸、旋转与投影 第05章:基础几何、坐标系与变换 第04章:参数、变量、函数、模块与作用域 OpenSCAD 教程目录 第03章:OpenSCAD 语言基础 第02章:安装、环境配置与开发工作流 第01章:OpenSCAD 项目全景与学习路线 第02章:源码获取、编译与开发环境配置 第01章:OCCT项目全景与学习路线 第18章:二次开发实战与综合案例 第17章:与 Qt VTK Python pythonOCC 生态集成 第18章:综合实战案例 第17章:数据交换与协同 第16章:源码架构与二次开发 第15章:插件与自定义工作台开发 第14章:Python脚本宏与自动化 第13章:FEM仿真分析 第12章:CAM数控加工 第11章:SurfaceMesh与逆向工程 第10章:Draft二维绘图与BIM建筑 第09章:工程图TechDraw 第07章:参数化表达式与Spreadsheet 第08章:装配设计Assembly 第06章:Part工作台与几何内核 第05章:PartDesign实体特征建模 第04章:草图Sketcher约束建模 第02章:安装版本与工作环境配置 第03章:界面工作台与基础操作 第01章:项目全景与学习路线 第十二章:插件开发、研究功能与最佳实践 第十章:定时任务与自动化(Cron) 第七章:技能、记忆与自学习闭环 第八章:MCP 集成与上下文文件 第六章:工具系统与终端后端 第五章:模型供应商与配置体系 Hermes Agent 教程目录 第十一章:语音、视觉、浏览器与子代理协作 第四章:CLI/TUI 与会话管理 第十二章:学习路线、实战方案与最佳实践 第十一章:源码结构、开发调试与插件开发 第十章:自动化、远程访问、日志与排障 第九章:Control UI、节点、Canvas 与语音能力 第七章:工具、技能、插件与能力扩展 第八章:安全模型、访问控制与沙箱实践 第六章:Agent 工作区、会话与多智能体路由 第五章:多通道消息接入与聊天平台配置 第四章:配置体系、模型接入与认证管理 第三章:Gateway 架构、协议与运行机制 第二章:安装、环境准备与快速上手 第一章:OpenClaw 项目概览与核心定位 oh-my-openagent 教程目录 09-命令模型回退与配置参考 10-实战案例最佳实践与故障排除 05-工作模式-Ultrawork-Prometheus-Atlas 08-Hooks与MCP系统 06-Category与Skill系统 07-核心工具链 04-智能体全景详解 03-安装与环境配置 02-整体架构与多模型编排机制 01-项目简介与核心理念 01-项目概览与学习路线 02-安装部署与工具适配 03-Skill机制与using-superpowers 05-TDD系统化调试与完成前验证 04-需求澄清方案设计与计划编写 07-并行智能体子智能体与Git-Worktree 第六章:代码审查、反馈处理与分支收尾 08-中国特色Skills与本土团队落地 09-MCP构建工作流执行与自定义Skill 第23章:FreeCAD-Python-API Clipper2 C# 源码解读教程 第19章:PolyTree 多边形树结构 第20章:实际应用与最佳实践 第18章:Minkowski 和与差 第17章:RectClip 矩形裁剪优化 第16章:ClipperOffset 偏移类详解 第15章:填充规则详解 第14章:布尔运算执行流程 第13章:ClipperD 浮点裁剪类 第11章:OutRec 与 OutPt 输出结构 第9章:Active 活动边结构 第10章:Vertex 顶点与 LocalMinima 局部极小值 第12章:Clipper64 裁剪类详解 第7章:高精度运算与128位整数 第8章:ClipperBase 基类详解 第5章:枚举类型与常量定义 第6章:InternalClipper 内部工具类 第2章:核心数据结构 - Point64、PointD 第3章:路径与多边形表示 - Path64、PathD、Paths64、PathsD 第4章:矩形边界 - Rect64、RectD
第10章:导入导出、命令行与自动化
我才是银古 · 2026-05-06 · via 博客园 - 我才是银古

第10章:导入导出、命令行与自动化

1. 支持的常见格式

OpenSCAD 官方 README 提到可读取和创建 STL、OFF,并使用 DXF 作为二维轮廓交换格式;当前版本还支持更多格式,如 3MF、AMF、SVG、PNG 等,具体以所安装版本的帮助输出为准。

常见用途:

  • STL:3D 打印最常见三角网格格式。
  • 3MF:现代 3D 打印格式,可携带更多元数据。
  • OFF:几何网格交换和测试。
  • DXF/SVG:二维轮廓、激光切割、投影输出。
  • PNG:文档预览图、CI 快照、网页展示。

2. import 导入

import("part.stl");
linear_extrude(3) import("profile.dxf");

导入模型常用于增加外部零件参考、组合扫描件、加工现有网格或使用外部二维轮廓。需要注意:

  • STL 没有单位信息,比例必须确认。
  • 外部网格可能非流形,布尔运算容易失败。
  • DXF/SVG 轮廓必须清理闭合。
  • 导入文件路径相对当前 .scad 文件或工作目录,自动化时应固定路径。

3. 导出 STL

图形界面中通常先 F6 渲染,再导出 STL。命令行:

openscad -o exports/part.stl src/main.scad

建议导出前检查控制台警告。对 3D 打印件,还应在切片软件中检查模型尺寸、法线、非流形和支撑。

4. 使用 -D 覆盖参数

openscad -D 'part="base"' -D 'wall=2.4' -o base.stl main.scad

-D 是批量生成的核心。注意字符串需要引号,shell 中可能要嵌套转义。建议在 CI 中把命令写得明确,不依赖交互环境。

5. 生成多规格产品

openscad -D 'variant="small"' -o exports/small.stl product.scad
openscad -D 'variant="medium"' -o exports/medium.stl product.scad
openscad -D 'variant="large"' -o exports/large.stl product.scad

.scad 中:

variant = "small";
size = variant == "small" ? [60,40,20] :
       variant == "medium" ? [80,50,25] : [100,60,30];

6. 导出图片

命令行可生成预览图,用于文档或回归比较:

openscad -o preview.png --imgsize=1200,800 --viewall --autocenter model.scad

图片导出适合博客教程、README 之外的文档页面、发布说明和模型库索引。要得到稳定图片,应固定相机、尺寸、颜色和 OpenSCAD 版本。

7. 自动化构建建议

可使用 Makefile:

OPENSCAD=openscad
SRC=src/main.scad

exports/base.stl: $(SRC)
$(OPENSCAD) -D 'part="base"' -o $@ $(SRC)

exports/cover.stl: $(SRC)
$(OPENSCAD) -D 'part="cover"' -o $@ $(SRC)

自动化流程应包含:

  • 清理旧导出。
  • 生成 STL/3MF。
  • 生成 PNG 预览。
  • 检查文件是否非空。
  • 可选:运行网格检查工具。
  • 可选:上传构建产物。

8. CI 中使用 OpenSCAD

CI 可用于保证模型至少能渲染导出:

  1. 安装 OpenSCAD。
  2. 运行命令行导出关键模型。
  3. 保存 STL 和 PNG 作为构建产物。
  4. 对生成文件大小、数量和日志进行检查。
  5. 对参数矩阵运行多规格导出。

OpenSCAD 官方仓库自身包含 GitHub Actions、CircleCI、本地 CI 说明和大量测试,说明命令行与自动化是项目的重要组成部分。

9. 路径与依赖管理

自动化最常见的问题是路径不一致。建议:

  • 所有导出命令从项目根目录运行。
  • .scad 内使用相对自身清晰的路径。
  • 第三方库固定版本。
  • 不依赖用户本机字体,除非已在 CI 安装。
  • 导出目录由脚本创建,不手工维护。

10. 导入导出检查清单

  • 命令行版本是否与本地 GUI 版本一致?
  • -D 参数是否正确转义?
  • 导入文件单位是否明确?
  • 导出 STL 是否经过 F6 或等价命令完整渲染?
  • 图片导出相机是否固定?
  • CI 是否能复现本地结果?
  • 大型二进制导出是否需要 Git LFS 或构建产物管理?