乐于分享
好东西不私藏

算法升级 + 架构重构:一维下料软件分享

算法升级 + 架构重构:一维下料软件分享

一、 背景:为什么要“折腾”这次重构?

关于 CAD 二次开发的界面实现,我之前分享过不少方案:

最近刚好对一维下料优化算法的核心逻辑进行了更新,加入了更多实战约束。想到之前一直在研究“三层隔离架构”的理论,我干脆“以赛代练”,直接把这款下料软件采用这种架构重写了一遍,顺便深度学习一下 WPF 开发。


二、 技术路线:从痛苦到优雅

在传统的 MFC 开发中,处理复杂的数据绑定和动态图形预览简直是噩梦。而这次重构,我严格执行了**“三层隔离”**:

  1. 内核层 (Native C++):继续保留高性能的 C++ 求解器,利用 HiGHS/CLP 等库保证算力。

  2. 桥接层 (C++/CLI):负责数据类型的翻译与传递,让 C++ 算法平滑对接 .NET。

  3. 表现层 (WPF):利用 XAML 强大的表现力和数据绑定机制,实现 UI 逻辑。

虽然这套架构前期搭建环境和编写转换代码比较花时间,但跑通之后,UI 的迭代速度确实让我惊喜。


三、 功能更新:不仅是换了个壳

在重构界面的同时,我也把最新的算法逻辑塞了进去,新增了两个解决生产痛点的功能:

1. 限制零件种类数

追求极高利用率时,一根原料上切出 7-8 种零件是常态,但这会导致车间分拣极其痛苦。

  • 解决:现在可以设定单根原料上的零件种类限制(例如限制为 3 种)。

  • 价值:在保证省料的同时,大幅降低了施工难度。

2. 原料最少数量限制

如果仓库里有一批旧余料必须先消耗掉,以前的算法很难强制介入。

  • 解决:新增“最少数量”列。

  • 价值:强制算法优先消耗特定批次的库存,帮工厂科学清理仓库余料。

3. 可视化排版预览

利用 WPF 的矢量绘图优势,软件底部增加了彩色预览条。每一段零件的分布、余料的位置一目了然,工人直接看图下料即可。


四、 写在最后

这次尝试让我深切体会到,好的工具 = 硬核算法 + 优雅架构 + 趁手 UI。如果你还在为 MFC 的繁琐头疼,不妨也尝试一下“三层架构 + WPF”的路线。

软件已经打包好了,大家可以自行下载尝试。由于时间仓促,目前仅作学习和交流使用,欢迎大家给我提 Bug 或算法建议!

后台回复【一维下料】获取独立软件

回复【CAD下料】获取下料 CAD 插件