PalletLayoutEngine引擎

一、产品简介

高效智能·精准适配——PalletLayoutEngine 引擎,解锁物料摆放新效率

在仓储分拣、物流配送、生产摆盘等场景中,物料排样的合理性直接决定空间利用率、作业效率与成本控制。PalletLayoutEngine 引擎,专为各类物料托盘化摆放需求研发,以“智能算法、灵活适配、高效追加、精准可控”为核心,打破传统排样的繁琐与低效,为各行业提供一站式、高适配的排样解决方案,让每一寸空间都发挥最大价值。

核心优势,重塑排样体验

  • 双规则灵活适配,覆盖全场景需求:支持两种核心排样规则,规则1(层递进四角循环)与规则2(分组垂直堆叠)按需切换,既满足“每层起始角递进循环、层内四角轮流摆放”的精细化需求,也适配“同规格物料分组堆叠、满额自动新开组”的批量摆放场景,兼顾精准度与批量效率。
  • 智能追加排样,操作更便捷:支持无限次重复调用追加物料,无需重新初始化,历史排样状态(占用区域、分组信息、层号)自动持久化,避免重复操作,大幅提升分批物料摆放的作业效率,适配多批次、小批量物料的动态排样需求。
  • 空间利用率拉满,降本增效看得见:内置优化算法,物料按尺寸优先级排序,结合四角循环、旋转适配(自动判断物料旋转后是否更适配空间),最大化利用托盘空间,减少闲置区域;同时通过分组堆叠、边距/间距可控,降低物料碰撞损耗,间接降低仓储、物流成本。
  • 参数可定制,适配多规格场景:托盘尺寸、边距、物料间距、堆叠上限、尺寸误差等参数均可灵活配置,适配不同行业、不同规格的物料(箱子、零件、包装等)与托盘,无需二次开发,直接对接现有系统(如Hnzkvision视觉软件系统)。
  • 稳定可靠,易于集成:代码简洁无冗余,可直接编译使用,支持与各类.NET项目、可视化界面无缝集成;内置溢出判断、利用率计算,排样结果清晰可查,兼顾稳定性与易用性。

适用场景,全行业覆盖

PalletLayoutEngine 不局限于单一行业,凡是涉及物料托盘化摆放、空间优化的场景,均可完美适配,核心适用场景包括:

  • 仓储物流行业:仓库货物分拣后托盘摆放、快递包裹批量摆盘、电商仓库出库打包排样,提升仓储空间利用率与分拣效率。
  • 生产制造行业:零部件生产摆盘、成品包装托盘堆放、生产线物料补给排样,适配多规格、多批次生产需求。
  • 冷链物流行业:冷藏货物托盘摆放,通过空间优化减少冷藏仓占用,降低能耗,同时避免物料挤压损坏。
  • 商超/零售行业:商品进货后托盘整理、仓储货架补货排样,提升补货效率与仓储空间利用率。
  • 定制化生产场景:多规格、小批量物料的动态排样,支持按需调整参数,适配个性化生产需求。

核心特色,区别于传统规划算法

相较于传统规划、PalletLayoutEngine 以“智能、灵活、高效”脱颖而出,核心特色不可替代:

  • 告别手动计算:无需人工判断物料摆放位置、层号,算法自动完成空间适配与角位循环,减少人为误差。
  • 动态追加无压力:支持多批次物料依次追加,历史状态自动保存,无需重新排样,适配实际作业中的分批处理场景。
  • 双规则按需切换:既支持精细化的四角循环排样,也支持高效的按物料编码和尺寸动态分组堆叠,一份工具满足多种摆放需求。
  • 结果可视化可追溯:结果包含物料位置、层号、旋转状态、利用率等信息,便于后续作业与数据统计。

二、使用操作手册

1. 软件概述

PalletLayoutEngine 是一款轻量级、高适配的物料托盘排样引擎,可直接集成于.NET项目或可视化界面(如Hnzkvision视觉软件系统),核心功能是实现物料在托盘上的智能排样、动态追加,支持两种规则可适配常见所有场景的工况,参数可灵活配置,适用于多行业物料托盘化摆放需求。

核心功能:双规则算法、动态追加摆放规划、参数定制、算法结果输出、空间利用率计算、溢出判断。

2. 环境准备

