Не отображается созданная команда

Автор Тема: Не отображается созданная команда  (Прочитано 24508 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн ZombiyАвтор темы

  • ADN OPEN
  • Сообщений: 20
  • Карма: 0
Здравствуйте! Начал разбираться с созданием собственных команд. Создал библиотеку классов, добавил ее через NETLOAD в автокад, метод Initialize() срабатывает (выводится соответствующее сообщение), а вот саму команду вызвать не могу, автокад ее не видит. Что еще необходимо сделать, что бы увидеть мою команду в списке команд?

   
Код - C# [Выбрать]
  1. public class Commands : IExtensionApplication
  2.     {
  3.         // функция инициализации (выполняется при загрузке плагина)
  4.         public void Initialize()
  5.         {
  6.             MessageBox.Show("Hello!");
  7.         }
  8.         // функция, выполняемая при выгрузке плагина
  9.         public void Terminate()
  10.         {
  11.             MessageBox.Show("Goodbye!");
  12.         }
  13.         // эта функция будет вызываться при выполнении в AutoCAD команды «TestCommand»
  14.         [CommandMethod("TestCommand")]
  15.         public void MyCommand()
  16.         {
  17.             MessageBox.Show("Habr!");
  18.             //Editor ed = acad.Application.DocumentManager.MdiActiveDocument.Editor;
  19.             //ed.WriteMessage("Hello World");
  20.         }
  21.     }
« Последнее редактирование: 10-03-2016, 15:15:48 от Александр Ривилис »

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Не отображается созданная команда
« Ответ #1 : 10-03-2016, 15:12:51 »
Добавьте static:
public static void MyCommand()

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Не отображается созданная команда
« Ответ #2 : 10-03-2016, 15:15:14 »
Zombiy
Приветствую на форуме! Обрати внимание (у меня в подписи) как следует форматировать код у нас на форуме.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Re: Не отображается созданная команда
« Ответ #3 : 10-03-2016, 15:15:35 »
добавь перед namespace
Код - C# [Выбрать]
  1. [assembly: CommandClass(typeof(YouNameSpace.Commands))]

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Не отображается созданная команда
« Ответ #4 : 10-03-2016, 15:16:38 »
добавь перед namespace
Код - C# [Выбрать]
  1. [assembly: CommandClass(typeof(YouNameSpace.Commands))]
Лично я такую штуку ни разу не делал ))

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Re: Не отображается созданная команда
« Ответ #5 : 10-03-2016, 15:22:01 »
Лично я такую штуку ни разу не делал ))
Да, у меня и без этого работет, если конечно static класс. Но где-то читал, что с этим Автокад быстрей найдет команды, поэтом у леплю во всех проектах. И еще вот это для класса инициализации
Код - C# [Выбрать]
  1. [assembly: ExtensionApplication(typeof(пространствоимен.классинициализации))]

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Не отображается созданная команда
« Ответ #6 : 10-03-2016, 15:22:14 »
Лично я такую штуку ни разу не делал ))
Можно не делать. Главное, чтобы если такая строка есть, чтобы она ссылалась на правильный класс.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Не отображается созданная команда
« Ответ #7 : 10-03-2016, 15:22:56 »
Какой интересный ответ помечен как решение  ;D

Оффлайн ZombiyАвтор темы

  • ADN OPEN
  • Сообщений: 20
  • Карма: 0
Re: Не отображается созданная команда
« Ответ #8 : 10-03-2016, 15:26:30 »
переделал вот так:
Код - C# [Выбрать]
  1. [assembly: CommandClass(typeof(TestLibruaryforAutocad.Commands))]
  2. namespace TestLibruaryforAutocad
  3. {
  4.     public class Commands : IExtensionApplication
  5.     {
  6.      
  7.         public void Initialize()
  8.         {
  9.             MessageBox.Show("Hello!");
  10.         }
  11.      
  12.         public void Terminate()
  13.         {
  14.             MessageBox.Show("Goodbye!");
  15.         }
  16.        
  17.         [CommandMethod("TestCommand")]
  18.         public static void MyCommand()
  19.         {
  20.             MessageBox.Show("Habr!");
  21.            
  22.         }
  23.     }
  24. }
Перезагрузил все в автокад, все равно не видит
Код - C# [Выбрать]
  1. [assembly: CommandClass(typeof(TestLibruaryforAutocad.Commands))]
  2. namespace TestLibruaryforAutocad
  3. {
  4.     public static class Commands
  5.     {
  6.  
  7.         public static void Initialize()
  8.         {
  9.             MessageBox.Show("Hello!");
  10.         }
  11.  
  12.         public static void Terminate()
  13.         {
  14.             MessageBox.Show("Goodbye!");
  15.         }
  16.        
  17.         [CommandMethod("TestCommand")]
  18.         public static void MyCommand()
  19.         {
  20.             MessageBox.Show("Habr!");
  21.            
  22.         }
  23.     }
  24. }
и вот так тоже
« Последнее редактирование: 10-03-2016, 16:02:08 от Александр Ривилис »

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Re: Не отображается созданная команда
« Ответ #9 : 10-03-2016, 15:35:13 »
del

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Не отображается созданная команда
« Ответ #10 : 10-03-2016, 15:35:22 »
Лично у меня работает ваш кода из топика. Значит проблема не в коде

Оффлайн ZombiyАвтор темы

  • ADN OPEN
  • Сообщений: 20
  • Карма: 0
Re: Не отображается созданная команда
« Ответ #11 : 10-03-2016, 15:37:19 »
все равно не видит
ну а static-то где ж ? 
переделал весь класс как static, не помогло

Оффлайн ZombiyАвтор темы

  • ADN OPEN
  • Сообщений: 20
  • Карма: 0
Re: Не отображается созданная команда
« Ответ #12 : 10-03-2016, 15:43:45 »
Так! Я работал в 2015 автокаде, и проверял ее там же. Сейчас проверил ее же (начальную версию) на 2013 и все получилось! Теперь тогда изменим вопрос, что надо сделать, что бы 2015 тоже ее видел, в чем может быть проблема?

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Не отображается созданная команда
« Ответ #13 : 10-03-2016, 15:47:06 »
- Версия Net framework
- Изменения acad.exe.config
- Значение false в CopyLocal для ссылок на библиотеки автокада

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Не отображается созданная команда
« Ответ #14 : 10-03-2016, 15:49:10 »
И забыл еще добавить - "Доверительная зона" или как там ее  :D