news 2026/5/9 4:21:29

直接画圆或输入半径(关键字和选择状态并列)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
直接画圆或输入半径(关键字和选择状态并列)

if (pointResult.Status == PromptStatus.Keyword)
else if (pointResult.Status == PromptStatus.OK)
{
// 用户直接指定了点,使用默认半径画圆
CreateCircle(db, ed, pointResult.Value, radius);
}
else
{
// 用户取消
return;
}

public static void DrawCircleWithDirectOption() { // 获取当前文档和编辑器 Document doc = Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; Editor ed = doc.Editor; try { double radius = 100.0; // 默认半径 bool radiusSpecified = false; // 第一步:提示用户指定圆心点或输入关键字R // 这里的关键是使用 PromptPointOptions,它允许用户直接点选或输入关键字 PromptPointOptions pointOptions = new PromptPointOptions("\n指定圆心点或 [半径(R)]: "); pointOptions.Keywords.Add("R"); pointOptions.AppendKeywordsToMessage = true; // 这里设置 AllowNone 为 true,允许用户直接按Enter键 // 但我们的需求是直接点选或输入R,所以不需要AllowNone PromptPointResult pointResult = ed.GetPoint(pointOptions); if (pointResult.Status == PromptStatus.Keyword) { // 用户输入了关键字 "R" if (pointResult.StringResult == "R") { // 提示用户输入半径值 PromptDoubleOptions radiusOptions = new PromptDoubleOptions("\n请输入半径值: "); radiusOptions.AllowZero = false; // 不允许零值 radiusOptions.AllowNegative = false; // 不允许负值 radiusOptions.DefaultValue = 100.0; // 默认值100 PromptDoubleResult radiusResult = ed.GetDouble(radiusOptions); if (radiusResult.Status != PromptStatus.OK) return; // 用户取消或输入错误 radius = radiusResult.Value; radiusSpecified = true; // 再次提示用户指定圆心点 PromptPointOptions centerOptions = new PromptPointOptions("\n指定圆心点: "); PromptPointResult centerResult = ed.GetPoint(centerOptions); if (centerResult.Status != PromptStatus.OK) return; CreateCircle(db, ed, centerResult.Value, radius); } } else if (pointResult.Status == PromptStatus.OK) { // 用户直接指定了点,使用默认半径画圆 CreateCircle(db, ed, pointResult.Value, radius); } else { // 用户取消 return; } } catch (System.Exception ex) { ed.WriteMessage($"\n错误: {ex.Message}"); } } /// <summary> /// 创建圆的辅助方法 /// </summary> private static void CreateCircle(Database db, Editor ed, Point3d center, double radius) { using (Transaction tr = db.TransactionManager.StartTransaction()) { // 获取块表记录 BlockTable bt = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable; BlockTableRecord btr = tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord; // 创建圆 Circle circle = new Circle(center, Vector3d.ZAxis, radius); // 将圆添加到模型空间 btr.AppendEntity(circle); tr.AddNewlyCreatedDBObject(circle, true); // 提交事务 tr.Commit(); // 显示提示信息 ed.WriteMessage($"\n已创建圆:圆心({center.X:F2}, {center.Y:F2}),半径={radius:F2}"); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 12:31:56

YOLO26模型今日发布,致力于打造端到端计算范式的端侧AI新标杆

在前面的博文中我们学习了YOLO26的论文&#xff0c;感兴趣的话可以自行移步阅读&#xff1a; 《YOLO26: Key Architectural Enhancements and Performance Benchmarking for Real-time Object Detection——实时目标检测的关键架构增强与性能基准测试》 YOLO26 的关键架构改进…

作者头像 李华
网站建设 2026/5/9 3:29:19

交通仿真软件:SUMO_(18).性能优化与调试

性能优化与调试 在交通仿真软件SUMO中&#xff0c;性能优化和调试是确保仿真模型准确性和效率的关键步骤。本节将详细介绍如何通过不同的方法和技术来优化SUMO的性能&#xff0c;并提供一些调试技巧&#xff0c;帮助用户解决仿真过程中遇到的问题。 1. 仿真性能优化 1.1 网络优…

作者头像 李华
网站建设 2026/5/7 23:32:43

谷歌重新拥抱被冷落的JPEG XL图像格式

谷歌已将JPEG XL&#xff08;JXL&#xff09;图像格式支持添加到开源Chromium代码库中&#xff0c;这一决定逆转了2022年放弃该技术的立场。最近的一次代码提交集成并启用了JXL解码器&#xff0c;这意味着未来发布的Google Chrome和其他基于Chromium的浏览器将包含处理和显示JX…

作者头像 李华
网站建设 2026/5/2 16:30:48

ONLYOFFICE 的 Zotero 插件全新升级!界面优化 + 文献引用更灵活

ONLYOFFICE 编辑器的 Zotero 插件新版本1.0.6来了&#xff01;此次更新聚焦提升使用便捷性&#xff0c;让用户能更自主地控制引用文献的创建与格式设置&#xff0c;为学术研究与论文写作提供更高效的支持。 界面焕新&#xff0c;操作更顺手 插件界面经过重新设计&#xff0c;让…

作者头像 李华
网站建设 2026/5/3 12:01:33

基于小程序的篮球场馆预订系统-计算机毕业设计源码+LW文档

摘 要 随着国家的迅猛发展和互联网技术的持续飞跃&#xff0c;现代生活节奏显著加快。为了更有效地管理时间、提升个人及工作效率&#xff0c;大众愈发倾向于借助互联网平台处理各类日常事务&#xff0c;这一趋势直接催生了微信小程序的蓬勃兴起。在此背景下&#xff0c;人们对…

作者头像 李华
网站建设 2026/5/1 5:19:27

用友HR SaaS发布:AI至上,7大AI+HR趋势预见2026!

2025年&#xff0c;AI技术在HR领域的应用完成了从概念探索到初步落地的铺垫&#xff0c;各类智能工具逐步渗透招聘、绩效、培训等核心场景&#xff1b;2026年&#xff0c;AIHR又将走向何方&#xff1f;用友HR SaaS结合20本权威报告&#xff0c;找到交集并提炼出7大核心趋势&…

作者头像 李华