c# cad PromptSelectionResult批量选择 PromptEntityOptions选择单个实体介绍

一、PromptSelectionResult :

是 AutoCAD .NET API 中的一个类,位于 Autodesk.AutoCAD.EditorInput 命名空间下。它代表了用户在 AutoCAD 编辑器中进行图形对象选择操作的结果。

当你通过 Editor 类的 GetSelection() 方法(或者其他类似的方法)请求用户在绘图区选择一个或多个实体时,AutoCAD 会返回一个 PromptSelectionResult 对象。这个结果对象包含了以下关键信息:

  1. Status:表示选择操作的状态,可以是 PromptStatus.OK(用户成功选择了对象)、PromptStatus.Cancel(用户取消了选择操作)或其他状态。

  2. Value:如果 Status 为 PromptStatus.OK,那么 Value 属性将是一个 SelectedObjectCollection 对象,包含了用户所选的所有实体的信息。每一个 SelectedObject 都包含了被选中实体的 ObjectId 和其他可能的相关数据。

  3. Keywords:在某些特定的选择提示中,可能会涉及到关键词匹配。此属性包含了一组用户输入的关键词。

使用 PromptSelectionResult 可以根据用户的选择来执行相应的后续处理,如获取选定实体的详细信息、修改实体属性或者执行与所选实体相关的其他操作。例如:

