开源改变世界!!

探测和自动调平 #4

推推 grbl 2年前 (2023-02-07) 218次浏览
打开
jschoch 打开了这个问题 2020 年 1 月 24 日 · 14条评论
打开

探测和自动调平#4

jschoch 打开了这个问题 2020 年 1 月 24 日 · 14条评论

评论

探测和自动调平 #4

https://github.com/vlachoudis/bCNC/blob/c144f28960aa03bad59132ae06ea9fe3f518dd4d/bCNC/CNC.py#L394

看起来“编译”检查自动调平配置,“splitLines”执行自动调平。它要求您先运行 setZero,这是一个有点不稳定的过程。

https://github.com/vlachoudis/bCNC/blob/c144f28960aa03bad59132ae06ea9fe3f518dd4d/bCNC/CNC.py#L4550

东方(splitLines 之后的下一个功能)也很有趣,您可以用相机选择一组点,它会补偿位置,对于双面 pcb,您选择钻孔,它会为您进行 x、y 和倾斜校正。

快速浏览一下 klipper 就会发现它实际上有一些测试!!!

猜测大多数好东西都在这里:看起来转换、查找、探测例程、配置处理都在这里

https://github.com/KevinOConnor/klipper/blob/master/klippy/extras/bed_mesh.py#L59

我相信您可以在每次打印前扫描或只使用存储的网格(我用我的打印机做的)。它确实按照配置中定义的具有可配置探头偏移的方式扫描整个床。

这两种模式是“拉格朗日”和“双三次”记录在这里:

https://github.com/KevinOConnor/klipper/blob/46d0c6bdfc346ee6d3e6db704578679cb9fe55c5/docs/Bed_Mesh.md

探测和自动调平 #4
作者

关于优先级,我更愿意在自动调速之前进行角探测、圆心查找和圆柱体中心查找。是否考虑过插件系统将如何工作,或者您是否希望在主发件人代码中使用它?

探测和自动调平 #4
所有者

该应用程序已经是一种基于插件的应用程序,主要的发件人代码很小,但大部分功能都依赖于许多库 (dll)。我这样做是为了能够重用这些库来构建不同的发送器,例如,我已经为我的 CO2 激光器制作了一个自定义库和发送器。

在我几年前做的另一个项目中,我有代码允许“真正的”插件,dll 通过配置文件添加到应用程序。我相信这可以或多或少直接用于此应用程序。在我着手让 UI 用户可定义(主选项卡)之前,它将仅限于添加选项卡。

是否有任何发件人支持以您喜欢的方式进行探测?

探测和自动调平 #4
作者

bCNC 有很多功能,但工作流程不是很好。UGS 似乎有问题。我只涉足过别人。

我会尝试安装 VS,这样我今晚就可以四处逛逛,看看我是否可以学习足够的 C# 来做任何有用的事情。

探测和自动调平 #4
所有者

太好了。

项目中的 GrblViewModel.csCNC Core是控件的大部分数据来源。通常,控件会订阅数据更改事件,以使其自身保持最新状态。其中许多都非常简单……

项目中的 JobControl.xaml.csCNC Controls是流式传输发生的地方。

我已经尽力将代码分层,问我你是否迷路了……

探测和自动调平 #4
所有者

谢谢,很好的发现 – 以前从未听说过这个发件人。另外,它在连接到 grblHAL 时不会崩溃。3D 渲染也很快,必须查看那部分代码以及自动调平。

探测和自动调平 #4
作者

我有第一个 C# 和第一个 wpf!!!!!

探测和自动调平 #4

我有一段时间没有做物体了,隐藏的魔法太多了!

关于您在哪里获取 WFP c# 的任何提示,想知道您是从哪里开始的。你放了 VMMV 但你不是说 MVVM 吗!?

我在想“控制台”窗口将是开始我在 c# 中磕磕绊绊的好地方。您是否反对将主窗口视图设为 800 像素高?

探测和自动调平 #4
所有者

哎呀,我拼错了 MVVM ……会解决这个问题。

IMO 一个好的起点是https://www.wpftutorial.net/Home.html

对于很多东西,我都在谷歌上搜索过想法——通常以关于 stackoverflow 的讨论作为指导结束。是的,有很多神奇的东西可以揭开——并不总是那么容易。我仍在学习。

发送方的一个设计目标是将代码分层并将其拆分为多个项目,这些项目汇集在顶级解决方案或项目(GCode Sender)中。最好这应该包含非常少的代码,使用 WPF 和 MVVM 的魔力将整体粘合在一起。

我建议您为您的代码创建一个新项目并将其添加到 GCode Sender 解决方案中,这将迫使您遵守 MVVM 模式。我已经创建了一个用于探测,我将添加一个或多个视图模型来处理它——有点类似于我为车床控件所做的。也许是一个合作的想法,并将其用作为您学习的领先方式?

我已经制作了一个简单的控制台控件,但没有将它添加到任何视图中。JobControl.xamls.cs 中有两行注释掉禁用视图模型处理:

            //if (model.ResponseLogEnable)
            //    model.ResponseLog.Add(data);

我没有在当前版本中启用它,因为我认为应该实施某种过滤。

