注释
您使用的是 Grbl-Mega-5x 吗?UGS 还没有完全实现支持多轴。 它最好有自己的控制器实现,可以检测硬件配置了多少轴,然后添加该功能。然后它将自动显示在 DRO 中: 这是一个关于如何使用 Grbl-ESP32 完成的示例: 我认为我们已经提出了一些建议,可以更改 DRO 中轴的可视化,默认情况下 ABC 应以度数显示。但我不确定如果 gcode 不是旋转的,应该如何可视化… |
是的,我的 Carbide 3D ShapeOKO 3XL 上的 Grbl Mega 5X 带有 VFD 主轴和旋转轴升级。我已经详细研究了 Mega 5XL 源并了解以下内容:
|
对可视化的评论:
|
我有一个 GrblMega5XController 的工作实例启动并成功连接。在此期间,我从 Mega5X 报告的状态字符串中提取 AxisOrder 并实例化了一个调用(通过覆盖层适当实例化)以获取此字符串,因为它在 GrblUtils.java 中需要正确排序和分配 MPos 等位置。 |
感谢您对状态报告的澄清! 我认为您可以创建自己 因此,例如,以前在 Grbl 中解析状态消息的方法是使用以下方法完成的 /**
* Parses a GRBL status string in in the v1.x format:
* 1.x: <status|WPos:1,2,3|Bf:0,0|WCO:0,0,0>
* @param lastStatus required for the 1.x version which requires WCO coords
* and override status from previous status updates.
* @param status the raw status string
* @param reportingUnits units
* @return the parsed controller status
*/
public static ControllerStatus getStatusFromStatusStringV1(ControllerStatus lastStatus, String status, Units reportingUnits)
GrblMega5XUtils 的新方法可能类似于: /**
* Parses a GrblMega5X status string: <status|WPos:1,2,3,N|Bf:0,0|WCO:0,0,0,N>
*
* @param lastStatus required for WCO coords
* and override status from previous status updates.
* @param status the raw status string
* @param reportingUnits units
* @param axisOrder a list of axises that will be reported by the controller. Normally [X, Y, Z] but could also be [X, Y, Z, Y] when the Y-axis is mirrored.
* @return the parsed controller status
*/
public static ControllerStatus getStatusFromStatusStringV1(ControllerStatus lastStatus, String status, Units reportingUnits, List<Axis> axisOrder)
|
你的解释让我更好地理解了代码和类的结构,现在我可以看到需要什么了。首先通过编写和构建。现在要测试。 |
我已经在我(有限的)Java 和 UGS 架构知识的极限范围内探索了这个想法,并且不相信 UGS 结构中的编织在我掌握的代码中以合并 GrblMega5X 方法。就是说,为了做到这一点,我已经制定了各种单独的代码片段……希望有人可以采用这些代码,或者确定架构需求以便我可以完成它,或者让他们自己来做这件事。 与此同时,我有一个肮脏的 hack 可以让我需要的东西工作,它只是不适合按原样合并,并且不能处理来自 GrblMega5X 控制器板的任意轴顺序选择。 需要 GrblUtils.java(或新的 GrblMega5XUtils)中的新版本函数:将 axisOrder 添加到调用中,并通过调用树能够正确解释轴报告数据 static private Position getPositionFromStatusString(final String status, final Pattern pattern, Units reportingUnits, String axisOrder) {
需要 GrblController.java(或新的 GrblMega5XController.java)中的新版本功能:这将提取 GrblMega5X 控制器报告的轴顺序,并使其可用于其他模块,除了更新功能 静态字符串 axisOrder = “XYZABC”; 可选的 getAxisCount(String response) { 可选的 getAxisOrder(String response) { // 从状态字符串解析轴细节 – AndyCXL
需要对 CapabilitiesConstants.java 添加: public static final String A_AXIS = “A_AXIS”; |
您的功能请求是否与问题相关?请描述。在 XYZABC 的 DRO 中显示所有启用的轴,而不仅仅是线性轴
描述您想要的解决方案
在 DRO 中单击鼠标右键仅显示 XYZ 以及是否禁用。如果 XYZABC 都能够以这种方式启用或禁用,那么实际机器中的任何“具有能力”的轴都可以显示在 DRO 中。如果轴是旋转的,那么如果可以在视觉上与线性轴进行一些区分就更好了。
描述您考虑过的备选方案
我已经破解了 axisutils 以将 A 轴声明为线性轴,从而在 DRO 中显示。这表明底层代码和数据报告已经存在并且能够工作,因此“正式”解决方案可能并不那么困难。
附加上下文