Project NestCraft 2D(2022.07 – 2023.05)
角色:算法负责人 + 全栈开发(1 人独立交付)
背景:为华东某上市建筑模板集团打造云端异形套料系统,目标是把工地每天产生的 3 000+ 张木模板余料重新切割成门窗洞口、预制楼梯等异形件,降低 8 % 原材浪费。
技术实现
• 算法层
– 基于 Clipper2 + libnest2d 二次开发,新增 90° 矩形组合图形识别器(线段合并→矩形簇→凸分解),使 NFP 计算耗时从 1.8 s 降至 0.3 s。
– 设计两级优化:先用 Bottom-Left Fill 快速出可行解,再用改进 SA(自适应退温 + 禁忌表)二次迭代,平均利用率由 78 % 提升到 91.4 %。
– 核心 C++17 模块编译为 .so,通过 cgo 暴露给 Go,单次 500 零件×100 板材任务可在 4.2 s 内完成。
• 后端
– Go 1.21 + Gin + GORM,RESTful API 12 个端点;支持分片上传 200 MB DXF,断点续传后自动合并。
– MariaDB 10.10 三表设计(project / task / nesting_result),结果表使用 LONGBLOB 存压缩 DXF,平均单记录 180 kB,索引后百万级查询 < 35 ms。
– 部署:Docker Compose(Go + MariaDB + Nginx),GitHub Actions 自动打包,灰度发布零停机。
• 前端
– Vue 3 + Three.js 在线预览:DXF → SVG → ExtrudeGeometry,支持图层开关、结果高亮、利用率实时显示。
– 单用户登录(JWT,bcrypt 12 轮),登录态保持 7 天,HTTPS 强制跳转。
成果
• 已稳定运行 14 个月,累计套料 420 万张余料,节省木材 11 800 m³,直接节约采购成本约 730 万元。
• 系统通过甲方信息中心渗透测试,SQL 注入、XSS、文件上传漏洞全部 0 风险。
• 代码 100 % 自研可控,核心算法与后端框架均已在公司内网 GitLab 双活备份,可随时二开。