get-entity
本文回答:取单个实体(带拾取点)用
getEntity(options),配置类SelectionSetInputOptions,结果字段是pickedEntity / pickedPoint,不是value。
一、最小用法
import { getEntity, SelectionSetInputOptions, InputStatusEnum } from 'vjcad';
const opt = new SelectionSetInputOptions('选择一个对象:');
const r = await getEntity(opt);
if (r.status === InputStatusEnum.OK) {
const ent = r.pickedEntity;
const pickPoint = r.pickedPoint;
console.log('实体类型:', ent.type, '拾取点:', pickPoint);
}
MCP 参考:vjcad/doc/command/api-reference.md。
二、SelectionSetInputOptions 字段
| 属性 | 类型 | 说明 |
|---|---|---|
message |
string |
提示消息 |
keywords |
string[] |
关键字列表(须大写:输入经 toUpperCase() 后与列表逐个全等比较) |
defaultKeyWord |
string |
默认关键字(注意大写 W);非空时直接回车/空格返回 Keyword + 该值 |
useNestedPick |
boolean |
是否允许嵌套选择(块内实体) |
状态:点到实体 → OK;点空白 → None;回车/空格 → EnterOrSpace(设了 defaultKeyWord 则为 Keyword);Esc → Cancel。
三、EntityPickResult 字段
| 属性 | 类型 | 说明 |
|---|---|---|
status |
number |
输入状态 |
pickedEntity |
EntityBase |
拾取的实体 |
pickedPoint |
Point2D |
拾取点坐标 |
stringResult |
string |
关键字结果 |
MCP 参考:vjcad/doc/command/api-reference.md。
四、与 getSelections 的区别
| 维度 | getEntity |
getSelections |
|---|---|---|
| 返回 | 单个 EntityBase |
EntityBase[] |
| 关键字段 | pickedEntity / pickedPoint |
value(数组) |
| 配置类 | SelectionSetInputOptions |
SelectionInputOptions |
| 用途 | "选一个对象做某事"(拾取点参与 trim/extend 之类) | "批量改颜色 / 复制 / 删除" |
反例
- 把
r.value当r.pickedEntity读:getEntity没有value字段。 - 嵌套块里想选块内实体却没设
useNestedPick = true:永远只能选到块参照。
参考(官方文档 MCP)
- 文档:
vjcad/doc/command/api-reference.md