轻量鞋样 CAD(ShoePatternCAD v0.5)
单文件、零依赖的鞋样开版与排料系统。原生 JS SPA + hash 路由 + LocalStorage 持久化,
不引入任何前端框架,双击 assets/index.html 即可用浏览器打开,数据全部留在本机。
快速开始
- 直接用浏览器打开
assets/index.html(file://方式即可,无需起服务)。 - 若浏览器限制了本地文件访问,可在
assets/目录下起一个静态服务后访问:
python -m http.server 8080→ http://localhost:8080/index.html - 首次打开会自动创建一个名为「示例鞋款」的默认工程,可直接在此基础上改。
> 3D 鞋楦视图依赖同目录 vendor/three.min.js + vendor/OrbitControls.js(已随包提供,
> 离线可用)。其余功能不依赖任何外部库。
功能地图(顶栏 11 个视图)
| 视图 | 作用 |
|---|---|
| 鞋楦 | 鞋楦侧/底参考轮廓,作为开版底图 |
| 样板 | 核心开版:钢笔工具绘制轮廓、节点与贝塞尔手柄编辑、缝份生成、记号齿、量测 |
| 级放 | 尺码表 + 放码规则 + 多尺码预览 |
| 排料 | 单尺码排料:贪心基线 + 模拟退火优化,精确多边形零重叠 |
| 套排 | v0.5 新增:多尺码同版排料(Marker Making) |
| 3D 楦 | Three.js 参数化鞋楦可视化(可叠加裁片预览) |
| BOM | 部件用量明细 + 按材料汇总,可导出 CSV |
| 成本 | 按排料利用率估算单双材料成本 |
| 导出 | JSON / SVG / DXF / PNG / BOM CSV / 审计链 JSON |
| 审计链 | SHA-256 哈希链留痕与完整性验证 |
| 设置 | 工程信息、排料参数、快照管理、LIMS 端点、清空数据 |
v0.5 核心:套排(多尺码同版排料)
套排把裁片按 尺码 × 部件 × 左右 展开成独立实例,再统一排到同一张料幅上 ——
这是工厂提高利用率的常规做法(marker making)。
- 参与尺码:勾选需要同版排的尺码(默认基础码)。
- 按每双片数展开:按部件的「每双片数」(pair)展开实例。
- 对称件生成左右:对称件同时生成左片与右片(镜像)。
- 允许旋转 / 旋转步长 / 迭代次数 / 精确重叠检测:模拟退火优化参数。
- 结果独立保存在工程的
marker字段,不会改动样板视图中部件的摆放。 - 出图:套排 SVG(可再导入其他 CAD)、2 倍分辨率 PNG(发给版房/供应商)、
裁片坐标清单 CSV(序号/部件/尺码/左右/旋转/XY/面积)。
排料内核为自研:包围盒 → 凸包 SAT 快速排除 → 内部网格采样精算,
凹多边形同样准确(凸包相交 ≠ 本体相交,凹件空腔可合法放件)。
求解结束会做一次 repairOverlap 精确分离修复,保证交付结果零重叠。
数据与合规
- 全部数据存在浏览器 LocalStorage,不上传任何服务器。
- 多工程分槽存储:
shoeCAD.projects.v1(索引)、shoeCAD.active.v1(当前)、
shoeCAD.proj.<id>.v1(工程槽);旧版单工程首次启动会自动迁移。 - 审计链:
shoeCAD.audit.v1,纯 JS 实现的 SHA-256 追加式哈希链,
记录 INIT / SAVE / NEW_PIECE / NEST / MARKER / EXPORT / 工程增删改切等事件,
可在「审计链」视图一键验证完整性(防篡改)。 - 撤销/重做最多 60 步;支持工程快照保存与恢复。
典型工作流
- 「样板」用钢笔沿鞋楦描出各部件轮廓 → 生成缝份、打记号齿、设材料与每双片数。
- 「级放」设定各部件的放码规则(dx/dy per size)。
- 「排料」单尺码试排,或「套排」直接做多尺码同版排料并查看利用率。
- 「BOM」核对用量,「成本」估算单双材料成本。
- 「导出」出 DXF 给裁断机(含 CUT/SEAM/NOTCH/LABEL 图层,$INSUNITS=4 毫米),
或出 SVG/PNG 给版房。
已知边界
- 2D 优先路线:不做 3D→2D 全自动展平(专业套件壁垒,主动规避)。
- 排料为启发式 + 模拟退火,非数学最优解。
- 3D 视图需要 WebGL;PNG 导出依赖浏览器的 SVG→Canvas 渲染。
- 数据绑定单一浏览器 LocalStorage,换机器请用导出 JSON / 导入恢复。