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

ADN Club => AutoCAD .NET API => Тема начата: trir от 13-09-2018, 08:27:06

Название: CommandMethod и модификаторы команд
Отправлено: trir от 13-09-2018, 08:27:06
Я создал команду, которая использует OpenFileDialog и теперь думаю о том, чтобы создать аналог с указанием пути в командной строке - если я просто добавлю "-" к названию, это будет работать? Или тут есть более хитрый механизм?
Название: Re: CommandMethod и модификаторы команд
Отправлено: Александр Ривилис от 13-09-2018, 08:31:51
Я создал команду, которая использует OpenFileDialog и теперь думаю о том, чтобы создать аналог с указанием пути в командной строке - если я просто добавлю "-" к названию, это будет работать? Или тут есть более хитрый механизм?
Для этого нужно создать отдельную команду.
Название: Re: CommandMethod и модификаторы команд
Отправлено: Александр Ривилис от 13-09-2018, 08:35:14
Есть еще вариант, с тем же именем команды, анализирующий системную переменную FILEDIA.
Название: Re: CommandMethod и модификаторы команд
Отправлено: trir от 13-09-2018, 08:53:05
не работает
Код - C# [Выбрать]
  1.         [CommandMethod("test")]
  2.         public void test1()
  3.         {
  4.             AppServ.Document acDoc = AppServ.Application.DocumentManager.MdiActiveDocument;
  5.             Database acCurDb = acDoc.Database;
  6.             Editor ed = acDoc.Editor;
  7.             ed.WriteMessage("\ntest1");
  8.         }
  9.  
  10.         [CommandMethod("-test")]
  11.         public void test2()
  12.         {
  13.             AppServ.Document acDoc = AppServ.Application.DocumentManager.MdiActiveDocument;
  14.             Database acCurDb = acDoc.Database;
  15.             Editor ed = acDoc.Editor;
  16.             ed.WriteMessage("\ntest2");
  17.         }
вообще команд не появилось
Название: Re: CommandMethod и модификаторы команд
Отправлено: Александр Ривилис от 13-09-2018, 09:27:44
Проверил:
Код - C# [Выбрать]
  1. using System;
  2. using Autodesk.AutoCAD.Runtime;
  3. using Autodesk.AutoCAD.ApplicationServices;
  4. using Autodesk.AutoCAD.DatabaseServices;
  5. using Autodesk.AutoCAD.Geometry;
  6. using GI = Autodesk.AutoCAD.GraphicsInterface;
  7. using Autodesk.AutoCAD.EditorInput;
  8. using System.Collections.Generic;
  9.  
  10. // This line is not mandatory, but improves loading performances
  11. [assembly: CommandClass(typeof(TestDrawJig.MyCommands))]
  12.  
  13. namespace TestDrawJig
  14. {
  15.   public class MyCommands
  16.   {
  17.     [CommandMethod("test")]
  18.     public void test1()
  19.     {
  20.       Document acDoc = Application.DocumentManager.MdiActiveDocument;
  21.       Database acCurDb = acDoc.Database;
  22.       Editor ed = acDoc.Editor;
  23.       ed.WriteMessage("\ntest1");
  24.     }
  25.  
  26.     [CommandMethod("-test")]
  27.     public void test2()
  28.     {
  29.       Document acDoc = Application.DocumentManager.MdiActiveDocument;
  30.       Database acCurDb = acDoc.Database;
  31.       Editor ed = acDoc.Editor;
  32.       ed.WriteMessage("\ntest2");
  33.     }
  34.   }
  35. }
  36.  

Результат:



Что не так?

P.S.: Сразу предупреждаю, что в русской локализации я тоже проверил - всё работает.
Название: Re: CommandMethod и модификаторы команд
Отправлено: trir от 13-09-2018, 09:40:51
упс, перепутал Debug и Release  :-[
Название: Re: CommandMethod и модификаторы команд
Отправлено: Александр Ривилис от 13-09-2018, 09:46:40
упс, перепутал Debug и Release  :-[
Думаешь у меня в этом были сомнения? ;)