Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Алексей (IdeaSoft) от 20-08-2015, 20:05:03

Название: Передать аргуметы в команде CommandMethod
Отправлено: Алексей (IdeaSoft) от 20-08-2015, 20:05:03
Подскажите! Понадобилось передать аргумент,
к примеру вещественное число, своей команде.
Я думаю, что есть такая возможность.
Мне раньше не было необходимости такое делать.
Код - vb.net [Выбрать]
  1. Imports CAD_RTM = Autodesk.AutoCAD.Runtime
  2. ...    
  3. <CAD_RTM.CommandMethod("MY_COMM")> _
  4.        Public Sub MY_COMM ()
  5.                   ...
  6.        End Sub
  7.  

Название: Re: Передать аргуметы в команде CommandMethod
Отправлено: Александр Ривилис от 20-08-2015, 20:38:18
Так передать аргументы нельзя. Объясни как ты собираешься вызывать команду. Наверняка найдётся альтернатива.
Название: Re: Передать аргуметы в команде CommandMethod
Отправлено: Алексей (IdeaSoft) от 20-08-2015, 21:14:49
Так передать аргументы нельзя. Объясни как ты собираешься вызывать команду. Наверняка найдётся альтернатива.

A я кажысь понял нужно будет делать в 2 этапа:
1) С командной строки пользователь набирает "MY_COMM" и нажимает Enter
2) А потом внутри тела подпрограммы "MY_COMM" я запрошу у AutoCAD вещественное число
Код - vb.net [Выбрать]
  1. Imports CAD_RTM = Autodesk.AutoCAD.Runtime
  2. <CAD_RTM.CommandMethod("MY_COMM")> _
  3.       Public Sub MY_COMM ()
  4.  
  5. ...
  6.        Dim pr_Res_Dbl As Autodesk.AutoCAD.EditorInput.PromptPointResult = _
  7.                     CAD_APS.Application.DocumentManager.MdiActiveDocument.Editor.GetDouble(...)
  8. ...
  9.  
  10.   End Sub
  11.  
  12.  
  13.  

Название: Re: Передать аргуметы в команде CommandMethod
Отправлено: Александр Ривилис от 20-08-2015, 21:43:06
Можно и так. А можно использовать атрибут <LispFunction> и тогда можно передавать аргументы. Например, как здесь: http://adndevblog.typepad.com/autocad/2012/08/lispfunction-examples-for-autolisp-to-net.html
Аргументы передаются в виде ResultBuffer и их может быть несколько и разных типов.