C#在AutoCAD中获取关键字输入(PromptKeywordOptions) |
您所在的位置:网站首页 › autocad输入数字无效 › C#在AutoCAD中获取关键字输入(PromptKeywordOptions) |
使用“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 |