注释
| 
 你用什么固件? 我最近一直在考虑如何将 ABC 轴添加到可视化工具,但据我所知,GRBL 尚不支持。  | 
| 
 我拥有一个 GRBL 叉子,它与 RAMPS 1.4 命令结合使用 5 轴 Em 2018 年 6 月 27 日下午 1:11,“Will Winder”<notifications@github.com> escreveu: 
 | 
| 
 谢谢,我大约一周前开始研究这个问题,并且已经取得了一些进展。ABC 轴现在正在被解析并提供给不同的 UGS 小部件。我从可视化工具开始,今天早上我开始处理 XYZ + ABC 位置到 XYZ 图。我的三角函数似乎在某处有问题,但我很高兴有一些与该部分隐约相似的东西。 如果有人想仔细检查我的数学,这就是我今天早上做的:     private static LineSegment toCartesian(LineSegment p) {
        Position start = new Position(p.getStart().x, p.getStart().y, p.getStart().z);
        Position end = new Position(p.getEnd().x, p.getEnd().y, p.getEnd().z);
        if (p.isRotation()) {
          double startA = p.getStart().a;
          double startB = p.getStart().b;
          double startC = p.getStart().c;
          double endA = p.getEnd().a;
          double endB = p.getEnd().b;
          double endC = p.getEnd().c;
          // X-Axis rotation
          // x1 = x0
          // y1 = y0cos(u) − z0sin(u)
          // z1 = y0sin(u) + z0cos(u)	
          if (startA != 0) {
            double sinA = Math.sin(Math.toRadians(startA));
            double cosA = Math.cos(Math.toRadians(startA));
            start.y = start.y * cosA - start.z * sinA;
            start.z = start.y * sinA + start.z * cosA;
          }
          if (endA != 0) {
            double sinA = Math.sin(Math.toRadians(endA));
            double cosA = Math.cos(Math.toRadians(endA));
            end.y = end.y * cosA - end.z * sinA;
            end.z = end.y * sinA + end.z * cosA;
          }
          // Y-Axis rotation
          // x2 = x1cos(v) + z1sin(v)
          // y2 = y1
          // z2 = − x1sin(v) + z1cos(v)	
          if (startB != 0) {
            double sinB = Math.sin(Math.toRadians(startB));
            double cosB = Math.cos(Math.toRadians(startB));
            start.x = start.x * cosB + start.z * sinB;
            start.z = -1 * start.x * sinB + start.z * cosB;
          }
          if (endB != 0) {
            double sinB = Math.sin(Math.toRadians(endB));
            double cosB = Math.cos(Math.toRadians(endB));
            end.x = end.x * cosB + end.z * sinB;
            end.z = -1 * end.x * sinB + end.z * cosB;
          }
          
          // Z-Axis rotation
          // x3 = x2cos(w) − y2sin(w)
          // y3 = x2sin(w) + y2cos(w)
          // z3 = z2	
          if (startC != 0) {
            double sinC = Math.sin(Math.toRadians(startC));
            double cosC = Math.cos(Math.toRadians(startC));
            start.x = start.x * cosC - start.y * sinC;
            start.y = start.x * sinC + start.y * cosC;
          }
          if (endC != 0) {
            double sinC = Math.sin(Math.toRadians(endC));
            double cosC = Math.cos(Math.toRadians(endC));
            end.x = end.x * cosC - end.y * sinC;
            end.y = end.x * sinC + end.y * cosC;
          }
        }
        LineSegment next = new LineSegment(start, end, p.getLineNumber());
        next.setIsArc(p.isArc());
        next.setIsFastTraverse(p.isFastTraverse());
        next.setIsRotation(p.isFastTraverse());
        next.setIsZMovement(p.isZMovement());
        next.setSpeed(p.getSpeed());
        next.setToolHead(p.getToolhead());
        return next;
    }
 | 
| 
 我快速浏览了你的数学,从我所看到的是正确的,我会停下来冷静地分析它并尝试提出一个解决方案  | 
| 
 @ThiagoAlencar22你有我可以测试的 5 轴 gcode 文件吗?我认为我拥有的代码应该可以工作,但我没有很好的检查方法。  | 
| 
 这真让人兴奋。我也许可以创建一个 5 轴 gcode 文件,但这需要几天时间。  | 
| 
 嗨,早安。这非常令人兴奋。我开始创建一个 gcode 文件,但这也需要几天时间,因为我使用的是 EdgeCam,但我之前从未接触过该软件。  | 
| 
 一个问题。如果我用我发送的 GRBL 在正常程序中加载一个 5 轴的 Gcode。它会运行吗?  | 
| 
 @ThiagoAlencar22是的,它应该可以正常播放。对于 UGS >3 轴支持意味着更新小部件,如 DRO、Visualizer、Jog Controler 等,以显示旋转轴。  | 
| 
 @winder我刚从朋友那里得到一个 Gcode 文件。我会在这里发布并放他的链接  | 
| 
 我只想感谢你们解决这个问题。一开始,一切都是关于 XYZ,而不是轴;’ 已经真正发展到个体电机控制。为了更上一层楼,我们需要能够独立移动每个电机,而不考虑轴。人手大约有 17 个“轴”。为了能够制造出真正令人敬畏的机器人,我们需要无限的轴,并转向“你正在运行多少个步进器?” 模式。我目前有一个 5 电机机械臂,它就放在这里,希望编程能够达到我可以使用 G 代码移动所有机械臂的程度。再次感谢!  | 
| 
 只是一个评论。可能大多数爱好者可以通过添加旋转台来获得 4 轴,旋转台通常垂直于 Y 台安装。MaxNC 4 轴机床就是一个例子。除了上面提到的 GRBL 实现之外,还有 GRBLQ (quatro),用于 Mega 2560 板,更多引脚。我用过这个并且有效。 我使用 Bobcad(作为爱好者有时可以获得很好的交易)和我扩展到 4 轴的 GRBL g 代码解释器。当然,拥有超过 4 轴将是您程序中受欢迎的补充。感谢分享这么好的程序。TrainDriveShaft_GRBL.txt  | 
| 
 FourAxisSurface_finishPass.txt  | 
| 
 出色的。现在快速查看 FourAxisSurface_finishPass.txt 文件,一切看起来都不错。没有错误或其他奇怪的东西不小心留在那里。?  | 
| 
 谢谢你的文件。只是让他们尝试使用 ABC 分支,而我目前的代码无法解析它们。因此,当我回到这里时,它们将对改进解析器非常有帮助。  | 




嗨,我一直在考虑为 UGS 添加能够使用 3 个以上轴的替代方案。添加辅助轴。我的机器有 5 个轴,但我没有运行它的软件。我想知道这是否可能。感谢收听。