# A1 SwapMod 换板 G-code 分析
**版本**: v0.5.0 | **日期**: 2026-07-27
## 文件清单
共 5 个模板,按内容复杂度分为三类:
| 类型 | 包含文件 | 主要特征 |
|------|----------|----------|
| 类型 A — 基础弹射 | `LX_0.01.01.gcode` | G380 S3/S2 交替下压,单轮弹射,无 M400/M17 |
| 类型 B — 双轮抖板 | `LX_0.07.22.gcode` | G380 S3/S2 交替下压,双轮 Shake,无 M400/M17 |
| 类型 C — 安全换板 | `LX_1.02.26.gcode`
`LX_1.02.26_slow.gcode`
`LX_1.02.26_slow_safeZ.gcode` | G1 Z- + G380 S2 下压,M400/M17 保护,双轮 Shake |
## 类型 A — 基础弹板(LX_0.01.01)
**行数**: 35 行 | **复杂度**: 最低
```
Z 轴下压(G380 S3/S2 交替)→ Y 归零 → 推到 Y266
→ Z 轴轻压(G380 S2 Z20)→ 关闭软限位(M211 X0 Y0 Z0)
→ Y266→Y0 高速前推 → Z 轴回压 → 单次弹射 Y-2 F5000
→ 归位 Y150
```
**特点**:
- `M211 X0 Y0 Z0` 关闭软限位,允许超行程运动(其他版本均无此行)
- 仅单轮弹射,无 Shake 抖板机制
- 使用相对坐标 `G91` 大量操作
- 无 `M400`/`M17` 保护
- 换板结束后 Z 轴停留在低位
## 类型 B — 双轮抖板(LX_0.07.22)
**行数**: 100 行 | **复杂度**: 中等
```
G28 Y → Y262 → Z 轴下压(G380 S3/S2 ×4轮)
→ G4 P2000 → Y15→Y150→Y40 → G380 S2 Y264
→ Z 轴上升(G1 Z-55)→ Y120 → G28 Y → Y-1
→ 抖板第1轮(6段: 1→1.5→2→2.5→3→3.5mm 往复)
→ Y235→Y110→Y200 → G380 S2 Y264 → G4 P1000
→ Y40 → Y-2 F5000
→ 抖板第2轮(6段: 1→1.5→2→2.5→3→3.5mm 往复)
→ Y120 归位
```
**特点**:
- 首次引入双轮抖板,且抖板偏移量最大(最大 3.5mm)
- G380 S3/S2 交替多轮下压确保板贴合
- 无 `M400`/`M17`
## 类型 C — 安全换板(LX_1.02.26 / slow / slow_safeZ)
**行数**: 115~128 行 | **复杂度**: 最高
### C1 — 标准版(LX_1.02.26)
```
G28 Y → Y262 F2000 → M400 → M17 Z0.4
→ Z 轴下压(G1 Z- + G380 S2 纯力控,4轮)
→ G4 P2000 → Y15→Y150→Y40 → G380 S2 Y264
→ Z 轴上升(G1 Z-70)→ Y200 → Y25 → Y-1 F20000 → G28 Y
→ 抖板第1轮(5段: 1→1.5→2→2.5→2.5mm 往复)
→ Y235→Y110→Y200 → G380 S2 Y264 → G4 P1000
→ Y25 → Y-2 F20000
→ 抖板第2轮(5段: 1→1.5→2→2.5→2.5mm 往复)
→ Y262→Y120 归位
```
### C2 — 慢速版(LX_1.02.26_slow)
与 C1 完全相同,仅 **一处差异**:
- 第2轮弹射 `Y-2 F20000` → `Y-2 F1000`
### C3 — 慢速安全版(LX_1.02.26_slow_safeZ)
与 C2 完全相同,尾部追加 **Z 轴安全回位**:
```gcode
G4 P3000 ; 驻留 3 秒
M400
G90
G1 Z30 F600 ; Z 轴升至 30mm
M400
```
> 由 QQ 群用户 **风信子号** 提供
**特点**:
- 引入 `M400`(同步等待)+ `M17 Z0.4`(降低 Z 电机电流),防止碰撞损伤
- Z 轴下压从 G380 S3/S2 交替改为 G1 Z- + G380 S2 纯力控
- 抖板偏移收窄到 2.5mm(原 3.5mm)
- Y262 归位提速 F1200→F2000
## 三类对比总表
| 特性 | 类型 A | 类型 B | 类型 C1 | 类型 C2 | 类型 C3 |
|------|--------|--------|---------|---------|---------|
| **M400/M17** | ❌ | ❌ | ✅ | ✅ | ✅ |
| **M211 关限位** | ✅ | ❌ | ❌ | ❌ | ❌ |
| **Z 下压方式** | G380 S3/S2 | G380 S3/S2 | G1 Z-+G380 S2 | G1 Z-+G380 S2 | G1 Z-+G380 S2 |
| **抖板轮数** | 0 | 2 | 2 | 2 | 2 |
| **抖板最大偏移** | — | 3.5mm | 2.5mm | 2.5mm | 2.5mm |
| **Z 轴上升量** | — | -55mm | -70mm | -70mm | -70mm |
| **第2轮弹射速度** | F5000 | F5000 | F20000 | F1000 | F1000 |
| **Safe Z 回位** | ❌ | ❌ | ❌ | ❌ | ✅ Z30 |
| **总行数** | 35 | 100 | 115 | 115 | 128 |
## 换板原理
A1 SwapMod 利用 **Y 轴运动 + 热床摩擦力** 来弹射和更换打印板:
- **弹射** — Y 轴推到后端 → Z 轴下压使板贴合热床 → Y 轴骤推到前端 → 惯性 + 力传感器校准 → Z 轴上升留出空间 → Y 轴高速反弹把旧板弹下
- **抖板** — 在板脱落位置做微小 Y 轴往复,通过振动确保板完全脱离
- **推板** — `G380 S2 Y264` 力控推到最前端,为下一块板留出插入空间
## 关键 G-code 指令
| 指令 | 含义 |
|------|------|
| `G28 Y` | Y 轴归零(寻找限位开关) |
| `G380 S2 <目标>` | **A1 专有** — 力传感器目标位移动。以预设力矩正向推进 |
| `G380 S3 <目标>` | **A1 专有** — 力传感器碰撞退出。同向移动直到力反馈下降 |
| `M400` | 等待所有运动队列清空 |
| `M17 Z0.4` | Z 轴电机电流降至 0.4A,降低运动阻力 |
| `M211 X0 Y0 Z0` | 关闭软限位,允许超行程运动 |
| `G4 Pxxx` | 驻留 xxx 毫秒 |
| `G91` / `G90` | 相对坐标 / 绝对坐标切换 |
## 建议
推荐保留两个模板作为不同使用场景:
| 场景 | 推荐模板 | 原因 |
|------|----------|------|
| **日常推荐** | C3 — 慢速安全版 | 弹射温和、Z 轴安全回位,最不容易出问题 |
| **追求速度** | C1 — 标准版 | 弹射速度快、节拍最短 |
| **实验/备选** | A — 基础弹板 | 极简实现,适合调试 |