书架设计与板材排料 · 书架与排料工作单
================================
双击 index.html 使用。所有样式、字体和三维代码都已内嵌，无需安装、服务器或账户。

默认完成的书架外廓为宽 1100 × 高 1800 × 总深 320 mm，18 mm 主体板、2 个开间、每开间 4 块层板、70 mm 踢脚和 6 mm 后覆背板。共 15 块真实板件：两侧、顶底、8 块独立层板、1 块竖隔、踢脚和背板。顶底、层板在侧板之间，背板厚度计入总深。默认主体板排入 2 张 2440 × 1220 mm 整板，背板另用 1 张；示例价格合计 584 元。

自己的工作流程
1. 填书架宽高总深、主体板厚、开间和层板数量，决定是否有踢脚与背板。不能整除的开间以 1 mm 分配余量，所有板件外廓仍满足总宽。
2. 查看装配，拖动三维观察，或用镜头按钮。移动“展开”滑块查看实际每片板的装配位置；点选表格编号或排料中的板件，两图共同定位。排料获得较多整板时可在右侧滚动，编号也可用方向键逐件选择。
3. 换成自己的整板长宽、四边修边、锯缝、每种材料可用张数、单价和名称。勾选木纹方向则顺纹长 L 只能沿整板长边；取消后允许 90° 旋转。三种排法择优会在面积优先、长边优先、宽边优先中选择保留最少未排板件面积、较少整板的结果，不保证全局最优。
4. 查看是否有未排入板件。尺寸超出整板或张数不足不会悄悄忽略，会在提示、表格、采购表与 SVG 中保留；此时金额标为“已排板材估价”，不是完整采购预算。
5. 导出切割 CSV、板材采购 CSV、全部整板 SVG 工作单。保存 JSON 可完整恢复并继续修改。

排料单位与结果
板件长 L 为顺纹方向，宽与厚同为 mm。排料 X / Y 从整板左上角开始，包含修边距离。图中的相邻板件保留锯缝区域。右图切换主体板或背板，SVG 列出两种材料的全部整板。净板件、锯缝预留、四边修边、可见余料面积之和等于已用整板面积。SVG 标注真实 mm，但图面按页面缩放，不能当作 1:1 模板或 CNC 指令。

保存与撤销
重要修改可撤销/重做，一次展开拖动记为一次操作。浏览器暂存失败会提示保存 JSON；JSON 是完整可编辑备份。导入错误保留当前方案；连续选择文件以最后一次选择为准，读取中继续编辑、取消选择或隐藏页面会令旧读取失效。离开后从浏览器历史返回，会重新建立三维绘制资源。

模型范围
计算矩形板件、对接位置和可解释的矩形切分。不含孔位、五金、封边厚度、连接工艺、载荷或抗倾倒核算。书籍和陶器只是可关闭的道具，不计入清单。价格为可修改的示例报价，未包含封边、连接件、油漆、运费与工费。开工前按实际板厚、自己的连接工艺和锯台复核尺寸与切割顺序。

核对范围
已从实际 HTML 提取纯模型，独立核对外廓、分格、板件数量、矩形位置和锯缝、逐张面积守恒、成本、CSV / SVG 结构与完整方案往返。实际同源 Canvas 图与三维几何通过原生 EGL 出图后查看，修正展开和横向方案裁切。检查了真实事件接线与异步读取处理；没有进行浏览器整页、真实指针事件、首次断网双击、实物加工或设备性能验收。WebGL 不可用时排料、清单、尺寸与导出仍可使用。
