> **本文回答**：vjcad 用户输入有 8 类——`getPoint / getSelections / getEntity / getString / getInteger / getReal / getKeyword / getCorner`（矩形角点拖拽），全部 `await` 返回带 `status` 的结果对象（多数是 `{ status, value, stringResult, ... }`；**`getEntity` 例外**，返回 `{ status, pickedEntity, pickedPoint, stringResult }`，没有 `value`），必须以 `result.status === InputStatusEnum.OK` 判断成功；对应的选项类是 `PointInputOptions / SelectionInputOptions / SelectionSetInputOptions / StringInputOptions / IntegerInputOptions / RealInputOptions / KeywordInputOptions / CornerInputOptions`。

## 一、按子主题挑

| 想做的 | 子主题 |
|---|---|
| 取一个点 / 多个点 | [get-point](get-point.md) |
| 带基点取点（橡皮筋 / 自定义预览） | [base-point](base-point.md) |
| 取多个实体（框选 / 点选） | [get-selections](get-selections.md) |
| 取单个实体 + 拾取点 | [get-entity](get-entity.md) |
| 取字符串 / 整数 / 实数 / 关键字 | [get-string-number](get-string-number.md) |

## 二、调用方式（两种等价）

```js
// 方式 A：直接函数（包级导出）
import { getPoint, getSelections, getEntity, getReal, getInteger } from 'vjcad';
const r = await getPoint(options);

// 方式 B：通过 Engine
const r2 = await Engine.getPoint(options);
const r3 = await Engine.getSelections(options);
const r4 = await Engine.getReal(options);
const r5 = await Engine.getInteger(options);
const r6 = await Engine.getString(options);
const r7 = await Engine.getKeyword(options);
```

MCP 参考：`vjcad/doc/command/api-reference.md`、`vjcad/example/input/*.js`。

## 三、`InputStatusEnum`（按 `vjcad/doc/command/api-reference.md`）

| 值 | 名称 | 说明 |
|---|---|---|
| `5100` | `OK` | 成功获取输入 |
| `-5002` | `Cancel` | 用户取消 |
| `-5005` | `Keyword` | 用户输入关键字 |
| `3` | `EnterOrSpace` | 用户按回车或空格（实际只有 `getEntity` 返回；其他输入的空回车见 [get-string-number](get-string-number.md)） |
| `4` | `IsNumber` | 用户输入数字 |
| `5000` | `None` | 无输入 |
| `-5001` | `Error` | 发生错误 |

> 这些是文档里给的数值。一般写代码用 `result.status === InputStatusEnum.OK`，**不要直接对比数字字面量**。

## 四、Top 输入坑

1. 没判 `Cancel`：用户按 Esc 后还继续创建实体。
2. `result.value` 当 number 用：`getPoint` 的 `value` 是 `Point2D`；想要数字得用 `getReal / getInteger`。
3. 取点的 `callback` 把 `canvasPt` 当世界坐标：必须 `Engine.canvasToWcs(canvasPt)` 转换。

## 参考（官方文档 MCP）

- 文档：`vjcad/doc/command/api-reference.md`、`vjcad/doc/command/index.md`
- 示例：`vjcad/example/input/01getpoint.js`～`06getkeyword.js`