using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;// 初始化AutoCAD应用和编辑器
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;// 创建选择过滤器并获取用户选择结果
PromptSelectionFilter filter = new PromptSelectionFilter(new TypedValue[] { /* 过滤条件 */ });
PromptSelectionResult selRes = ed.GetSelection(filter, "\n请选择图形对象:");if (selRes.Status == PromptStatus.OK)
{foreach (SelectedObject so in selRes.Value){ObjectId id = so.ObjectId;// 使用id获取实体并进行进一步操作...}
}

二、PromptEntityOptions :

是 AutoCAD .NET API 中的一个类,位于 Autodesk.AutoCAD.EditorInput 命名空间下,用于在编程中自定义实体选择提示的行为。当你需要从用户那里获取特定类型的AutoCAD实体时,可以使用这个类来配置和执行实体选择操作。

该类主要用来创建一个实体选择对话框的参数集,包括:

  1. Message:显示给用户的提示信息,告诉用户需要做什么或选择什么类型的实体。
  2. Keywords:可选的关键字列表,与对象类型、图层或其他属性关联,帮助用户通过输入关键词快速筛选并选择实体。
  3. AllowNone:布尔值,表示是否允许用户不选择任何实体而直接取消。
  4. Multiple:布尔值,决定用户是否可以一次性选择多个实体。
  5. CustomObjectFilter 或 ObjectType:指定要选择的实体类型过滤器,可以是一个具体的对象类型(如线、圆、块等),也可以是一个自定义的对象过滤器,用于更复杂的实体类型筛选条件。
  6. UsePickBox:是否启用拾取框,让用户可以通过矩形区域来选择一组连续或相邻的实体。

通过实例化并配置 PromptEntityOptions 对象后,您可以将其传递给 Editor 类的 GetEntity() 方法,从而启动实体选择过程,并根据用户的选择返回一个 PromptEntityResult 对象,其中包含了用户选择的实体信息。

例如:

using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;// 获取当前编辑器和文档
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;// 创建实体选择选项
PromptEntityOptions opts = new PromptEntityOptions("\n请选择一个线段:");
opts.ObjectType = ObjectType.Line;// 执行实体选择操作
PromptEntityResult result = ed.GetEntity(opts);if (result.Status == PromptStatus.OK)
{ObjectId selectedId = result.ObjectId;// 使用选择的实体ID进行后续处理...
}
else if (result.Status == PromptStatus.Cancel)
{ed.WriteMessage("用户取消了选择操作。\n");
}


三、总结:


- `PromptSelectionResult` 通常用于批量选择多种可能的对象,通过筛选器控制可选对象类型。
- `PromptEntityOptions` 则用于精确选择单个实体,并可以设定提示信息,但更具体的选择条件(如闭合多段线)需要在获取实体后额外处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/650316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL JSON数据类型全解析(JSON datatype and functions)

JSON(JavaScript Object Notation)是一种常见的信息交换格式,其简单易读且非常适合程序处理。MySQL从5.7版本开始支持JSON数据类型,本文对MySQL中JSON数据类型的使用进行一个总结。 目录 一、MySQL中的JSON 1.1 JSON数据格式 1.2 …

11. 发送邮件

1. 简介 Spring Boot 收发邮件最简便方式是通过 spring-boot-starter-mail。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId> </dependency>spring-boot-starter-mail 本质…

hive - explode 用法以及练习

hive explode 的用法以及练习 一行变多行 explode 例如&#xff1a; 临时表 temp_table &#xff0c;列名为1st 1st1,2,34,5,6 变为 1 2 3 4 5 6 方式一&#xff1a;直接使用 explode select explode(split(1st,,)) from temp_table;方式二&#xff1a;使用 lateral view…

spring-boot-starter-validation常用注解

文章目录 一、使用二、常用注解三、Valid or Validated &#xff1f;四、分组校验1. 分组校验的基本概念2. 定义验证组3. 应用分组到模型4. 在控制器中使用分组5. 总结 一、使用 要使用这些注解&#xff0c;首先确保在你的 Spring Boot 应用的 pom.xml 文件中添加了 spring-bo…

Java问题排查工具集

Java 问题排查工具箱 n 默认值相关问题 l -XX:PrintFlagsFinal || jinfo -flags n 类装载相关问题 l -XX:TraceClassLoading n 应用无响应相关问题 l sar 等系统指标 l jstack [-l] [-m] Java 问题排查工具箱 n 内存相关问题 l -XX:HeapDumpOnOutOfMemoryEr…

探秘Dmail:Web3世界的通讯引领者

摘要&#xff1a;在一个充满潜力并且对创新要求严格的领域中&#xff0c;Dmail作为一种开创性的Web3通讯协议应运而生。 1月24日&#xff0c;OKX Jumpstart宣布上线Dmail&#xff0c;在Web3领域引起了巨大反响&#xff0c;这是一个旨在重新定义数字通讯范式的富有远见的项目&a…

#资源#llm训练 获取数据集的网站

llm训练需要获取数据&#xff0c;互联网上会有一些别人开源的数据集&#xff0c;我们可以拿来即用 https://github.com/huggingface/datasets https://huggingface.co/datasets 支持使用python直接调取&#xff0c;譬如squad_dataset load_datasets(“squad”)。 https://dat…

【c++学习】数据结构中的栈

c栈 栈代码用线性表实现栈用链表实现栈 栈 栈&#xff1a;先进后出 只对栈顶元素进行操作&#xff0c;包括新元素入栈、栈顶元素出栈和查看栈顶元素&#xff08;只支持对栈顶的增、删、查&#xff09;。 代码 下述代码实现了栈及其接口 包括对栈顶的增、删、查以及查看栈的大…

[足式机器人]Part2 Dr. CAN学习笔记- 最优控制Optimal Control Ch07

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记 - 最优控制Optimal Control Ch07-1最优控制问题与性能指标 1. 最优控制问题与性能指标2. 动态规划 Dynamic Programming2.1 基本概念2.2 代码详解2.3 简单一维案例 3. 线性二次型调节器&#xff…

Linux date命令详解:如何设置、更改、格式化和显示日期时间(附实例与注意事项)

Linux date命令介绍 date命令在Linux中用来显示和设置系统日期和时间。这个命令允许用户以不同的格式打印时间&#xff0c;也可以计算未来和过去的日期。 Linux date命令适用的Linux版本 date命令在所有主流的Linux发行版中都可以使用&#xff0c;包括但不限于Debian、Ubunt…

GIt同时存在传入和传出更改修改,无法合并

前言 Git是常用的版本管理工具&#xff0c;之前面试被问到过一次——Git有无遇到过使用错误情况&#xff1f;当时卡壳了没答上来&#xff0c;所以这次遇到&#xff0c;特此记录学习。 问题概述 前一天提交了代码&#xff0c;mt进行了修改。但我忘记拉取最新&#xff0c;就进…

bxCAN 标识符筛选

标识符筛选 在 CAN 协议中&#xff0c;消息的标识符与节点地址无关&#xff0c;但与消息内容有关。因此&#xff0c;发送器将消息广播给所有接收器。在接收到消息时&#xff0c;接收器节点会根据标识符的值来确定软件是否需要该消息。如果需要&#xff0c;该消息将复制到 SRAM…

每日一题 力扣2865 美丽塔Ⅰ

2865. 美丽塔 I 题目描述&#xff1a; 给你一个长度为 n 下标从 0 开始的整数数组 maxHeights 。 你的任务是在坐标轴上建 n 座塔。第 i 座塔的下标为 i &#xff0c;高度为 heights[i] 。 如果以下条件满足&#xff0c;我们称这些塔是 美丽 的&#xff1a; 1 < height…

QT笔记 - QToolButton triggered(QAction *)不触发问题

QToolButton 有两个功能&#xff0c;一个是基本按钮功能&#xff0c;同QPushButton一样&#xff0c;发出clicked()信号。 另一个功能是QAction功能&#xff0c;发出触发triggered(QAction *)信号&#xff0c;但它自己不包含QAction&#xff0c;需要同其它比如QMenu或QToolBar上…

深度解析单片机:历史、发展与您关心的问题

什么是单片机&#xff1f; 定义&#xff1a;单片机是一种集成了中央处理器&#xff08;CPU&#xff09;、内存和外设功能的微型计算机系统。与传统计算机相比&#xff0c;单片机通常集成在一个芯片上&#xff0c;用于控制特定的应用。#单片机# 特点&#xff1a; 封装紧凑&…

人工智能:更多有用的 Python 库

目录 前言 推荐 JupyterLab 入门 复杂的矩阵运算 其它人工智能和机器学习的 Python 库 前言 在这篇文章中&#xff0c;我们将了解更多的矩阵操作&#xff0c;同时再介绍几个人工智能 Python 库。 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#x…

再谈Android View绘制流程

一&#xff0c;先思考何时开始绘制 笔者在这里提醒读者&#xff0c;Android的View是UI的高级抽象&#xff0c;我们平时使用的XML文件也好&#xff0c;本质是设计模式中的一种策略模式&#xff0c;其View可以理解为一种底层UI显示的Request。各种VIew的排布&#xff0c;来自于开…

如何使用 dotnet pack 打包 .NET 跨平台程序集?

如何使用 dotnet pack 打包 .NET 跨平台程序集&#xff1f; dotnet pack 介绍官方描述 dotnet pack 命令说明使用示例打包 .net 类库项目生成带注释的 nuget 包构建特定平台的 nuget 包关于 .NET RID 目录 dotnet pack 介绍 dotnet pack 是一个 .NET Core NuGet 包打包程序。 …

OPenCv基础代码

import numpy as np import cv2 as cv import matplotlib.pyplot as plt#读取图像cv.imread()#读取图像cv.imshow()#绘制直线 cv.line(img,start,end,color,thickness)#绘制圆形 cv.circle(img,centerpoint, r, color, thickness)#绘制矩形 cv.rectangle(img,leftupper,rightdo…

Python 数据分析实战——为什么销售额减少?酒卷隆治_案例1

# 为什么黑猫游戏的销售额会减少&#xff1f; # 数据集 DAU : 每天至少来访问一次的用户数据 数据内容 数据类型 字段名 访问时间 string&#xff08;字符串&#xff09; log_data 应用名称 string&#xff08;字符串&#xff09; app_name 用户 ID int&#xff08;数值&…