打开 robEllenberg 打开了这个问题 2017 年 1 月 9 日 · 4条评论 打开 多圈圆弧错误地转换为直线进给#222 robEllenberg 打开了这个问题 2017 年 1 月 9 日 · 4条评论 注释 合作者 罗伯·埃伦伯格 评论了 2017 年 1 月 9 日 • 编辑 以下是我重现该问题所遵循的步骤: 在轧机模拟配置中运行以下 G 代码片段: G20 G90 G17 G64 P0.005 Q0.001 G0 X 0.0650 Y 0.0000 G0 Z 0.2000 G1 Z 0.0000 F10.0 F 3.42 (Arc Feed, inches/minute) G3 X 0.0643 Y 0.0095 Z -0.2000 P 15.0000 I -0.0650 J 0.0000 这是我期望发生的事情: 低至 Z-0.2 的 15 圈螺旋孔 这是发生了什么: 直线下降到 Z-0.2 在此之前它工作正常: 在 2.7.x 版本上失败(肯定是 2.7.8,也可能是旧版本)。 诊断 如果朴素的凸轮公差设置为零,这种暴跌行为就会消失: G64 P0.005 Q0.0 这个错误是由于 emccanon.cc 中 ARC_FEED 中的 Naive CAM Detection routine。NCD 检查弧段和直线之间的弦高是否低于 NCD 公差。如果是,则用一对线段代替圆弧。不幸的是,此检查没有正确说明多圈弧。目前,它完全忽略了圈数。它应该做的是将所有超过180度的角度都视为180度(即最大弦高)。 robEllenberg 添加了对引用此问题的 robEllenberg/linuxcnc-mirror 的提交 2017 年 1 月 9 日 Add test cases for issue LinuxCNC#222 …… a406e3f robEllenberg 添加了对引用此问题的 robEllenberg/linuxcnc-mirror 的提交 2017 年 1 月 9 日 Fixes LinuxCNC#222 and refactors some common code in canon. …… c521199 合作者作者 罗伯·埃伦伯格 评论了 2017 年 1 月 9 日 我的分支中的这个分支正在进行修复。我还没有对其进行太多测试,但到目前为止它适用于一些简单的测试用例。 robEllenberg 自己分配了这个 2019 年 6 月 15 日 robEllenberg 添加了 影响2.7 影响2.8 影响主人 佳能 EMC Canon层(emctask的一部分)标签 2019 年 6 月 15 日 robEllenberg 添加了引用此问题的提交 2019 年 10 月 14 日 Add test cases for issue #222 …… 6ca8689 robEllenberg 添加了引用此问题的提交 2019 年 10 月 14 日 Fixes #222 and refactors some common code in canon. …… a783953 合作者 安迪普 评论了 2020 年 6 月 13 日 这准备好合并到 LinuxCNC 了吗? 合作者作者 罗伯·埃伦伯格 评论了 2020 年 6 月 14 日 我需要再看看这个。它在简单的条件下运行良好,但我在工具补偿方面遇到了一些奇怪的问题。如果用户对 NCD 持谨慎态度,它就不会成为阻碍。 合作者 安迪普 评论了 2020 年 7 月 31 日 修复后恢复文档注释ff1a366。 免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论 受让人 罗伯·埃伦伯格 标签 影响主人影响2.7影响2.8佳能EMC Canon层(emctask的一部分) 项目 还没有 里程碑 没有里程碑 发展 没有分支机构或拉取请求 2名参加者
以下是我重现该问题所遵循的步骤:
在轧机模拟配置中运行以下 G 代码片段:
这是我期望发生的事情:
低至 Z-0.2 的 15 圈螺旋孔
这是发生了什么:
直线下降到 Z-0.2
在此之前它工作正常:
在 2.7.x 版本上失败(肯定是 2.7.8,也可能是旧版本)。
诊断
如果朴素的凸轮公差设置为零,这种暴跌行为就会消失:
这个错误是由于 emccanon.cc 中 ARC_FEED 中的 Naive CAM Detection routine。NCD 检查弧段和直线之间的弦高是否低于 NCD 公差。如果是,则用一对线段代替圆弧。不幸的是,此检查没有正确说明多圈弧。目前,它完全忽略了圈数。它应该做的是将所有超过180度的角度都视为180度(即最大弦高)。