二维板材切割剩余件的数据库存储及联动更新问题咨询
板材余料关联存储与同步更新方案
场景说明
初始为一块10×10的板材,移除8×6区域后,剩余两个存在重叠区域的余料:
- 2×10形状(由蓝色非重叠区+红色重叠区组成)
- 10×4形状(由绿色非重叠区+红色重叠区组成)
红色重叠区尺寸为2×4,是两个余料的共享部分,因此取用其中一个余料时,必须同步更新另一个的尺寸。
现存问题
此前将两个余料单独存储,无法感知新零件需求对两者关联区域的影响,导致尺寸更新不同步。
解决方案
关联存储设计
在数据库的余料表中增加parent_stock_id(标记同一块母板材的ID)和overlap_dim(存储重叠区域的宽高,如2x4)字段,或者单独建立关联表记录余料间的绑定关系,确保能快速找到关联的余料对象。
余料表核心字段示例:id,width,height,parent_stock_id,overlap_dim同步更新逻辑
当执行10×4余料的取用操作时:- 先判断取用的区域是否涉及红色重叠区;
- 若取用的是绿色非重叠区(8×4),则2×10余料的尺寸保持不变;
- 若取用了红色重叠区的部分或全部,则同步计算并更新2×10余料的尺寸(比如取走全部2×4重叠区,2×10余料就变为2×6)。
反之,取用2×10余料涉及重叠区时,也要同步更新10×4余料的尺寸。
触发机制
在余料取用的业务代码中加入关联检查逻辑:每次执行取用操作前,通过parent_stock_id查询到关联的余料,判断当前取用区域与重叠区域的交集,再批量更新关联余料的尺寸。
示意图说明:黄色为初始移除的8×6区域,蓝色+红色为2×10形状,绿色+红色为10×4形状,红色区域是两者的2×4重叠部分。
内容的提问来源于stack exchange,提问作者antonymakombora
相关产品推荐
相关产品推荐