2.1 运行环境

  • 框架要求:.NET Framework 4.5及以上
  • 开发环境:Visual Studio 2022及以上(用于集成开发)
  • 运行设备:支持WindowsX64架构运行.NET程序的设备(服务器、工业电脑、普通PC均可)

2.2 集成方式

将PalletLayoutEngine.dll文件引用至项目中,导入命名空间 PalletLayoutEngine,即可直接调用核心方法,无需额外配置。

3. 核心参数说明(必看)

智能规划功能的核心是参数配置,所有参数均可根据实际场景灵活调整,以下为详细说明(均为调用时必填/可选参数):

参数名称

参数类型

说明

示例值

materials

List<InputMaterial>

待规划物料列表,需包含物料编码、宽度、高度

new List<InputMaterial>{ new InputMaterial { Code = "BOX-A", Width = 200, Height = 150 } }

palletWidth

int

托盘宽度(单位:mm,根据实际托盘尺寸设置)

1200

palletHeight

int

托盘高度(单位:mm,根据实际托盘尺寸设置)

1000

edgeMargin

int

托盘边距(物料与托盘边缘的距离,单位:mm,防止物料超出托盘)

20

itemMargin

int

物料间距(相邻物料之间的距离,单位:mm,防止碰撞)

10

layoutRule

int

规划规则:1=层递进四角循环,最大化利用空间;2=编码+尺寸双冗余动态分组多层堆叠

1 或 2

clearExistingItems

bool

是否清空历史规划:true=清空重新规划;false=追加规划(核心功能)

false(推荐用于分批追加)

maxStackCount

int

规则2专用:每组物料堆叠上限,满额自动新开组

5(每组最多堆叠5个物料)

sizeTolerance

int

规则2专用:尺寸误差(允许物料尺寸与分组基准尺寸的偏差,单位:mm)

10

4. 详细操作步骤

4.1 基础操作(单次排样)

适用于单批次物料一次性排样,步骤如下:

  1. 引用DLL文件:将PalletLayoutEngine.dll导入项目,添加命名空间 using PalletLayoutEngine;
  1. 配置规划参数:根据实际托盘、物料情况,设置上述核心参数(重点确认托盘尺寸、边距、规划规则)。
  1. 构建物料列表:创建InputMaterial列表,添加待规划物料(每个物料需填写Code、Width、Height)。
  1. 调用规划方法:执行ExecuteLayout方法,传入所有参数,获取规划结果。
  1. 处理规划结果:从返回的OutputMaterial列表中,获取每个物料的摆放位置、层号、旋转状态等信息,用于后续作业(如可视化显示、物料摆放)。

4.2 核心操作(动态追加规划)

适用于多批次物料,需在原有规划基础上追加摆放(核心优势功能),步骤如下:

  1. 首次规划:按基础操作步骤执行,设置 clearExistingItems = true,完成第一批次物料规划。
  1. 追加规划:保持所有参数(托盘尺寸、边距、排样规则等)不变,仅更新物料列表(添加新批次物料),设置 clearExistingItems = false
  1. 重复调用:每次追加新物料,均执行ExecuteLayout方法(clearExistingItems设为false),算法会自动保留历史规划状态,将新物料追加至现有托盘空间中。
  1. 溢出处理:若托盘空间不足,排样结果中Pallet.IsOverflow会设为true,可提示用户更换托盘或调整参数。

4.3 两种规划规则操作说明

