

























学习 OpenSCAD 源码的目标不是立刻修改几何内核,而是理解脚本如何变成模型:源码文件如何组织,语言如何解析,模块如何求值,CSG 如何表示,预览和渲染如何分流,导入导出如何接入。
官方仓库显示源码主要在 src 下,包含 core、geometry、io、gui、glview、platform、utils 等目录,并有 openscad.cc、openscad_gui.cc 作为命令行和 GUI 入口相关文件。
可按以下方式理解:
.scad 文件,词法/语法解析,构建 AST。src/core 是语言和模型语义的核心。结合文件命名可看到 AST、表达式、上下文、模块、函数、内置能力、CSG 节点等内容。阅读顺序建议:
修改 core 时风险较高,因为语言行为会影响所有模型。
src/geometry 处理二维、三维几何和后端算法。这里可能涉及多边形、网格、CGAL、Clipper、manifold、偏移、布尔和转换。学习重点:
几何层通常是最复杂、最需要测试的部分。
src/io 负责文件格式导入导出。阅读 IO 层时可按格式分类:
导入导出修改通常需要准备真实样例文件,并同时测试 GUI 和命令行路径。
src/gui 负责 Qt 图形界面,包括主窗口、编辑器、偏好设置、控制台、参数面板和操作命令。src/glview 更关注三维视图、相机、OpenGL 渲染、选择和显示。
GUI 开发应注意:
OpenSCAD 的命令行能力是自动化的基础。src/openscad.cc 等入口文件通常负责参数解析、输入输出路径、导出格式、变量覆盖、相机/图片参数和错误码。
阅读命令行实现时关注:
-o 如何推断导出格式。-D 如何传给语言求值层。可以把执行流程简化为:
.scad 文件
-> 词法/语法解析
-> AST
-> 上下文求值
-> 模块实例化
-> CSG 树
-> 预览渲染或精确渲染
-> 几何对象
-> 导出文件或 GUI 显示
调试源码时应先确定问题发生在哪一层。例如:语法报错属于解析层,变量值不对属于求值层,F5 正确 F6 错误多半属于几何/布尔层,STL 文件异常属于导出层。
cube(10);。不要一开始从最大文件逐行阅读。以具体模型和具体问题为线索更有效。
因此修改源码必须配合测试和最小复现模型。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。