评论
关于优先级,我更愿意在自动调速之前进行角探测、圆心查找和圆柱体中心查找。是否考虑过插件系统将如何工作,或者您是否希望在主发件人代码中使用它? |
该应用程序已经是一种基于插件的应用程序,主要的发件人代码很小,但大部分功能都依赖于许多库 (dll)。我这样做是为了能够重用这些库来构建不同的发送器,例如,我已经为我的 CO2 激光器制作了一个自定义库和发送器。 在我几年前做的另一个项目中,我有代码允许“真正的”插件,dll 通过配置文件添加到应用程序。我相信这可以或多或少直接用于此应用程序。在我着手让 UI 用户可定义(主选项卡)之前,它将仅限于添加选项卡。 是否有任何发件人支持以您喜欢的方式进行探测? |
bCNC 有很多功能,但工作流程不是很好。UGS 似乎有问题。我只涉足过别人。 我会尝试安装 VS,这样我今晚就可以四处逛逛,看看我是否可以学习足够的 C# 来做任何有用的事情。 |
太好了。 项目中的 GrblViewModel.cs 项目中的 JobControl.xaml.cs 我已经尽力将代码分层,问我你是否迷路了…… |
谢谢,很好的发现 – 以前从未听说过这个发件人。另外,它在连接到 grblHAL 时不会崩溃。3D 渲染也很快,必须查看那部分代码以及自动调平。 |
哎呀,我拼错了 MVVM ……会解决这个问题。 IMO 一个好的起点是https://www.wpftutorial.net/Home.html 对于很多东西,我都在谷歌上搜索过想法——通常以关于 stackoverflow 的讨论作为指导结束。是的,有很多神奇的东西可以揭开——并不总是那么容易。我仍在学习。 发送方的一个设计目标是将代码分层并将其拆分为多个项目,这些项目汇集在顶级解决方案或项目(GCode Sender)中。最好这应该包含非常少的代码,使用 WPF 和 MVVM 的魔力将整体粘合在一起。 我建议您为您的代码创建一个新项目并将其添加到 GCode Sender 解决方案中,这将迫使您遵守 MVVM 模式。我已经创建了一个用于探测,我将添加一个或多个视图模型来处理它——有点类似于我为车床控件所做的。也许是一个合作的想法,并将其用作为您学习的领先方式? 我已经制作了一个简单的控制台控件,但没有将它添加到任何视图中。JobControl.xamls.cs 中有两行注释掉禁用视图模型处理:
我没有在当前版本中启用它,因为我认为应该实施某种过滤。 顺便说一句,JobControl.xamls.cs 中的 DataReceived() 函数应该移动到视图模型中…… 如果您有充分的理由增加窗口大小,请继续——我还没有确定主视图的设计,欢迎提出建议。但是我不想让主窗口太大——我不喜欢凌乱的窗口,而且应用程序应该可以在笔记本电脑上使用。 提示:当您将视图添加到主窗口时,它将默认继承其 DataContext – GrblViewModel。然后您可以将属性从它绑定到您的控件,它们将在视图模型更改时自动更新。 |
感谢您的提示! 我已经完成了 React 和 Elm,所以看起来我应该能够跟上 MVVM 的速度,但是我在函数式编程领域的时间让我受到了很多污染,并且由于忘记了基本的 OO 概念,我很可能会犯很多错误并且没有 WPF 经验。 我会尝试做更多的功课,并确保我可以在一个孤立的项目中工作。 |
我还是有兴趣的。我搬家了,我也有一个氩弧焊机,所以我有点分心,但我的工厂的新手推车现在都熔化在一起了,我应该能够做一些测试并编写一些代码。你想先测试/完成什么? 还有一个简单的问题:你的探测部分区域是为惯用手(B、U、R)设置的,也许它应该用坐标轴标签设置,例如 X+/X-。大声思考也许机器设置屏幕将允许用户根据他们的机器使用轴标签和终点停止位置指定他们的布局。那或者非常清楚标准/预期布局是什么。 另一个普遍的想法:我不确定您对工作流程/设置样式系统的感觉如何,但有些事情您真的想确保您设置正确,有些选项您通常设置并忘记。这可以通过几种方式完成,如果您有探针/探针板库,则可能更容易先进行设置,然后在探测之前选择正确的探针设置。 选项1高度图(最复杂): 屏幕 1:选择探头类型 选项 2:探头设置 选项 2a:使用保存的设置进行探测。 我将使用的设置是: 外角接触板 外角 |
太好了,我想自下而上地做这个——让原语工作,然后优化 UI。 这是我到目前为止所做的:
我的 GGode 解析器也需要一些注意,3D 渲染器也是如此 – 还没有完全支持诸如固定循环之类的东西。这是 gcode > tokens > gcode 翻译所必需的。 目前我正在用我的迷你 CNC 路由器和一个松散的主轴进行测试 – 还没有制作芯片。 |
有我可以测试的分支吗? 我在想,从用于探针/探针板设置的纯旧文本文件开始可能更容易。 |
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