> **本文回答**：刷新有三档——`render`（轻量重绘）/ `redraw`（标准刷新）/ `regen`（完整重生成，重新计算所有实体几何）；改了几何（`move/rotate/scale`）必须 `regen`，仅改颜色 / 选择高亮 `redraw` 或 `render` 即可；`regen(true)` 强制全量。

## 一、API

```js
// 轻量：只重绘 GPU 帧
Engine.render();
// 或
Engine.pcanvas.render();

// 标准：刷新显示，但不重新计算所有实体
Engine.redraw();
// 或
Engine.pcanvas.redraw();

// 完整：重新计算所有实体的几何
Engine.regen();             // 普通
Engine.regen(true);         // 强制全量
Engine.pcanvas.regen(true); // 等价
```

MCP 参考：`vjcad/doc/view/index.md`、`vjcad/example/view/03redraw.js`。

## 二、什么时候用什么

| 场景 | 调什么 |
|---|---|
| 改了 `entity.move/rotate/scale/mirror` | `Engine.regen()` |
| 删了实体 / 加了实体（用 `Engine.addEntities/eraseEntities`） | 一般已自动 `regen`，特殊情况 `Engine.regen()` |
| 改了 `entity.color / lineType / lineWeight` | 多数会自动；保险 `Engine.regen()` |
| 改了图层 `layerOn / isFrozen` | `Engine.regen(true)` |
| 改了 UCS / `twistAngle` | `Engine.pcanvas.redraw()` 即可 |
| 选择 / 高亮变化 | `Engine.pcanvas.redraw()` |
| 单纯 GPU 帧丢了 | `Engine.render()` |

MCP 参考：`vjcad/example/view/03redraw.js`、`vjcad/doc/view/index.md`、`vjcad/doc/property/index.md`、`vjcad/doc/layer/layers.md`。

## 三、平移（PAN）

平移通常由用户鼠标交互完成（按住中键拖动；`CommandRegistry` 未注册 `PAN` 命令）。编程平移 = 改 `Engine.setCenter(point)` + `redraw`：

```js
// ⚠️ Engine.getCenter() 不存在；取当前视野中心用屏幕 WCS 边界中点
const b = Engine.getScreenBoundsWcs();
const cur = new Point2D((b.minX + b.maxX) / 2, (b.minY + b.maxY) / 2);
Engine.setCenter(new Point2D(cur.x + 100, cur.y));
Engine.pcanvas.redraw();
```

⚠️ **没有 `PAN` 命令**——`CommandRegistry` 只注册了 `ZOOM / ZOOMEXTENTS` 等，`executerWithOp('PAN')` 会提示未知命令。平移只能 `setCenter` + `redraw` 或由用户鼠标操作。

MCP 参考：`vjcad/doc/view/view-commands.md`、`vjcad/example/view/05setcenter.js`。

## 反例

- 改了 `entity.startPoint.x = 50` 后只 `redraw` 不 `regen`：实体几何边界没刷新。
- 在循环里每次 `regen()`：性能爆炸，应批量改完最后一次 `regen`。
- `regen(true)` 当 "万能刷新" 滥用：相对昂贵，没必要时用 `redraw`。

## 参考（官方文档 MCP）

- 文档：`vjcad/doc/view/index.md`、`vjcad/doc/view/view-commands.md`
- 示例：`vjcad/example/view/03redraw.js`、`vjcad/example/view/05setcenter.js`
