一键计算最优装柜 / 打托方案,拖拽旋转查看 3D 码放,逐步回放装柜顺序,导出 A4 装柜指导单。
关键词 / Keywords:集装箱装箱计算 · 装箱优化 · 托盘打托 · 装柜动画 · 外贸装箱 · container packing · palletizing · 3D loading visualization · cargo loading plan · carton to pallet · shipping optimization
docker compose up -d --build
# 访问 http://localhost:7002npm install
npm start
# 访问 http://localhost:7002- 多 SKU 配载:同时装入多种规格外箱,自动枚举朝向与排布,求解最优装箱组合(20GP / 40GP / 40HQ / 45HQ)。
- 3D 可视化:Three.js 实时渲染,支持轴测 / 顶视 / 正门 / 侧视切换,鼠标拖拽旋转、滚轮缩放、右键平移。
- 装柜动画与回放:按真实装柜顺序(由柜内向外、逐列推进)播放 / 拖动进度条逐步回放,直观演示装箱过程。
- 重心校核:自动计算重心偏移,提示偏重 / 倾覆风险,保证运输安全。
- SKU 图例与明细:按外箱汇总数量、体积、毛重,生成可打印的装柜清单。
- 🧩 按比例拼柜(Set Load / 套装装载):多款外箱锁定配比(如 外箱1 : 外箱2 = 1 : 2), 直接测算单柜最多能装多少完整套。摆放规则完全沿用原装柜算法,只在其外层做套数搜索。 默认严格比例(只装完整套,余位留空);可勾选「允许剩余空间补装」,在不减少套数的前提下 用余位额外塞箱,超装部分单独列出。
- 三级联动:输入单品规格与目标 PCS,自动推导外箱尺寸与打托方案(列阵 / 交错 / 风车三种码垛图案,auto 自动择优)。
- 载具适配:内置 US / EU / UK / AU / JP 标准托盘与多类集装箱约束(限重、边缘溢出、最大堆码层数)。
- Top 10 候选方案:按容积率、装箱数、重量均衡综合推荐,支持视角切换与 PNG 导出。
- 📋 Excel 批量导入:从 Excel 复制单元格(Tab / 逗号 / 空格分隔)一键导入多行产品。
- 📄 A4 装柜单导出:生成打印友好的 A4 装柜指导单(汇总 / 3D 截图 / 重心 / 分步清单 / 图例)。
- 🌐 公制 / 英制切换:cm·kg 与 inch·lbs 即时换算,内核计算单位统一、显示随切换。
- 🌏 中英双语:界面完整 i18n,一键切换中文 / English。
- 前端:原生 HTML / CSS / JavaScript,核心算法
app.js(模式 A)与pallet-optimizer.js(模式 B) - 3D 渲染:Three.js(本地
vendor/,含 OrbitControls),无外部依赖 - 运行:Node.js + Express 静态服务(端口 7002),或直接
docker compose部署 - 零后端逻辑:纯前端计算,无数据库、无密钥、可离线运行
├── server.js # Express 静态服务器(端口 7002)
├── app.js # 模式 A 装箱算法 + 3D 渲染 + 装柜单导出
├── pallet-optimizer.js # 模式 B 托盘优化(单品→外箱→托盘)
├── index.html # 主页面
├── lib-loader.js # 本地依赖加载(Three.js 多 CDN 兜底)
├── vendor/ # 本地 Three.js
├── Dockerfile / docker-compose.yml
└── package.json
- 选择 模式 A 录入多品外箱,或 模式 B 录入单品 → 外箱 → 托盘参数。
- 点击计算,查看 3D 装载视图与 KPI(装载率、重心、箱数)。
- 模式 A 可拖动回放进度条观看装柜动画;模式 B 可切换外箱 / 托盘视角。
- 导出 A4 装柜指导单或 PNG 截图,用于现场作业与文档归档。
| 路径 | 说明 |
|---|---|
GET / |
主应用页面 |
GET /health |
健康检查(返回 { status: "ok" }) |
GET /api/version |
当前版本号(20260916A 形式)+ 对应 commit,页面右下角角标的数据源 |
页面右下角常驻显示项目版本号,格式为 YYYYMMDD + 字母:字母代表该版本是当天第几个提交
(1 → A,2 → B … 26 → Z,27 → AA)。例如 2026-09-16 当天第一版是 20260916A,第三版是 20260916C,
与 git 提交记录一一对应(鼠标悬停可看对应 commit)。
发版时执行一次 npm run version:sync:生成 version.json、同步页面内嵌值与静态资源 ?v= 版本号(自动刷新缓存),
随后与本次改动一起提交即可。
- 模式 A 对每种外箱枚举 6 朝向与行列层组合,最大化集装箱利用率并校验重心安全域。
- 模式 A「按比例拼柜」不改动装柜算法本身:先按柜容(留 5% 余量)与载重估算套数上界,
再在
[1, 上界]上二分——把比例 × k当作各款目标数量交给原算法试装,全部装下即可行; 二分后向上线性补探至多 3 次,补偿启发式算法可能出现的非单调。全程约 10~16 次试装,实测 < 0.6s。 - 模式 B 在托盘平面内枚举列阵 / 交错 / 风车码垛,结合限重、溢出与堆码约束选出 Top 10 方案。
- 全部计算在浏览器本地完成,输入即算,不上传任何数据。
- 端口被占用? 修改
server.js中的PORT或环境变量PORT。 - 3D 不显示? 确保
vendor/three.min.js与vendor/OrbitControls.js存在;lib-loader.js会自动兜底。 - 单位如何切换? 右上角切换公制 / 英制,显示层自动换算,计算内核始终使用 cm / kg。
Smart Container Load Calculator — optimize mixed-SKU container packing and carton→pallet building (single-SKU stuffing) with interactive 3D visualization and step-by-step loading animation.
- Mode A: multi-SKU container loading with 3D view (iso / top / front / side), loading-sequence replay, and center-of-gravity safety check.
- Set Load: lock a fixed ratio across carton types (e.g. carton1 : carton2 = 1 : 2) and get the maximum number of complete sets per container. Placement rules are unchanged — a binary search over the set count is layered on top. Strict by default; an optional "fill leftover space" switch adds extra boxes without reducing the set count.
- Mode B: cascade optimization from item → carton → pallet with column / interlock / pinwheel patterns, ISO-pallet and container constraints.
- Extras: Excel paste import, printable A4 loading plan, metric / imperial toggle, and full Chinese / English i18n.
Quick start
docker compose up -d --build
# or: npm install && npm startPure front-end computation (Three.js + vanilla JS), no backend logic, no secrets — runs anywhere.
MIT