用户输入
大约 2 分钟
用户输入
用户交互输入功能,包括点坐标、选择集、数值、关键字等输入方式。
在线示例
| 示例 | 描述 | 链接 |
|---|---|---|
| 获取点 | Engine.getPoint 用法 | 在线演示{target="_blank"} |
| 带基点获取点 | 橡皮筋线示例 | 在线演示{target="_blank"} |
| 获取选择集 | Engine.getSelections 用法 | 在线演示{target="_blank"} |
| 获取实数 | Engine.getReal 用法 | 在线演示{target="_blank"} |
| 获取整数 | Engine.getInteger 用法 | 在线演示{target="_blank"} |
| 关键字输入 | keywords 选项用法,绘制不同图形 | 在线演示{target="_blank"} |
核心 API
获取点坐标
const { getPoint, PointInputOptions, InputStatusEnum } = vjcad;
// 基础用法
const options = new PointInputOptions("指定点位置:");
const result = await getPoint(options);
if (result.status === InputStatusEnum.OK) {
const point = result.value;
console.log(`点坐标: (${point.x}, ${point.y})`);
}带基点的橡皮筋线
// 从基点绘制橡皮筋线
const options = new PointInputOptions("指定下一点:");
options.basePoint = new Point2D(0, 0); // 基点
options.showRubberBand = true; // 显示橡皮筋线
const result = await getPoint(options);获取选择集
const { getSelections, SelectionInputOptions } = vjcad;
const options = new SelectionInputOptions("选择实体:");
const result = await getSelections(options);
if (result.status === InputStatusEnum.OK) {
const entities = result.value;
console.log(`选择了 ${entities.length} 个实体`);
}获取数值
// 获取实数
const realOptions = new RealInputOptions("输入半径:");
realOptions.defaultValue = 10;
const realResult = await getReal(realOptions);
// 获取整数
const intOptions = new IntegerInputOptions("输入边数:");
intOptions.defaultValue = 6;
const intResult = await getInteger(intOptions);关键字输入
const options = new PointInputOptions("选择类型 [圆(C)/矩形(R)/三角形(T)]:");
options.keywords = [
{ keyword: "C", display: "圆" },
{ keyword: "R", display: "矩形" },
{ keyword: "T", display: "三角形" }
];
const result = await getPoint(options);
if (result.status === InputStatusEnum.Keyword) {
switch (result.keyword) {
case "C": /* 绘制圆 */ break;
case "R": /* 绘制矩形 */ break;
case "T": /* 绘制三角形 */ break;
}
}输入状态
| 状态 | 说明 |
|---|---|
InputStatusEnum.OK | 输入成功 |
InputStatusEnum.Cancel | 用户取消(ESC) |
InputStatusEnum.Keyword | 用户输入了关键字 |
InputStatusEnum.None | 无输入 |