跳转到主要内容

宏和钩子

Rayforge 提供两个强大的自动化功能来自定义您的工作流程:钩子。两者都允许您将自定义 G 代码注入作业中,但它们服务于不同的目的。

钩子和宏设置


概述

功能目的触发用例
可重用的 G 代码片段手动执行快速命令、测试模式、自定义例程
钩子自动 G 代码注入作业生命周期事件启动序列、图层更改、清理

宏是命名的、可重用的 G 代码脚本,您可以随时手动执行。

宏的用途

常见的宏用例:

  • 归零机器 - 快速发送 $H
  • 设置工作偏移 - 存储和调用 G54/G55 位置
  • 空气辅助控制 - 开/关空气辅助
  • 焦点测试 - 运行快速焦点测试模式
  • 自定义工具更换 - 用于多激光设置
  • 紧急例程 - 快速关闭或清除警报
  • 材料探测 - 自动对焦或高度测量

创建宏

  1. 打开机器设置:

    • 导航到 设置 → 机器 → 宏
  2. 添加新宏:

    • 点击 "+" 按钮
    • 输入描述性名称(例如,"归零机器"、"启用空气辅助")
  3. 编写 G 代码:

    • 每行是一个单独的 G 代码命令
    • 注释以 ;( 开头
    • 可以使用变量(参见下面的变量替换)
  4. 保存宏

  5. 执行宏:

    • 从宏列表中,点击宏
    • 或分配键盘快捷键(如果支持)

宏示例

简单:归零机器

名称: 归零机器 代码:

$H
; 等待归零完成

用途: 在开始工作之前快速归零机器。


中等:设置工作偏移

名称: 将 G54 设置为当前位置 代码:

G10 L20 P1 X0 Y0
; 将 G54 工作坐标系原点设置为当前位置

用途: 将当前激光位置标记为作业原点。


高级:焦点测试网格

名称: 9 点焦点测试 代码:

; 用于找到最佳焦点的 9 点网格
G21 ; 毫米
G90 ; 绝对定位
G0 X10 Y10
M3 S1000
G4 P0.1
M5
G0 X20 Y10
M3 S1000
G4 P0.1
M5
; ...(对其余点重复)

用途: 在床的不同位置快速测试焦点。



宏示例

钩子是由作业执行期间特定事件触发的自动 G 代码注入

钩子触发器

Rayforge 支持这些钩子触发器:

触发器何时运行常见用途
作业开始作业的最开始归零、工作偏移、空气辅助开、预热
作业结束作业的最末尾返回原点、空气辅助关、蜂鸣、冷却
图层开始处理每个图层之前工具更换、功率调整、注释
图层结束处理每个图层之后进度通知、暂停
工件开始处理每个工件之前零件编号、对齐标记
工件结束处理每个工件之后冷却、检查暂停

创建钩子

  1. 打开机器设置:

    • 导航到 设置 → 机器 → 钩子
  2. 选择触发器:

    • 选择此钩子应运行的事件
  3. 编写 G 代码:

    • 钩子代码在触发点注入
    • 使用变量获取动态值(见下文)
  4. 启用/禁用:

    • 切换钩子开/关而不删除它们

钩子示例

作业开始:初始化机器

触发器: 作业开始 代码:

G21         ; 毫米
G90 ; 绝对定位
$H ; 归零机器
G0 X0 Y0 ; 移动到原点
M3 S0 ; 激光开但功率为 0(某些控制器需要这个)
M8 ; 空气辅助开

目的: 确保机器在每个作业之前处于已知状态。


作业结束:返回原点并蜂鸣

触发器: 作业结束 代码:

M5          ; 激光关
M9 ; 空气辅助关
G0 X0 Y0 ; 返回原点
M300 S800 P200 ; 蜂鸣(如果支持)

目的: 安全结束作业并发出完成信号。


图层开始:添加注释

触发器: 图层开始 代码:

; 开始图层:{layer_name}
; 图层索引:{layer_index}

目的: 使 G 代码更易于调试。


工件开始:零件编号

触发器: 工件开始 代码:

; 零件:{workpiece_name}
; 第 {workpiece_index} 个,共 {total_workpieces} 个

目的: 在多零件作业中跟踪进度。


钩子执行顺序

对于具有 2 个图层,每个图层有 2 个工件的作业:

[作业开始钩子]
[图层开始钩子](图层 1)
[工件开始钩子](工件 1)
... 工件 1 G 代码 ...
[工件结束钩子](工件 1)
[工件开始钩子](工件 2)
... 工件 2 G 代码 ...
[工件结束钩子](工件 2)
[图层结束钩子](图层 1)
[图层开始钩子](图层 2)
[工件开始钩子](工件 3)
... 工件 3 G 代码 ...
[工件结束钩子](工件 3)
[工件开始钩子](工件 4)
... 工件 4 G 代码 ...
[工件结束钩子](工件 4)
[图层结束钩子](图层 2)
[作业结束钩子]

变量替换

宏和钩子都支持变量替换以注入动态值。

可用变量

变量使用 {variable_name} 语法,在 G 代码生成期间替换。

作业级变量:

变量描述示例值
{job_name}当前作业/文档的名称"test-job"
{date}当前日期"2025-10-03"
{time}当前时间"14:30:25"

图层级变量:

变量描述示例值
{layer_name}当前图层的名称"切割图层"
{layer_index}当前图层的从零开始的索引0, 1, 2...
{total_layers}作业中的总图层数3

工件级变量:

变量描述示例值
{workpiece_name}工件的名称"圆形 1"
{workpiece_index}当前工件的从零开始的索引0, 1, 2...
{total_workpieces}总工件数5

机器变量:

变量描述示例值
{machine_name}机器配置文件的名称"我的 K40"
{max_speed}最大切割速度(mm/min)1000
{work_width}工作区域宽度(mm)300
{work_height}工作区域高度(mm)200

示例:进度通知

钩子: 图层开始 代码:

; ========================================
; 第 {layer_index} 层,共 {total_layers} 层:{layer_name}
; 作业:{job_name}
; 时间:{time}
; ========================================

G 代码中的结果:

; ========================================
; 第 0 层,共 3 层:切割图层
; 作业:test-project
; 时间:14:30:25
; ========================================

高级用例

多工具设置

对于具有多个激光器或工具的机器:

钩子: 工件开始 代码:

; 为工件 {workpiece_name} 选择工具
T{tool_number} ; 工具更换命令(如果支持)
G4 P1 ; 等待工具更换

条件暂停

添加可选的检查暂停:

钩子: 图层结束 代码:

; M0  ; 取消注释以在每个图层后暂停检查

每图层空气辅助

基于每个图层控制空气辅助:

钩子: 图层开始(用于切割图层) 代码:

M8  ; 空气辅助开

钩子: 图层开始(用于雕刻图层) 代码:

M9  ; 空气辅助关(防止雕刻时灰尘散布)
图层特定钩子

Rayforge 目前不支持每个图层自定义钩子。要实现这一点,请使用条件 G 代码或单独的机器配置文件。


安全注意事项

生产前测试

始终在模拟模式或激光禁用的情况下测试宏和钩子,然后在真实作业上运行。配置错误的 G 代码可能导致:

  • 机器撞入限位
  • 激光意外发射
  • 损坏材料或设备

安全清单:

  • 宏包括进给率限制(F 参数)
  • 宏检查位置边界
  • 作业开始钩子包括 M5 或激光关闭命令
  • 作业结束钩子关闭激光(M5)和空气辅助(M9
  • 没有确认的破坏性命令
  • 在模拟或激光禁用的情况下测试

相关页面