Contact me: hankecnc@gmail.com

ProbePage.py:修复一些问题(希望如此) #1390

推推 grbl 3年前 (2023-02-02) 348次浏览
打开
GitHubCaps 打开了这个问题 2020 年 4 月 23 日 · 23条评论
打开

ProbePage.py:修复一些问题(希望如此)#1390

GitHubCaps 打开了这个问题 2020 年 4 月 23 日 · 23条评论

评论

ProbePage.py:修复一些问题(希望如此) #1390
贡献者

ProbePage.py 中的第 1802 行有一个总是返回 0 的拼写错误:
Utils.setFloat("Probe", "toolmz", CNC.vars.get("toolmz",0.))
应该是:
Utils.setFloat("Probe", "toolmz", CNC.vars.get("toolmz"))
这导致它表现得更像 asetter而不是getter.
这将导致很多问题,并且很可能导致许多问题,例如: #1371#1364#1347#1281#1140#1035等等……
这可能无法解决所有这些问题,但仍应予以纠正。
@Harvie 我最近在我的电脑上(和我的互联网连接)遇到了很多关于 github 的问题,并且没有做任何提交。请,如果您或其他人不介意合并更改,谢谢!

ProbePage.py:修复一些问题(希望如此) #1390
合作者

在我看来 0. 只是默认值,当 CNC.vars 中没有存储实际值时返回默认值,但我还不能找到 getter 的代码……你知道它在哪里吗?也许有导致它总是返回默认值的错误??

ProbePage.py:修复一些问题(希望如此) #1390
贡献者作者

更好在这里并不重要。发生的情况是,无论您将值设置为什么,都不会被考虑在内,相反,它总是会返回错误的值,而这正是您不想要的。

ProbePage.py:修复一些问题(希望如此) #1390
贡献者作者

那应该是吸气剂,而不是更好

ProbePage.py:修复一些问题(希望如此) #1390
贡献者作者

如果要返回默认值,最好使用:
Utils.setFloat("Probe", "toolmz", CNC.vars.get("toolmz",""))

ProbePage.py:修复一些问题(希望如此) #1390
合作者

是的。我需要查看 CNC.vars.get() 方法的定义位置,以便更好地理解这一点……但我现在找不到它。

ProbePage.py:修复一些问题(希望如此) #1390
贡献者作者

getter 实际上来自 Utils.py:
def setStr(section, name, value):

setFloat = setStr

ProbePage.py:修复一些问题(希望如此) #1390
贡献者作者

它是一个在用户创建它之前不存在的值,然后你从……

ProbePage.py:修复一些问题(希望如此) #1390
贡献者作者

与 CNC.vars 本身无关

ProbePage.py:修复一些问题(希望如此) #1390
合作者

但我正在寻找 get() 而不是 setStr() … 是由 python 自动创建的吗?

ProbePage.py:修复一些问题(希望如此) #1390
贡献者作者

稍后它被设置,该部分在修复 ProbePage 中的拼写错误后正常工作

ProbePage.py:修复一些问题(希望如此) #1390
贡献者作者

ProbePage 中的拼写错误导致它无论如何都会失败

ProbePage.py:修复一些问题(希望如此) #1390
合作者

是的。但是错别字是
CNC.vars.get("toolmz",0.)vs。CNC.vars.get("toolmz")

我想知道 .get() 方法的定义位置。

ProbePage.py:修复一些问题(希望如此) #1390
贡献者作者

抱歉,应该更好地解释一下……我只是指它的行为方式,而不是它使用gettersetter方法

ProbePage.py:修复一些问题(希望如此) #1390
合作者
哈维 评论了 2020 年 4 月 23 日  

我相信你有一个问题可以解决。但。我首先需要查看getter的代码,了解导致错误的原因,这样以后就不会再发生了。

ProbePage.py:修复一些问题(希望如此) #1390
贡献者作者

无论如何,它应该在创建、更新等之后返回正确的值。请记住,它一开始并不存在,但是在创建时,它需要返回正确的值,而不是 0。

ProbePage.py:修复一些问题(希望如此) #1390
合作者

是的。这就是为什么我认为,我们应该直接修复 getter 方法的代码,而不仅仅是它的调用。

