开源改变世界!!

大家好,我想通过一个例子来创建一个 M12345 命令,当被调用时,转到一个特定的位置。 #792

推推 grbl 2年前 (2023-01-23) 162次浏览

打开
soinel 打开了这个问题 2020 年 1 月 11 日 · 12条评论

注释

大家好,我想通过一个例子来创建一个 M12345 命令,当被调用时,转到一个特定的位置。 #792

大家好,我想通过一个例子来创建一个 M12345 命令,当被调用时,转到一个特定的位置。

我看到它可以在 gcode.c 中创建,格式如下所示:

案例 12345:这是我不知道从哪里得到它的地方;休息;

像我这样做?为了什么 …..

   case 12345: G0 Z50 F1000; G0 X150 Y10 F1000; M0; break;

这是正确的吗???不对……有人可以向我解释正确的方法吗?

谢谢

大家好,我想通过一个例子来创建一个 M12345 命令,当被调用时,转到一个特定的位置。 #792

你可以,但我会通过控制 grbl 的程序中的宏或命令来完成。
就个人而言,我使用 bCNC,分配一个按钮来执行您订购的动作很简单

大家好,我想通过一个例子来创建一个 M12345 命令,当被调用时,转到一个特定的位置。 #792

正如 MARIOBASZ 所提到的,可能最好在 g 代码本身中执行此操作(例如 G90 G21 G56 X-39 Y-10 Z-4)……但是如果你想将它构建到 M 命令中,你会添加你的gc_execute_line(line) 中案例“M”的案例编号。

大家好,我想通过一个例子来创建一个 M12345 命令,当被调用时,转到一个特定的位置。 #792
马里奥巴斯 评论了 2020 年 1 月 25 日  

您也可以向 grbl 添加 M 1234 命令以执行特定操作,您必须修改一些 grbl 文件/一些 grbl 文件(我必须看看我是怎么做到的,我很快就会需要这个用于我的 cnc 的 ATC 设计项目)

大家好,我想通过一个例子来创建一个 M12345 命令,当被调用时,转到一个特定的位置。 #792
作者

doppelhub 谢谢,
你能举个例子吗?

大家好,我想通过一个例子来创建一个 M12345 命令,当被调用时,转到一个特定的位置。 #792
作者

案例 12345:gc_execute_line(G0 Z50 F1000;G0 X150 Y10 F1000;M0;);休息;

会是这样吗?

大家好,我想通过一个例子来创建一个 M12345 命令,当被调用时,转到一个特定的位置。 #792
双中心 评论了 2020 年 1 月 25 日  

理论上,是的。该行需要正确格式化(无空格、无注释、全部大写):
G0Z50F1000G0X150Y10F1000等。

请注意,您需要将这些行存储在内存之外的某个地方(例如使用’PSTR(“G0X150”);’,这会强制编译器将字符串转储到程序空间。更好的是,我将这个字符串存储在EEPROM中,这将允许您在不重新编译的情况下更改位置。grbl 的 EEPROM 映射有足够的空间。我建议您的代码结构类似于 $N(启动行)。查看 EEPROM 内存空间(settings.h)以找出位置你想存储它。我在我的 grbl 变体中添加了几个值(https://github.com/Defdist/grbl1v1g_GG3_GrBLDC3v0)…将我的 settings.h 与 grbl master 进行比较,你应该对打开的内容有一个很好的理解.

为了更好地理解 grbl 的 EEPROM 空间,我还在 openoffice calc 中创建了一个图形化的 EEPROM 映射:( https://github.com/Defdist/grbl1v1g_GG3_GrBLDC3v0/blob/master/doc/architecture/grbl%20EEPROM%20space.ods )。注意:这是我的 EEPROM 映射,与 master 不同…请参阅 settings.h 了解 grbl 的映射。

大家好,我想通过一个例子来创建一个 M12345 命令,当被调用时,转到一个特定的位置。 #792
作者

完美,非常感谢。

我会看看它是否适合我。

大家好,我想通过一个例子来创建一个 M12345 命令,当被调用时,转到一个特定的位置。 #792
作者

案例 1234:gc_execute_line(G0Z50F1000、G0X150Y10F1000、M0、G0X0Y0F100、G0Z5F100、G10P0L20Z10、G38.2Z0F100、G10P0L20Z0、G0Z40F1000);休息;

没有找到

退出状态 1
‘G0Z50F1000’ 未声明(首次在此函数中使用)

大家好,我想通过一个例子来创建一个 M12345 命令,当被调用时,转到一个特定的位置。 #792
作者

如果我运行单行如果它有效

gc_execute_line(“G0Z40F1000”); 休息;

大家好,我想通过一个例子来创建一个 M12345 命令,当被调用时,转到一个特定的位置。 #792
作者

我试着单独做,但它什么也没做,我没有让它执行所有的行。你能指导我吗?

案例 1234:gc_execute_line(G0Z50F1000);
gc_execute_line(G0X150Y10F1000);
gc_execute_line(M0);
gc_execute_line(G0X0Y0F100);
gc_execute_line(G0Z5F100);
休息;

大家好,我想通过一个例子来创建一个 M12345 命令,当被调用时,转到一个特定的位置。 #792
作者

大家好,你们好吗。
我尝试执行以下操作,但它也不起作用。
有什么想法或建议吗?

  case 1234: ;
	int contador = 0; // Inicialización del contador

	while (contador<10) {          // Condición
			  if (contador == 1) { 
				gc_execute_line("G0Z50F1000");
				}
			  if (contador == 2) { 
				gc_execute_line("G0X150Y10F1000");
				}
			  if (contador == 3) { 
				gc_execute_line("M0");
				}
			  if (contador == 4) { 
				gc_execute_line("G0X0Y0F100");
				}
			  if (contador == 5) { 
				gc_execute_line("G0Z5F100");
				}
			  if (contador == 6) { 
				gc_execute_line("G10P0L20Z10");
				}
			  if (contador == 7) { 
				gc_execute_line("G38.2Z0F100");
				}
			  if (contador == 8) { 
				gc_execute_line("G10P0L20Z0");
				}
			  if (contador == 9) { 
				gc_execute_line("G0Z40F1000");
				}
			  if (contador == 10) { 
				contador = 0;
				break;
				}
		contador++;                  // Contador se incrementa
		}


break;
大家好,我想通过一个例子来创建一个 M12345 命令,当被调用时,转到一个特定的位置。 #792
作者

大家好,我想我已经找到了问题,问题产生了一些指令,当评论有问题的指令时,代码继续,在 M0 的情况下,这是一个暂停,我写的是内部 M0 并且它有效但以下指令为准并跳过休息时间。

  case 1234: 
             gc_execute_line("G0Z50F1000"); 
	 gc_execute_line("G0X150Y10F1000");
	 //gc_execute_line("M0");
	 gc_block.modal.program_flow = PROGRAM_FLOW_PAUSED;
	 gc_execute_line("G0X0Y0F1000");
	 gc_execute_line("G0Z5F1000");
	 //gc_execute_line("G10P0L20Z10");
	 //gc_execute_line("G38.2Z0F100");
	 //gc_execute_line("G10P0L20Z0");
	 gc_execute_line("G0Z40F1000");
	 break;
喜欢 (0)