Autocad .NET - 展开命令行
Autocad .NET - expand command line
我正在开发一个 Autocad .NET 插件(.dll
通过 NETLOAD
加载),我经常使用 Document.Editor
对象来获取用户输入,例如字符串、数字、点和实体。
我希望我的一些提示可以向用户显示多个选项 select(与原生 -DWGUNITS
命令完全一样)。
显示提示和选项非常好(我用 Editor.GetInteger
来做,传递带有选项的多行消息,有时还有一两个关键字)。
但我不知道如何展开命令栏使其显示所有选项(否则用户必须手动展开它才能看到列表)
所以,这是我目前的命令(蓝色的私人内容):
选项仅限于这三行(更改 CLIPROMPTLINES
似乎不是最佳选择,但如果您知道如何使用 .NET
,这是一个好的开始)。
.
这就是我想要的:
很简单,这个选项在Autodesk.Autocad.ApplicationServices.Application.DisplayTextScreen
:
using Autodesk.Autocad.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
private int AskUser(IEnumerable<string> userOptions)
{
Document document= Application.DocumentManager.MdiActiveDocument;
Editor editor = document.Editor;
//Autocad's setting before you change
bool originalSetting = CadApp.DisplayTextScreen;
string message = "Available options:\n";
message += string.join("\n",
userOptions.Select((opt,i)=>i.ToString() + ": " + opt));
message += "\nChoose an option"
PromptIntegerOptions promptOptions = new PromptIntegerOptions(message);
promptOptions.LowerLimit = 0;
promptOptions.UpperLimit = userOptions.Count - 1;
//display full command bar
Application.DisplayTextScreen = true;
var result = editor.GetInteger(promptOptions);
int selection;
if (result.Status == PromptStatus.OK)
selection = result.Value;
else
selection = -1;
//restore original setting
Application.DisplayTextScreen = originalSetting;
return selection;
}
我正在开发一个 Autocad .NET 插件(.dll
通过 NETLOAD
加载),我经常使用 Document.Editor
对象来获取用户输入,例如字符串、数字、点和实体。
我希望我的一些提示可以向用户显示多个选项 select(与原生 -DWGUNITS
命令完全一样)。
显示提示和选项非常好(我用 Editor.GetInteger
来做,传递带有选项的多行消息,有时还有一两个关键字)。
但我不知道如何展开命令栏使其显示所有选项(否则用户必须手动展开它才能看到列表)
所以,这是我目前的命令(蓝色的私人内容):
选项仅限于这三行(更改 CLIPROMPTLINES
似乎不是最佳选择,但如果您知道如何使用 .NET
,这是一个好的开始)。
.
这就是我想要的:
很简单,这个选项在Autodesk.Autocad.ApplicationServices.Application.DisplayTextScreen
:
using Autodesk.Autocad.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
private int AskUser(IEnumerable<string> userOptions)
{
Document document= Application.DocumentManager.MdiActiveDocument;
Editor editor = document.Editor;
//Autocad's setting before you change
bool originalSetting = CadApp.DisplayTextScreen;
string message = "Available options:\n";
message += string.join("\n",
userOptions.Select((opt,i)=>i.ToString() + ": " + opt));
message += "\nChoose an option"
PromptIntegerOptions promptOptions = new PromptIntegerOptions(message);
promptOptions.LowerLimit = 0;
promptOptions.UpperLimit = userOptions.Count - 1;
//display full command bar
Application.DisplayTextScreen = true;
var result = editor.GetInteger(promptOptions);
int selection;
if (result.Status == PromptStatus.OK)
selection = result.Value;
else
selection = -1;
//restore original setting
Application.DisplayTextScreen = originalSetting;
return selection;
}