[{"content":"这是一篇测试文章。\n1. 总览（Executive Summary） 分支A：jiang4 分支B：pp-work-on-jiang4 变更规模：小（仅新增 2 个源文件，范围限定在 src/** 和 CMakeLists.txt） 变更类型：feature 为主（新增路径优化组件），其他类型无 一句话总结：分支B新增了一个用于“铺粉路径优化”的独立模块，但当前未接入构建或调用，因此对现有行为无影响。 2. 关键变更（Top Changes） 新增 src/pathPlanning/PowderSpreadingOptimizer.{h,cpp}：实现铺粉路径的贪心最近邻优化与粉管切换成本模型。 新增接口 PowderSpreadingOptimizer::optimizePowderSpreadingPath 与 PowderSpreadingPoint 数据结构，用于多粉管协同与方向约束的路径排序。 未修改 CMakeLists.txt：新 .cpp 未加入 engine_SRCS，因此目前不会参与编译与运行。 3. 按模块/目录的差异说明 3.1 src/pathPlanning/ 变更点：新增 PowderSpreadingOptimizer 类及其实现；包含最近邻路径排序、旋转角度权重距离、粉管切换代价（+10mm）。 意图推断：为 LPBF/铺粉场景引入“多粉管协同路径优化”的通用组件，减少空行程并尽量保持铺粉方向一致（基于代码注释推断）。 影响范围：当前仅新增文件，未被任何现有模块引用，运行时行为不变。 可能风险：若未来接入编译，PowderSpreadingOptimizer.cpp 使用 std::numeric_limits 但未显式 #include \u0026lt;limits\u0026gt;，可能导致编译依赖隐式包含。 4. 接口/配置/协议变更 4.1 API/函数签名 变化：新增 PowderSpreadingOptimizer::optimizePowderSpreadingPath(...) 与 PowderSpreadingPoint 结构体。 兼容性：对现有接口无影响（新增且未被引用）。 4.2 配置项/参数/CLI 新增：无 修改：无 删除：无 4.3 数据格式/文件/通信协议 变化：无 5. 风险评估 高风险：无（当前无运行时行为变化）。 中风险： 构建接入风险：新增 .cpp 未加入 engine_SRCS，若期望生效则当前构建不会包含该实现（功能缺失）。 编译风险：std::numeric_limits 头文件缺失可能导致未来接入时编译失败。 低风险： 算法策略为贪心最近邻，可能在复杂路径下产生次优结果，但当前未上线不影响现有行为。 6. 验证与回归测试清单 构建验证（Debug/Release，平台：Windows/MSVC 或既有主力平台） 核心功能路径：若计划启用该优化器，增加入口调用并验证路径排序是否减少空行程 边界条件：空点集、单点、多粉管交替、旋转角度=0/90、起点与点集重合 性能基准（若适用）：与原始顺序或其他排序策略对比总行程 兼容性（旧配置/旧数据）：无配置变更，但需确认现有路径规划流程不受影响 7. 合并建议 建议：Need more info 理由：当前新增模块未接入构建与调用，是否需要合并取决于是否计划在近期引入该功能；否则仅是“悬空代码”。 需要补充的信息（如有）： 是否计划在近期将该优化器接入具体路径规划流程？ 期望的调用位置/阶段（如铺粉阶段的具体模块） 是否需要把 .cpp 加入 engine_SRCS 并加入单元测试 该算法与现有路径策略的验收指标（比如行程、效率、冲突约束） 是否有性能或路径约束的业务标准 ","permalink":"https://ShugangPei.github.io/posts/hello/","summary":"\u003cp\u003e这是一篇测试文章。\u003c/p\u003e\n\u003ch2 id=\"1-总览executive-summary\"\u003e1. 总览（Executive Summary）\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e分支A：jiang4\u003c/li\u003e\n\u003cli\u003e分支B：pp-work-on-jiang4\u003c/li\u003e\n\u003cli\u003e变更规模：小（仅新增 2 个源文件，范围限定在 \u003ccode\u003esrc/**\u003c/code\u003e 和 \u003ccode\u003eCMakeLists.txt\u003c/code\u003e）\u003c/li\u003e\n\u003cli\u003e变更类型：feature 为主（新增路径优化组件），其他类型无\u003c/li\u003e\n\u003cli\u003e一句话总结：分支B新增了一个用于“铺粉路径优化”的独立模块，但当前未接入构建或调用，因此对现有行为无影响。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"2-关键变更top-changes\"\u003e2. 关键变更（Top Changes）\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e新增 \u003ccode\u003esrc/pathPlanning/PowderSpreadingOptimizer.{h,cpp}\u003c/code\u003e：实现铺粉路径的贪心最近邻优化与粉管切换成本模型。\u003c/li\u003e\n\u003cli\u003e新增接口 \u003ccode\u003ePowderSpreadingOptimizer::optimizePowderSpreadingPath\u003c/code\u003e 与 \u003ccode\u003ePowderSpreadingPoint\u003c/code\u003e 数据结构，用于多粉管协同与方向约束的路径排序。\u003c/li\u003e\n\u003cli\u003e未修改 \u003ccode\u003eCMakeLists.txt\u003c/code\u003e：新 \u003ccode\u003e.cpp\u003c/code\u003e 未加入 \u003ccode\u003eengine_SRCS\u003c/code\u003e，因此目前不会参与编译与运行。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"3-按模块目录的差异说明\"\u003e3. 按模块/目录的差异说明\u003c/h2\u003e\n\u003ch3 id=\"31-srcpathplanning\"\u003e3.1 src/pathPlanning/\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e变更点：新增 \u003ccode\u003ePowderSpreadingOptimizer\u003c/code\u003e 类及其实现；包含最近邻路径排序、旋转角度权重距离、粉管切换代价（+10mm）。\u003c/li\u003e\n\u003cli\u003e意图推断：为 LPBF/铺粉场景引入“多粉管协同路径优化”的通用组件，减少空行程并尽量保持铺粉方向一致（基于代码注释推断）。\u003c/li\u003e\n\u003cli\u003e影响范围：当前仅新增文件，未被任何现有模块引用，运行时行为不变。\u003c/li\u003e\n\u003cli\u003e可能风险：若未来接入编译，\u003ccode\u003ePowderSpreadingOptimizer.cpp\u003c/code\u003e 使用 \u003ccode\u003estd::numeric_limits\u003c/code\u003e 但未显式 \u003ccode\u003e#include \u0026lt;limits\u0026gt;\u003c/code\u003e，可能导致编译依赖隐式包含。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"4-接口配置协议变更\"\u003e4. 接口/配置/协议变更\u003c/h2\u003e\n\u003ch3 id=\"41-api函数签名\"\u003e4.1 API/函数签名\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e变化：新增 \u003ccode\u003ePowderSpreadingOptimizer::optimizePowderSpreadingPath(...)\u003c/code\u003e 与 \u003ccode\u003ePowderSpreadingPoint\u003c/code\u003e 结构体。\u003c/li\u003e\n\u003cli\u003e兼容性：对现有接口无影响（新增且未被引用）。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"42-配置项参数cli\"\u003e4.2 配置项/参数/CLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e新增：无\u003c/li\u003e\n\u003cli\u003e修改：无\u003c/li\u003e\n\u003cli\u003e删除：无\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"43-数据格式文件通信协议\"\u003e4.3 数据格式/文件/通信协议\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e变化：无\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"5-风险评估\"\u003e5. 风险评估\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e高风险：无（当前无运行时行为变化）。\u003c/li\u003e\n\u003cli\u003e中风险：\n\u003cul\u003e\n\u003cli\u003e构建接入风险：新增 \u003ccode\u003e.cpp\u003c/code\u003e 未加入 \u003ccode\u003eengine_SRCS\u003c/code\u003e，若期望生效则当前构建不会包含该实现（功能缺失）。\u003c/li\u003e\n\u003cli\u003e编译风险：\u003ccode\u003estd::numeric_limits\u003c/code\u003e 头文件缺失可能导致未来接入时编译失败。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e低风险：\n\u003cul\u003e\n\u003cli\u003e算法策略为贪心最近邻，可能在复杂路径下产生次优结果，但当前未上线不影响现有行为。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"6-验证与回归测试清单\"\u003e6. 验证与回归测试清单\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"\u003e 构建验证（Debug/Release，平台：Windows/MSVC 或既有主力平台）\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"\u003e 核心功能路径：若计划启用该优化器，增加入口调用并验证路径排序是否减少空行程\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"\u003e 边界条件：空点集、单点、多粉管交替、旋转角度=0/90、起点与点集重合\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"\u003e 性能基准（若适用）：与原始顺序或其他排序策略对比总行程\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"\u003e 兼容性（旧配置/旧数据）：无配置变更，但需确认现有路径规划流程不受影响\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"7-合并建议\"\u003e7. 合并建议\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e建议：Need more info\u003c/li\u003e\n\u003cli\u003e理由：当前新增模块未接入构建与调用，是否需要合并取决于是否计划在近期引入该功能；否则仅是“悬空代码”。\u003c/li\u003e\n\u003cli\u003e需要补充的信息（如有）：\u003c/li\u003e\n\u003c/ul\u003e\n\u003col\u003e\n\u003cli\u003e是否计划在近期将该优化器接入具体路径规划流程？\u003c/li\u003e\n\u003cli\u003e期望的调用位置/阶段（如铺粉阶段的具体模块）\u003c/li\u003e\n\u003cli\u003e是否需要把 \u003ccode\u003e.cpp\u003c/code\u003e 加入 \u003ccode\u003eengine_SRCS\u003c/code\u003e 并加入单元测试\u003c/li\u003e\n\u003cli\u003e该算法与现有路径策略的验收指标（比如行程、效率、冲突约束）\u003c/li\u003e\n\u003cli\u003e是否有性能或路径约束的业务标准\u003c/li\u003e\n\u003c/ol\u003e","title":"第一篇：博客搭建完成"},{"content":"你好，我是 pp（Shugang Pei）。目前在材料与化工方向读研，长期关注 增材制造（AM），尤其是 超声振动干粉 3D 打印（DPP） 的工艺与软件系统。\n来自：中国 学校：哈尔滨工程大学（HRBEU） 方向/工作：DPP 设备的软件开发与算法实现（切片、标定、闭环控制、可视化工具链） GitHub：https://github.com/ShugangPei 邮箱：shugangpei@hrbeu.edu.cn 我在做什么 我正在团队自研的 DPP 设备上，持续搭建一套“从切片到执行、从标定到闭环”的软件链路。\n这项工作既包含算法层面的实现，也包含工程层面的落地，例如：\n切片与 G-code 生成流程改造 粉道视觉测量与误差量化 上位机控制、日志记录与问题追踪 参数回写与迭代补偿机制 我为什么写这个博客 这个博客是我的技术工作台，也是长期学习记录。\n对我自己：把实践过程写成结构化笔记，方便回顾、复盘和持续优化 对同方向读者：分享可复用的方法、踩坑经验和工程思路 对未来协作：沉淀公开材料，降低沟通成本，提高协作效率 这里会写什么 接下来我会持续更新以下内容：\nDPP/AM 相关的软件设计与实现 切片、路径策略与参数补偿的实验记录 图像测量与闭环控制中的工程问题 个人开源项目的迭代日志与阶段总结 联系方式 如果你对这些主题感兴趣，欢迎交流或提出建议。\n你可以通过 GitHub Issue、邮件或主页仓库联系我。\n","permalink":"https://ShugangPei.github.io/about/","summary":"\u003cp\u003e你好，我是 \u003cstrong\u003epp（Shugang Pei）\u003c/strong\u003e。目前在材料与化工方向读研，长期关注 \u003cstrong\u003e增材制造（AM）\u003c/strong\u003e，尤其是 \u003cstrong\u003e超声振动干粉 3D 打印（DPP）\u003c/strong\u003e 的工艺与软件系统。\u003c/p\u003e","title":"关于"},{"content":"这篇文章整理我在个人主页上的主要开源项目：它们围绕自研的 DPP（超声振动干粉 3D 打印）设备，目标是构建一套“从切片到执行、从标定到闭环”的软件生态。\n个人主页：https://github.com/ShugangPei\n1. 切片与 G-code 生成 1.1 CuraEngine-Yang（DPP 专用切片内核改造） 仓库：https://github.com/kasumi-link/CuraEngine-Yang 方向：在 CuraEngine 的基础上做深度改造，输出适配 DPP 设备的定制 G-code。 重点能力（典型）： 支持设备特有的工艺参数（例如起止补偿 LA/LB 等） 更贴近实际运动学（加减速/延迟）的路径与参数输出 为后续“自动补偿/闭环控制”提供统一的数据接口与可追溯输出 2. 粉道标定与图像测量 2.1 Powder_Process（粉道标定 + 尺寸测量 + 自动补偿入口） 仓库：https://github.com/ShugangPei/Powder_Process 方向：通过图像识别/机器学习，对单道铺粉结果进行标定、检测宽度/长度，并反向校正切片输出中的补偿参数（例如 LA/LB）。 你可以把它理解为：把“经验调参”变成“数据驱动的标定与回写”。 2.2 CAMERA（OpenCV 视觉测量与鲁棒性增强方向） 仓库：https://github.com/ShugangPei/CAMERA 方向：围绕粉道图像的视觉算法沉淀工程化实现，比如： 二值化/形态学/骨架化等稳定提取 划痕、光照不均、模糊等干扰处理 输出可量化指标（长度、宽度、偏差），为闭环控制提供反馈量 3. 上位机控制、监控与可视化 3.1 Monitor（上位机控制与状态监控） 仓库：https://github.com/ShugangPei/Monitor 方向：上位机侧的设备控制/监控工具，用于把“切片输出”真正落到“设备执行”，并为工艺验证提供可视化与日志基础。 典型功能方向：任务下发、状态监控、参数面板、运行日志、故障定位等。 3.2 GCodeViewer3D（桌面端 G-code 3D 可视化） 仓库：https://github.com/ShugangPei/GCodeViewer3D 方向：把 G-code 路径可视化（3D/分层），用于验证切片输出是否符合预期，尤其适合调试定制指令与补偿逻辑。 3.3 GGBond（Web 端 G-code 可视化/交互） 仓库：https://github.com/ShugangPei/GGBond 方向：基于 Web 的 G-code 浏览与交互，方便跨平台展示与分享（例如给同学/老师快速演示某段路径或策略）。 4. 路径策略与工艺探索 4.1 laser（路径生成/扫描策略实验仓） 仓库：https://github.com/ShugangPei/laser 方向：用于探索不同扫描/填充策略（例如棋盘格等），把策略从“想法”落到“可生成、可验证、可对比”的实现。 5. 我接下来会怎么把它们串成“闭环系统” 我的目标不是做很多孤立工具，而是形成一个闭环：\n切片生成：CuraEngine-Yang 输出可追溯的工艺 G-code（包含补偿入口） 执行与监控：Monitor 执行任务 + 记录过程数据 视觉反馈：Powder_Process / CAMERA 输出量化误差（长度/宽度/偏差） 自动回写：把误差映射成 LA/LB 等参数更新，形成迭代标定或在线补偿 当这个闭环打通后，才真正从“手动调参”走向“自动标定 + 数据驱动补偿”。\n结语 如果你对这些项目或 DPP 软件生态感兴趣，欢迎通过主页或邮箱联系我：\nGitHub：https://github.com/ShugangPei Email：shugangpei@hrbeu.edu.cn ","permalink":"https://ShugangPei.github.io/posts/opensource-projects/","summary":"\u003cp\u003e这篇文章整理我在个人主页上的主要开源项目：它们围绕自研的 DPP（超声振动干粉 3D 打印）设备，目标是构建一套“从切片到执行、从标定到闭环”的软件生态。\u003c/p\u003e","title":"我的开源项目一览：DPP 软件生态与工具链"}]