# 刀具模板说明（刀具库 + 模板内嵌刀 + NX 注册）

## 一、现状（2026-10-21 读回实测）

### 1) 刀具库（20 把，T1–T20）
`nx_templates\NXAI_刀具库.prt` —— 48 把刀具定义里的 20 把带 T 号，读回校验全过：
```
① 刀具总数 = 20
② T 号唯一且为 1–20（无 T0）
③ 每把 φ / 刃长 / 刃数 一致
④ holder BT40-ER32 全引用（20/20）
⑤ T = H = D（刀号/补偿号/刀补号一致）
```
清单：
```
T1  D20 平底  φ20 刃45 4z      T11 R6 球刀 φ12 刃30 2z
T2  D16 平底  φ16 刃40 4z      T12 R4 球刀 φ8  刃24 2z
T3  D12 平底  φ12 刃30 4z      T13 R3 球刀 φ6  刃18 2z
T4  D10 平底  φ10 刃25 4z      T14 R2 球刀 φ4  刃12 2z
T5  D8  平底  φ8  刃20 4z      T15 倒角刀 φ10 刃15 4z
T6  D6  平底  φ6  刃18 4z      T16 中心钻 φ3  刃8  2z
T7  D4  平底  φ4  刃12 4z      T17 钻头 φ3.3  刃20 2z
T8  D3  平底  φ3  刃8  4z      T18 钻头 φ5.5  刃25 2z
T9  D5  平底  φ5  刃16 4z      T19 钻头 φ6.8  刃30 2z
T10 D2  平底  φ2  刃6  4z      T20 丝锥 M8（螺距1.25）
```
（具体 T 号与名称以 `data\std\tools.json` 与读回 json 为准）

### 2) 工序模板已内嵌刀具
`nx_templates\NXAI_工序模板.prt` 里每道工序都带自己的刀（粘贴工序时刀会一起带过去）：

| 模板 | 内嵌刀具 |
|---|---|
| TPL_FACE / TPL_SIDE / TPL_ZLEVEL / TPL_SIDE_MM / TPL_CAVITY_REST | D12 |
| TPL_POCKET_R / S / F | D12 |
| TPL_CAVITY | **D20**（开粗大刀） |
| TPL_DRILL | E8 |
| TPL_TAP | M8 |
| TPL_HOLEMILL | D8 |
| TPL_SURFACE / TPL_GUIDE | R5 球刀 |
| TPL_THREAD | THM16（库中缺，占位） |

## 二、两种用法（按场景选）

### 用法 A：整库带入（推荐，最省事）
```
NX 打开 NXAI_刀具库.prt → 机床视图 → Ctrl+A → Ctrl+C
打开目标零件 → 机床视图 → Ctrl+V
→ 20 把刀一次到位，T/H/D 号已配好
```

### 用法 B：只带模板自带的那把刀
```
打开 NXAI_工序模板.prt → 选中某道工序 → Ctrl+C
目标零件 → 工序导航器 → Ctrl+V
→ 工序 + 它自带的那把刀一起过来（不用再建刀）
```

## 三、把刀具库注册成 NX 刀具模板（可选，需管理员）

注册后，在 NX「创建刀具」对话框的"从库中调用"里能直接选到这 20 把。

```
1. 备份：E:\Program Files\Siemens\NX2412\MACH\resource\template_part\metric\
2. 复制 NXAI_刀具库.prt 到该目录
3. 在同目录的 mm_template.opt（或 template_set 的 .opt）里追加一行：
   NXAI_TOOLS,${UGII_TEMPLATE_DIR}metric\NXAI_刀具库.prt
4. 重启 NX → 创建刀具 → 能看到 NXAI_TOOLS 分类
```
⚠️ 要改 NX 安装目录（需管理员），且**先备份 .opt**。
`tools\post_register_local.bat` 的模式可参照（它做的是后处理注册）。

## 四、刀号规则（严格）

```
T 号范围 T1–T20，唯一，不跳号
补偿号 H = T，刀补号 D = T
禁止 T0 / H0 / H00（上机会报警或撞刀）
没分到号 → 报错中止，不许出程序
```
若发现 NC 里出现 T0，用 `tools\nc_toolfix.py --map "D12=3,D8=5"` 修正
（带 .bak 备份与 dry-run）。

## 五、待补

- **螺纹铣刀**：刀具库 48 条里没有 thread_mill 类型 → TPL_THREAD 用占位 D16R0.4，
  实际使用请在 NX 里建一把螺纹铣刀（φ16、螺距按目标螺纹）
- **圆鼻刀（bullnose）**：库里有 D16R0.4/D20R0.8 定义，但参数库无 bullnose 条目，
  S/F 会回落材料库，需试切复核

---

## ⚠ 2026-10-21 更新：刀具库已扩到 72 把

原 20 把（T1-T20）只是最初版本。现在 `NXAI_刀具库.prt` 已扩到 **72 把、9 类**，
且**不预设 T 号**（复制到零件后由你按刀套顺序填 T1-T20）：

| 类型 | 数量 | 清单 |
|---|---|---|
| 平底铣刀 | 16 | D1/D1.5/D2/D2.5/D3/D4/D5/D6/D8/D10/D12/D14/D16/D20/D25/D32 |
| 球刀 | 9 | R0.5/R1/R1.5/R2/R3/R4/R5/R6/R8 |
| 圆鼻刀 | 8 | D6R0.5/D8R0.5/D10R1/D12R1/D16R0.8/D20R0.8/D25R1/D32R3 |
| 倒角刀 | 4 | C6-90/C10-90/C12-90/C16-90 |
| 中心钻 | 3 | SP3/SP5/SP8 |
| 钻头 | 16 | E2/E3/E3.3/E4.2/E5/E5.5/E6.8/E8/E8.5/E10/E10.2/E11/E12/E14/E16/E20 |
| 丝锥 | 8 | M3/M4/M5/M6/M8/M10/M12/M16 |
| 螺纹铣刀 | 4 | TM8/TM10/TM12/TM16 |
| 铰刀 | 4 | RE6/RE8/RE10/RE12 |

清单文件：`data\std\tool_template.json`（要加刀就改它，重跑 `tools\make_tool_lib2.py`）
