C#在AutoCAD中获取关键字输入(PromptKeywordOptions)

您所在的位置:网站首页 autocad输入数字无效 C#在AutoCAD中获取关键字输入(PromptKeywordOptions)

C#在AutoCAD中获取关键字输入(PromptKeywordOptions)

#C#在AutoCAD中获取关键字输入(PromptKeywordOptions)| 来源: 网络整理| 查看: 265

使用“PromptKeywordOptions”添加“Keywords”时,什么情况下会失效?——是因为关键字首字母一致么?不一定哦。

背景

使用C#对AutoCAD进行二次开发的时候,经常需要用户输入选项来控制我们的程序下一步要做什么。比如我们常用的多段线编辑命令:“PEDIT”,在AutoCAD的命令行输入PEDIT点击“回车”后,命令行会提示:

PEDIT命令

输入M,“回车”,命令行提示“选择对象”,鼠标变为可框选状态,选择我们需要的编辑的多段线后“回车”,这时,如果我们打开了CAD的“DYN”设置,那么光标右侧就会列出可供用户选择的选项:

鼠标右侧选项

同时,命令行也将罗列出命令行选项:

如果我们也想实现这样的效果,就需要用到“PromptKeywordOptions”类

实际用法

PromptKeywordOptions optK = new PromptKeywordOptions("\n请选择输出类型:");

optK.Keywords.Add("CaoTu05", "CaoTu05", "新草图(X)", true, true);

optK.Keywords.Add("CaoTu", "CaoTu", "草图(C)", true, true);

optK.Keywords.Default = "CaoTu";

PromptResult kRsult = AcadApp.DocumentManager.MdiActiveDocument.Editor.GetKeywords(optK);

if (kRsult .Status != PromptStatus.OK)

{

           return;

}

if (kRsult .StringResult == "CaoTu")

{

           MessageBox.Show("您选择的输出类型是:“草图”");

}

else if (kRsult .StringResult == "CaoTu05")

{

            MessageBox.Show("您选择的输出类型是:“新草图”");

}

此时执行看效果:

命令行提示

鼠标右侧提示

选择“草图(C)”或者在命令行输入:C,“回车”:

选择“草图(C)”后的弹窗信息

如果选择“新草图(X)”或者在命令行输入:X,“回车”:

无效的选项关键字提示

命令行提示

为什么:

是因为新草图选项的全局关键字“CaoTu05”的首字母与草图的全部关键字“CaoTu”的首字母一致么?接下来我们对其中一个关键字修改,将“CaoTu05”修改为“XCaoTu05”试试。

optK.Keywords.Add("XCaoTu05", "XCaoTu05", "新草图(X)", true, true);

命令行输入及信息弹窗成功提示

那么我们试试把“新草图(X)”修改为“新草图(C)”试试:

optK.Keywords.Add("CaoTu05", "CaoTu05", "新草图(C)", true, true);

当关键字选项的加入顺序是这样时:

关键字加入顺序1

弹窗提示为:“新草图”

将关键字选项的加入顺序做一下修改:

关键字加入顺序2

弹窗提示为“草图”

PromptKeywordOptions加入关键字选项时要注意以下两个问题: 1、全局关键字名称中的首字母,要与选项显示括号中的简码保持一致 2、如果有简码重复或者关键字名字前序字符重复的情况,第一个加入选项序列的选项会覆盖掉后面的重复选项。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3