顺便说一句,JobControl.xamls.cs 中的 DataReceived() 函数应该移动到视图模型中……

如果您有充分的理由增加窗口大小,请继续——我还没有确定主视图的设计,欢迎提出建议。但是我不想让主窗口太大——我不喜欢凌乱的窗口,而且应用程序应该可以在笔记本电脑上使用。

提示:当您将视图添加到主窗口时,它将默认继承其 DataContext – GrblViewModel。然后您可以将属性从它绑定到您的控件,它们将在视图模型更改时自动更新。

探测和自动调平 #4
作者
jschoch 评论了 2020 年 2 月 1 日  

感谢您的提示!

我已经完成了 React 和 Elm,所以看起来我应该能够跟上 MVVM 的速度,但是我在函数式编程领域的时间让我受到了很多污染,并且由于忘记了基本的 OO 概念,我很可能会犯很多错误并且没有 WPF 经验。

我会尝试做更多的功课,并确保我可以在一个孤立的项目中工作。

探测和自动调平 #4
所有者

越来越接近有用的东西,希望输入工作流程和刀具长度探测选项。需要进行大量测试,部分探测代码有点混乱……

探测和自动调平 #4

探测和自动调平 #4

有人想帮助完成探测吗?

探测和自动调平 #4
作者

我还是有兴趣的。我搬家了,我也有一个氩弧焊机,所以我有点分心,但我的工厂的新手推车现在都熔化在一起了,我应该能够做一些测试并编写一些代码。你想先测试/完成什么?

还有一个简单的问题:你的探测部分区域是为惯用手(B、U、R)设置的,也许它应该用坐标轴标签设置,例如 X+/X-。大声思考也许机器设置屏幕将允许用户根据他们的机器使用轴标签和终点停止位置指定他们的布局。那或者非常清楚标准/预期布局是什么。

另一个普遍的想法:我不确定您对工作流程/设置样式系统的感觉如何,但有些事情您真的想确保您设置正确,有些选项您通常设置并忘记。这可以通过几种方式完成,如果您有探针/探针板库,则可能更容易先进行设置,然后在探测之前选择正确的探针设置。

选项1高度图(最复杂):

屏幕 1:选择探头类型
屏幕 2:选择直径
屏幕 3:设置扫描区域(如果没有加载文件,可能会自动从 gcode 抓取并提示)
屏幕 4:显示所有选项并启用探头启动。

选项 2:探头设置
屏幕 1:选择探头类型(连续性、连续性 + 板、非导电接触、虎钳、一般工件夹具)
屏幕 2:(如果是板)输入板尺寸、直径、探头长度、探头偏移
屏幕 3:配置探测速度和偏移显示选项以保存

选项 2a:使用保存的设置进行探测。
屏幕 1:选择探头设置并配置方向显示探头启动。或提示新的探头设置屏幕。

我将使用的设置是:

外角接触板 外角
/内角接触板 带圆形切口
杯板(基本上是圆形探头)
连续性探头工作
连续性到虎钳
偏移 固定 X,Y 探头
非连续性探头(3d taster 型)
非连续性探头(二元触点类型)

探测和自动调平 #4
所有者

太好了,我想自下而上地做这个——让原语工作,然后优化 UI。

这是我到目前为止所做的:

  • 工具长度:最不完整,我需要最了解如何执行此操作。例如 grblHAL 支持 9 个坐标系,所以我想选择使用 g59.3 作为触摸板位置(与 LinuxCNC 相同)。此外,还可以配置对存储在 EEPROM 中的刀具表的支持。这也应该可以从探测中填充。LinuxCNC文档可能会提供一些很好的输入。

  • 边缘查找器和中心查找器:我相信它们在基元级别上工作得相当好,在我发布测试之前,中心查找器还需要做一些 UI 工作。

  • 高度图:探测似乎有效,可以从加载的 gcode 中获取要探测的区域。线性移动的 Z 插值的一些初始测试已成功完成。加载和保存高度图 ok。现在正在处理圆弧的插值。目前我正在使用OpenCNCPilot的一些代码,所以它有点混乱 – 当我更好地掌握如何执行此操作时,我想用我自己的代码替换它。原因之一是我的发送器最多支持 6 个轴。

  • 已保存设置,尚未开始。

我的 GGode 解析器也需要一些注意,3D 渲染器也是如此 – 还没有完全支持诸如固定循环之类的东西。这是 gcode > tokens > gcode 翻译所必需的。

目前我正在用我的迷你 CNC 路由器和一个松散的主轴进行测试 – 还没有制作芯片。

探测和自动调平 #4
作者

有我可以测试的分支吗?

我在想,从用于探针/探针板设置的纯旧文本文件开始可能更容易。

探测和自动调平 #4
所有者

还没有分支,给我一两天,我会上传一个新的 alpha 版本。我刚刚得到了 XY 平面弧与高度图一起工作,所以准备好接下来研究工具长度探测 – 我希望首先更像样一点。

我更喜欢 XML 的配置文件,易于从类序列化/到类序列化。

顺便说一句:你有一些探针/板吗?我没有,所以我正在考虑使用压电元件进行探测。

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

没有分支机构或拉取请求

2名参加者
探测和自动调平 #4探测和自动调平 #4

喜欢 (0)