资讯动态

从 B/S 到 Electron:平面排版套料系统桌面版开发实战

发布时间:2026/10/22 2:14:32 来源:尧图企业网站定制
一、引言在制造业中平面排版套料是提高材料利用率、降低生产成本的关键环节。传统的套料系统大多采用 B/S浏览器 / 服务器架构用户通过浏览器访问系统进行排版和生成 NC 代码。然而B/S 架构在实际使用中存在一些局限性依赖网络连接、数据存储在云端、离线使用不便、文件管理分散等。对于车间现场的工程师来说他们更需要一个离线可用、数据本地化、操作便捷的桌面应用。本文将介绍我们如何将一个成熟的 B/S 套料系统Nesty转换为 Electron 桌面单机应用分享其中的技术架构、核心功能、关键实现和开发经验。二、系统概述Nesty是一款专业的平面排版套料系统主要功能包括智能排版自动套排并优化零件在板材上的排列提高材料利用率NC 编排生成数控机床可识别的标准 G 代码任务管理创建、跟踪和管理排版任务数据备份排版数据的一键备份和恢复确保数据安全中英文双语支持中文和英文界面技术架构三、核心功能介绍3.1 平面排版套料算法套料算法是系统的核心。系统采用了现代流行的启发式算法结合零件的形状、尺寸和优先级自动优化排列方式。支持规则或异形零件的多品种多批次混合排版大幅度的提升传统套排模式的材料利用率为企业运营降低成本做贡献。3.2 NC 编排和导出自动套料排版完成后可以让系统自动生成标准 NC 代码并支持手动调整切割顺序、引线位置和切割参数。导出的G代码可应用于等离子、激光、水刀等数控机床。3.3 任务管理和数据备份所有任务数据存储在本机 SQLite 数据库中支持一键备份和恢复。备份文件包含数据库和附件DXF文件、结果图片等确保数据完整性。四、关键技术实现4.1 Electron 桌面应用架构系统使用 Electron 将 Vue 前端和 FastAPI 后端打包为桌面应用。后端通过 PyInstaller 打包为独立的 Python 可执行文件前端通过 Vite 构建为静态文件由主进程启动后端服务并加载前端页面。架构亮点跨域解决方案主进程通过 session.webRequest 注入凭据避免 CORS 问题安全隔离contextIsolation 启用preload 脚本暴露受控 API窗口管理自绘标题栏、状态栏丰富的工具栏组件4.2 自动更新机制自动更新是桌面应用的关键功能。系统实现了基于安全签名验证的更新机制更新清单包含版本号、安装包 URL、SHA256 哈希和 数字签名客户端内置公钥下载前先验证签名和哈希确保安装包未被篡改4.3 本机数据安全和备份恢复数据安全是企业应用的底线。系统采用了同点快照和原子切换的备份恢复策略备份时暂停新写入确保数据库和附件来自同一时间点恢复时先解包到暂存目录校验完整性后再切换持久化切换标记崩溃后重启可自动恢复或回滚五、开发经验和踩坑5.1 B/S 到桌面版转换的挑战从 B/S 转换为桌面版并非简单的 套壳。我们遇到了很多挑战跨域问题前端和后端在不同端口需要通过主进程注入凭据解决文件下载浏览器的下载逻辑在桌面版中需要改为主进程保存文件窗口管理无边框窗口的拖动、最大化、最小化需要自定义实现自动更新NSIS 安装包的签名验证、失败回滚、启动看门等5.2 测试驱动开发的重要性在开发过程中我们深刻体会到测试驱动开发的重要性。每修改一个功能都要编写对应的测试用例确保修改不会破坏现有功能。测试体系后端测试pytest 单元测试覆盖套料算法、API 接口前端测试Vitest 组件测试覆盖 UI 组件和交互Electron 测试node --test 主进程测试覆盖窗口管理、自动更新打包测试smoke test验证打包后的应用能正常启动和运行5.3 打包和发布的经验打包和发布是桌面应用开发的最后一环也是最容易踩坑的一环。我们总结了一些经验使用 ELECTRON_OVERRIDE_DIST_PATH 环境变量复用已下载的 Electron 二进制避免网络超时NSIS 安装包使用 oneClickfalse允许用户选择安装目录自动更新的签名清单必须离线保管私钥公钥内置在应用中打包前必须运行所有测试确保没有破坏现有功能六、总结和展望本文介绍了我们如何将一个成熟的 B/S 套料系统转换为 Electron 桌面单机应用。通过采用 Vue 3 FastAPI Electron 的技术架构实现了离线可用、数据本地化、操作便捷的桌面应用。未来我们计划优化套料算法进一步提高材料利用率支持更多数控机床的 NC 代码格式探索 AI 辅助排版提高智能化水平

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