评论
|
在我看来 0. 只是默认值,当 CNC.vars 中没有存储实际值时返回默认值,但我还不能找到 getter 的代码……你知道它在哪里吗?也许有导致它总是返回默认值的错误?? |
|
更好在这里并不重要。发生的情况是,无论您将值设置为什么,都不会被考虑在内,相反,它总是会返回错误的值,而这正是您不想要的。 |
|
那应该是吸气剂,而不是更好 |
|
如果要返回默认值,最好使用: |
|
是的。我需要查看 CNC.vars.get() 方法的定义位置,以便更好地理解这一点……但我现在找不到它。 |
|
getter 实际上来自 Utils.py:
|
|
它是一个在用户创建它之前不存在的值,然后你从…… |
|
与 CNC.vars 本身无关 |
|
但我正在寻找 get() 而不是 setStr() … 是由 python 自动创建的吗? |
|
稍后它被设置,该部分在修复 ProbePage 中的拼写错误后正常工作 |
|
ProbePage 中的拼写错误导致它无论如何都会失败 |
|
是的。但是错别字是 我想知道 .get() 方法的定义位置。 |
|
抱歉,应该更好地解释一下……我只是指它的行为方式,而不是它使用getter或setter方法 |
|
我相信你有一个问题可以解决。但。我首先需要查看getter的代码,了解导致错误的原因,这样以后就不会再发生了。 |
|
无论如何,它应该在创建、更新等之后返回正确的值。请记住,它一开始并不存在,但是在创建时,它需要返回正确的值,而不是 0。 |
|
是的。这就是为什么我认为,我们应该直接修复 getter 方法的代码,而不仅仅是它的调用。 |
|
不是吸气剂方法。它是 CNC.toolPolicy==3 直接用于 TLO 的变量,仅依赖于 Utils 和 ProbePage,不存在其他实例。 |
|
奇怪的是,它甚至不作为 CNC.vars 中的变量存在,也许应该将其添加到那里。CNC.vars 中还有两个对 TLO 的引用(作为变量),而本应只有一个。 |
|
在CNC.py中第710行和752行都有TLO,第719行是小写的,使用方式不同,这很好。可以添加一个变量作为 的默认值 |
|
如果我不得不猜测你问的 get 方法,我会说这是用于抓取的标准 python get 方法,而不是 bCNC 使用的方法。Utils 在获取默认值(不存在)并相应地设置它(在用户输入它之后,现在它存在)或至少它应该设置之后设置值,但是拼写错误阻止它检索正确的值。 |
|
我知道我可能以不止一种方式让你感到困惑,但它的要点是它基本上不是一个选项或变量开始,但一旦用户创建它,它永远不会返回正确的值,因为那个简单的错字。我什至不在我的机器上自己使用工具偏移量,但是当我一直在整理代码并尝试解决其他一些问题时,我发现在工具更改中它实际上会通过返回 0 而不是返回值来搞砸一切用户设置。 |
|
天啊,
我明白你要去哪里了!除了 ProbePage.py 中没有其他 .get() 方法,奇怪。可能是事情在很久以前就发生了变化,但从未被发现。 据,直到…为止:
好吧,在我的简单测试中,至少修复了拼写错误,帮助恢复了正确的值,此刻就像一只愚蠢的猴子一样挠我的头…… 从头开始,它 |
|
您好, “ProbePage.py 中的第 1802 行: 此代码完美运行,在更改工具时使用。”toolmz” 在从 .bCNC 文件启动 bCNC 时被初始化并存储在变量 CNC.var [“toolmz”] 中;如果 .bCNC 文件中的变量为空,则强制为 0。 正如我多次读到的那样,由于超出了软件限制,不推荐使用 TLO 方法,但是,如果理解并正确应用 G43.1 功能,就不会有超出限制的风险。这也是专业机器上唯一使用的方法。 J.P |


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