4.1 KiB
Points / OpenSCAD 实际业务推进
2026-09-09。承接现有源码、WASM 和 v3 调度,不缩减 1503 项范围。本次专注补齐业务入口,没有再次建设调度框架。
已完成
| 模块 | 实际修复 | 当前证据 |
|---|---|---|
| Points | 复用后台已写的命名文档创建/更新;解除 Facade 固定三点约束;校验返回文档、对象、数量和包围盒;原生合并/结构化输出实际存储坐标;错误记录保留完整协议字段 | 4 项,26 个用例,1.226 秒 |
| OpenSCAD | 使用现成文件创建接口;Web 导入直接复用本机 C++ DXF reader、Part/OCCT 连接边与成面;保留图层选择、独立文档、追加与回滚 | 2 项,共用 9 个不同场景,3.907 秒 |
Points 证据:business-evidence/e9d46ad45141aef5d712eb4c-20260909T013638203040.json。
OpenSCAD 证据:business-evidence/25e676b2e51f4efb3d0662ab-20260909T014050651509.json。
原因与复用
- Points 的原生入口已经接受不同点集,Facade 仍对整个输入与固定 fixture 做字符串相等比较,导致现成能力无法使用。修复是接口和实际状态检查,不是重写点云算法。输入支持多个文档/对象,原生验证在修改前执行;非法输入后仍可更新原对象,不累积重复对象。
- OpenSCAD 用例调用未导出的
FS.writeFile;现成 WASM 实际提供FS_createDataFile/FS_unlink,直接使用它们即可。没有为测试文件操作重新编译整个运行时。 - 旧 Web 导入委托 Python DXF 链,既缺标准库依赖,也绕开用户已提供的 C++ reader。现在适配直接调用
Import::ImpExpDxfRead和现有Part::FaceMakerBullseye,几何仍由 OCCT 实现。 - C++ reader 的“关闭图层”也清除 OriginalLayer,不能同时满足筛选图层。新增
dxfCreateDraftLayers选项区分保留图层数据和创建 Draft 界面对象;默认 true 保留原桌面行为,OpenSCAD 的独立配置设 false。没有重新实现 DXF 解析器或引入替代几何内核。 - FreeCAD 的
Base::Exception不是std::exception子类;适配显式捕获后才能返回真实诊断和执行回滚,不能仅捕获 std 异常并把数字异常地址作为业务原因。
OpenSCAD 用例检查单/多图层、全部图层、不同轮廓的面积 15/32/42、带孔轮廓面积 91、同文档追加、独立文档、缺失文件/图层与错误恢复。结果来自真实 C++/OCCT 面,非固定计数。Points 用例比较 native 存储坐标、包围盒、对象数量和命名文档归属。
耗时与验证
| 步骤 | 秒 |
|---|---|
| Points Facade 编译 | 0.5337 |
| Points WASM 加载 | 0.2907 |
| Points 合并/结构化/创建/批次场景 | 0.2892 |
| Points 有效证据复用 | 0.051 |
| OpenSCAD 最初完整通过组 | 3.888 |
| OpenSCAD 发布后完整通过组 | 3.907 |
| OpenSCAD 有效证据复用 | 0.050 |
本轮原生构建只针对 OpenSCAD/Points 和实际依赖变更,OCCT 库没有重编译。CMake 再生成同时触发了已有翻译资源目标的更新;不把这部分算成新业务实现。诊断阶段经历了多次增量链接和失败,耗时不等于上表最终通过用例的时间;历史失败保留,不能用最终秒级测试宣称整个处理过程只有几秒。
类型检查通过;Points Facade 与模块路由 8 项回归通过;调度、上下文、证据复用等 59 项 Python 回归通过;几何边界检查仍通过。
续接边界
09:42 总量快照为 79/1503。本轮明确新闭合六项,另有后台同期成果;所有计数取当前指纹有效的业务结果,不按源码存在或回执刷新计算。
本次没有宣称全部 Points UI、点云拟合、固定样例 FCStd 持久化、所有 OpenSCAD 命令或任意非平面 DXF 已完成。文档持有几何对象,返回的 resourcesReleased 表示临时导入和编辑资源清理,documentRetained 明确表示文档仍存活。
为避免同目标多进程修改/编译,修复期间暂停自动领取并保留源码、日志和未完成状态;验证后恢复原 watchdog。继续使用 v3 的恢复/开发轮转,先处理其余真实业务缺口,不重复重做已验证的入口。