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

ADN Club => AutoCAD .NET API => Тема начата: AndONE от 27-10-2018, 13:14:11

Название: Не цепляется точка оснонова
Отправлено: AndONE от 27-10-2018, 13:14:11
Всем привет!
Помогите плиз, что делаю не так?
Настраиваю окружение под отладку плагина.
Если вкратце, то добавил к проекту acad.exe


Код - C# [Выбрать]
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. using Cad = Autodesk.AutoCAD.ApplicationServices.Application;
  8. using Ap = Autodesk.AutoCAD.ApplicationServices;
  9. using Db = Autodesk.AutoCAD.DatabaseServices;
  10. using Ed = Autodesk.AutoCAD.EditorInput;
  11. using Gm = Autodesk.AutoCAD.Geometry;
  12. using Rt = Autodesk.AutoCAD.Runtime;
  13. using System.Windows.Forms;
  14.  
  15.  
  16. namespace AutICAD
  17. {
  18.     public class Class1
  19.     {
  20.  
  21.         [Rt.CommandMethod("GOGO")]
  22.         public void telo()
  23.         {
  24.            
  25.         MessageBox.Show("Hello!");
  26.         Ap.Document doc = Cad.DocumentManager.MdiActiveDocument;
  27.         Db.Database db = doc.Database;
  28.            
  29.          }
  30.  
  31.      }
  32. }


Часть кода [Rt.CommandMethod("GOGO")] - срабатывает, появляется окно "Hello!", но вот точка останова не цепляется. (ожидаю, что при введение в командную строку автокада "GOGO" отладчик встанет на строчке MessageBox.Show("Hello!");)
Почему так? 

И второй вопрос. Допустим отладка налажена. Теперь предствоит долгое написание плагина. Это каждый раз нужно перезапускать автокад, чтобы плагин выгрузился и загрузить снова?
Посоветуйте оптимальное решение для стадии написания плагина.
Название: Re: Не цепляется точка оснонова
Отправлено: Александр Ривилис от 27-10-2018, 13:16:10
Приведи форматирование кода в соответствие с тем, что написано у меня в подписи и что написано в Правилах форума.
Название: Re: Не цепляется точка оснонова
Отправлено: AndONE от 27-10-2018, 13:21:57
Цитировать
author=Александр Ривилис
+

Точка останова на 25-й строке кода
Название: Re: Не цепляется точка оснонова
Отправлено: Александр Пекшев aka Modis от 27-10-2018, 14:20:32
Тыц (https://adndevblog.typepad.com/autocad/2016/05/debugging-autocad-2017-using-visual-studio-2015.html)
А вообще - неоднократно на форуме обсуждалось. Поищите
Название: Re: Не цепляется точка оснонова
Отправлено: Александр Пекшев aka Modis от 27-10-2018, 14:22:43
Это каждый раз нужно перезапускать автокад, чтобы плагин выгрузился и загрузить снова?
Именно так и придется. Существует конечно некое подобие AddinManager'а (как в Ревите), но я бы не советовал
Название: Re: Не цепляется точка оснонова
Отправлено: Александр Ривилис от 27-10-2018, 15:32:17
Тыц (https://adndevblog.typepad.com/autocad/2016/05/debugging-autocad-2017-using-visual-studio-2015.html)
А вообще - неоднократно на форуме обсуждалось. Поищите
У нас есть перевод этой статьи: Отладка AutoCAD 2017 с использованием Visual Studio 2015 (http://adn-cis.org/otladka-autocad-2017-s-ispolzovaniem-visual-studio-2015.html)
Название: Re: Не цепляется точка оснонова
Отправлено: Вильдар от 27-10-2018, 15:54:33
Это каждый раз нужно перезапускать автокад, чтобы плагин выгрузился и загрузить снова?
Моя поделка
https://github.com/vildar82/AcadAddinManager
там в релизах нужно скачать архив бандла и распаковать его в любую папку загрузок пакетов автокада, например в c:\ProgramData\Autodesk\ApplicationPlugins
На данный момент, знаю, что пользуются 3 человека, включая меня  ::)

При каждом обновлении плагина он копируется в темп и грузится в автокад и рефлексией запускается выбранный метод команды.
При этом старая версия не выгружается (нет способа).
Зависимости резолвятся из папки с плагином.
Название: Re: Не цепляется точка оснонова
Отправлено: AndONE от 27-10-2018, 20:09:46
У нас есть перевод этой статьи
Да, на русском поприятнее!

Тыц
А вообще - неоднократно на форуме обсуждалось. Поищите
Пришлось еще изрядно попригорать. При такой настройке, выставляя netфреймворк 3.5 - перестали узнаваться пространства имен Autodesk.
Пока разобрался - уже и вечерело.

Тем не менее отладка работает, всем спасибо!

Моя поделка
чуть позже посмотрю. В любом случае что-то надо придумывать. каждый раз загружать автокад - это слишком большая трата времени :(
Название: Re: Не цепляется точка оснонова
Отправлено: Александр Ривилис от 27-10-2018, 20:15:09
При такой настройке, выставляя netфреймворк 3.5 - перестали узнаваться пространства имен Autodesk.
Для какой версии AutoCAD .NET Framework 3.5?
Название: Re: Не цепляется точка оснонова
Отправлено: Александр Пекшев aka Modis от 27-10-2018, 21:03:37
каждый раз загружать автокад - это слишком большая трата времени
Это прямо пропорционально опыту написания плагинов) Можно написать целую новую команду, запустив автокад при этом один раз - при финальном тестировании ;)
Название: Re: Не цепляется точка оснонова
Отправлено: AndONE от 28-10-2018, 12:18:26
Для какой версии AutoCAD .NET Framework 3.5?
У меня 2017 стоит. Я просто где-то начитался, что нужно 3.5 ставить, возможно в книге Андея Бушмана. Но там, понятное дело, разговор идет о 2010-2012 автокаде.
Это прямо пропорционально опыту написания плагинов) Можно написать целую новую команду, запустив автокад при этом один раз - при финальном тестировании
Это в точку! Но пока опыта нет (есть только опыт работы через com, который вообще особо ничего общего не имеет с .net), буду набивать шишки)
Название: Re: Не цепляется точка оснонова
Отправлено: Александр Ривилис от 28-10-2018, 13:34:13
У меня 2017 стоит. Я просто где-то начитался, что нужно 3.5 ставить, возможно в книге Андея Бушмана. Но там, понятное дело, разговор идет о 2010-2012 автокаде.
Для AutoCAD 2017 нужен как минимум .NET Framework 4.6: http://adn-cis.org/forum/index.php?topic=8792.msg34379#msg34379