唯杰地图 logo唯杰地图
VJMAP
EN

overview

vjcad/references/input/overview.md 2.8 KB55 行
原文

本文回答: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
带基点取点(橡皮筋 / 自定义预览) base-point
取多个实体(框选 / 点选) get-selections
取单个实体 + 拾取点 get-entity
取字符串 / 整数 / 实数 / 关键字 get-string-number

二、调用方式(两种等价)

// 方式 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)
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