Передача аргументов в.NET-определенные команды
Мне нужно написать команду в командной строке на Autocad 2000i, и я хочу, чтобы autocad запрашивал параметр. Тогда моя программа vb.net будет действовать на основе полученного параметра.
В основном я думаю, что мое решение все здесь: http://through-the-interface.typepad.com/through_the_interface/2006/09/passing_argumen.html
Проблема в том, что я не могу найти ссылку на используемое там пространство имен Autodesk.AutoCAD.EditorInput.
Что мне здесь не хватает? Разве EditorInput еще не существовал в Autocad 2000i?
Большое спасибо за ответ.
У меня есть проект vb.net, который добавляет панель инструментов в AutoCAD. Я хочу, чтобы пользователь мог изменить выбранное значение комбо на моей панели инструментов, написав commnad и параметр.
Как я могу использовать ваш метод в моем проекте? Я помещаю файл DVB в мой проект? Можно ли интегрировать файл vba в мой проект vb.net?
Заранее большое спасибо.
2 ответа
.Net API не существовало для AutoCAD еще в 2000 году. Все было сделано с помощью LISP или VBA или их комбинации. Вот краткое объяснение того, что нужно сделать.
только для VBA:
Откройте Инструменты> Макрос> Редактор Visual Basic (alt + F11)
Введите свой код:
Sub Test()
Dim str As String
str = InputBox("Enter radius:")
MsgBox str
End Sub
Тип "-vbarun"
в командной строке (без кавычек)
Тип "Thisdrawing.Test"
(Modulename.functionname)
VBA + Lisp Way -(мой предпочтительный метод)
Введите свой код в редакторе, как указано выше. Сохраните файл VBA (формат.dvb).. предположим, что он находится в D:\Macros
папка с именем MyDvb.dvb.
Создайте новый файл Lisp (откройте блокнот и введите приведенный ниже код и сохраните как расширение.lsp) Этот файл lisp будет использоваться для вызова всех макросов VBA.
(defun c:testcommand()
(command "vbarun" "D:/Macros/MyDvb.DVB!ThisDrawing.Test")
)
Теперь загрузите этот список за один раз, набрав "ap"
в командной строке. Это помогает нам сохранять команды доступными для сеанса.
Тип "testcommand"
и вы увидите ваш код выполненным
Вот как это делается с помощью.NET C#
// Попросить пользователя выбрать папку
PromptResult res = ed.GetString("\nEnter the path of the folder: ");
if (res.Status == PromptStatus.OK)
{
string[] filepaths = Directory.GetFiles(res.StringResult, "*.dwg", SearchOption.AllDirectories);
}
Дайте знать, если у вас появятся вопросы.