ProbePage.py:修复一些问题(希望如此) #1390
贡献者作者

不是吸气剂方法。它是 CNC.toolPolicy==3 直接用于 TLO 的变量,仅依赖于 Utils 和 ProbePage,不存在其他实例。

ProbePage.py:修复一些问题(希望如此) #1390
贡献者作者

奇怪的是,它甚至不作为 CNC.vars 中的变量存在,也许应该将其添加到那里。CNC.vars 中还有两个对 TLO 的引用(作为变量),而本应只有一个。

ProbePage.py:修复一些问题(希望如此) #1390
贡献者作者
GitHubCaps 评论了 2020 年 4 月 23 日  

在CNC.py中第710行和752行都有TLO,第719行是小写的,使用方式不同,这很好。可以添加一个变量作为 的默认值toolmz,但其他一些tool*变量也没有。就像我说的,这些是由用户创建的,仅由 Utils/CNC/ProbePage 设置/获取。

ProbePage.py:修复一些问题(希望如此) #1390
贡献者作者
GitHubCaps 评论了 2020 年 4 月 23 日  

如果我不得不猜测你问的 get 方法,我会说这是用于抓取的标准 python get 方法,而不是 bCNC 使用的方法。Utils 在获取默认值(不存在)并相应地设置它(在用户输入它之后,现在它存在)或至少它应该设置之后设置值,但是拼写错误阻止它检索正确的值。

ProbePage.py:修复一些问题(希望如此) #1390
贡献者作者

我知道我可能以不止一种方式让你感到困惑,但它的要点是它基本上不是一个选项或变量开始,但一旦用户创建它,它永远不会返回正确的值,因为那个简单的错字。我什至不在我的机器上自己使用工具偏移量,但是当我一直在整理代码并尝试解决其他一些问题时,我发现在工具更改中它实际上会通过返回 0 而不是返回值来搞砸一切用户设置。

ProbePage.py:修复一些问题(希望如此) #1390
贡献者作者
GitHubCaps 评论了 2020 年 4 月 23 日  

天啊,

在我看来 0. 只是默认值,当 CNC.vars 中没有存储实际值时返回默认值,但我还不能找到 getter 的代码……你知道它在哪里吗?也许有导致它总是返回默认值的错误??

我明白你要去哪里了!除了 ProbePage.py 中没有其他 .get() 方法,奇怪。可能是事情在很久以前就发生了变化,但从未被发现。
甚至使用了 CNC.vars.get() updateTloupdateProbe但之前如何或为什么没有发现它?

据,直到…为止:

也许有导致它总是返回默认值的错误??

好吧,在我的简单测试中,至少修复了拼写错误,帮助恢复了正确的值,此刻就像一只愚蠢的猴子一样挠我的头……

从头开始,它__getitem__在 CNC中使用return CNC.vars[name],其余的似乎由处理config.get(),如果它不存在,Utils.setStrconfig.set(section, name, str(value))用于设置它。希望有帮助!

ProbePage.py:修复一些问题(希望如此) #1390

您好,
很抱歉翻出这个已经很老的话题,但我正在使用 The Tool Change (TLO)。

“ProbePage.py 中的第 1802 行:
Utils.setFloat (“Probe”, “toolmz”, CNC.vars.get (“toolmz”, 0.)) “

此代码完美运行,在更改工具时使用。”toolmz” 在从 .bCNC 文件启动 bCNC 时被初始化并存储在变量 CNC.var [“toolmz”] 中;如果 .bCNC 文件中的变量为空,则强制为 0。
“toolmz”可以在 bCNC 的每次启动时找到一个绝对 Z 坐标,该坐标作为点 0 来测量将要使用的工具的长度 (TLO)。

正如我多次读到的那样,由于超出了软件限制,不推荐使用 TLO 方法,但是,如果理解并正确应用 G43.1 功能,就不会有超出限制的风险。这也是专业机器上唯一使用的方法。

J.P

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

还没有

发展

没有分支机构或拉取请求

3人参加
ProbePage.py:修复一些问题(希望如此) #1390ProbePage.py:修复一些问题(希望如此) #1390ProbePage.py:修复一些问题(希望如此) #1390

喜欢 (0)