规则1:层递进四角循环(layoutRule = 1

核心逻辑(重点特色):

  • 层1起始角:0(左上)→ 层内物料依次循环 0→1→2→3→0…
  • 层2起始角:1(右上)→ 层内物料依次循环 1→2→3→0→1…
  • 层3起始角:2(右下)→ 层内物料依次循环 2→3→0→1→2…
  • 层4起始角:3(左下)→ 层内物料依次循环 3→0→1→2→3…
  • 层5及以后:起始角回到0,循环往复。

适用场景:需要精细化摆放、物料尺寸多样、追求空间利用率最大化的场景(如仓储分拣、定制化物料摆放)。

规则2:分组垂直堆叠(layoutRule = 2

核心逻辑:

  • 同规格物料(编码+尺寸误差范围内)自动分组,每组物料垂直堆叠(同一位置、不同层号)。
  • 每组堆叠数量达到maxStackCount时、物料编码不同时、物料尺寸范围超误差时,自动新开组,在托盘上寻找新位置摆放。
  • 未找到匹配分组的物料,自动在托盘上寻找空位摆放,并创建新分组。

适用场景:物料规格尺寸繁多、需要批量堆叠、追求摆放效率的场景(如生产成品摆盘、批量货物仓储)。

5. 完整调用示例(Hnzkvision

using System.Collections.Generic;
using PalletLayoutEngine;

// 1.
配置规划参数(根据实际场景调整)
int palletWidth = 1200;        // 托盘宽(mm)
int palletHeight = 1000;       // 托盘高(mm)
int edgeMargin = 20;           // 托盘边距(mm)
int itemMargin = 10;           // 物料间距(mm)
int layoutRule = 1;            //
规划规则:1=四角循环;2=分组堆叠
bool clearExisting = false;    // false=追加排样;true=清空重新排
int maxStackCount = 5;         // 规则2专用:每组堆叠上限
int sizeTolerance = 10;        // 尺寸误差(mm)

// 2. 构建物料列表(新批次物料)
List<PalletLayoutCore.InputMaterial> materials = new List<PalletLayoutCore.InputMaterial>();
materials.Add(new PalletLayoutCore.InputMaterial { Code = "BOX-A", Width = 200, Height = 150 });
materials.Add(new PalletLayoutCore.InputMaterial { Code = "BOX-B", Width = 250, Height = 180 });

// 3. 调用
规划方法,获取结果
List<PalletLayoutCore.OutputMaterial> result = PalletLayoutCore.ExecuteLayout(
    materials,
    palletWidth,
    palletHeight,
    edgeMargin,
    itemMargin,
    layoutRule,
    clearExisting,
    maxStackCount,
    sizeTolerance
);

// 4. 处理
规划结果(示例:打印物料信息)
foreach (var item in result)
{
    Console.WriteLine($"物料编码:{item.Code}");
    Console.WriteLine($"摆放位置:X={item.CenterX},Y={item.CenterY}");
    Console.WriteLine($"层号:{item.Layer},旋转状态:{item.RotateState}(0=不旋转,1=旋转)");
    Console.WriteLine($"层利用率:{item.LayerUtilization:P2},总物料数:{item.TotalCount}");
    Console.WriteLine("------------------------------");
}

 

6. 常见问题与解决方案

  • 问题1:第二次调用规划无结果 → 解决方案:确认clearExisting设为false,且参数(托盘尺寸、边距等)与首次调用一致,避免参数不一致导致历史状态无法识别。
  • 问题2:规则1四角循环不生效 → 解决方案:确认layoutRule设为1,无需额外配置,算法自动执行层递进四角循环逻辑。
  • 问题3:物料无法摆放(溢出) → 解决方案:检查托盘尺寸是否足够、边距是否过大,或调整物料顺序(算法按尺寸优先级排序,可手动调整物料列表顺序)。
  • 问题4:规则2分组不生效 → 解决方案:确认物料编码、尺寸在sizeTolerance误差范围内,且maxStackCount参数设置合理。
  • 问题5:规划结果与预期位置不符 → 解决方案:检查边距、物料间距参数,或确认物料是否开启旋转适配(算法自动判断,无需手动设置)。

7. 注意事项

  • 参数设置时,托盘尺寸需大于物料尺寸+2*边距,否则物料无法摆放(会触发溢出)。
  • 追加规划时,需保持托盘尺寸、边距、排样规则等核心参数不变,仅更新物料列表。
  • 物料尺寸建议按实际尺寸填写,尺寸误差(sizeTolerance)不宜设置过大,避免分组错误。
  • 若需集成至可视化界面(如Hnzkvision),可通过OutputMaterial中的CenterX、CenterY、Layer等参数,实现物料摆放位置的可视化显示。

三、总结

PalletLayoutEngine引擎,以智能算法为核心,以灵活适配为特色,完美解决多行业物料托盘化摆放的痛点,既实现了精细化的四角循环排样,也支持高效的分组堆叠,同时具备动态追加排样功能,大幅提升作业效率、降低空间浪费。

无论是单批次还是多批次物料,无论是精细化还是批量摆放,PalletLayoutEngine 都能精准适配,无需复杂操作,参数可定制、集成便捷,是仓储、生产、物流等行业提升排样效率、降本增效的优选工具。

                                                                   河南智控科技(研发组)

2026年4月9日

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