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

ADN Club => AutoCAD .NET API => Тема начата: Luca от 03-11-2019, 09:39:27

Название: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Luca от 03-11-2019, 09:39:27
Здравствуйте, Уважаемые форумчане.
Возник следующий вопрос:
В книге Полещука (стр. 198) есть такой фрагмент кода:
Код - C# [Выбрать]
  1. using cad = Autodesk.AutoCAD.ApplicationServices.Application;
  2.  
Если написать так, то VS показывает ошибку
(https://i.postimg.cc/CZw1bjYn/App.jpg) (https://postimg.cc/CZw1bjYn)
В официальной документации:
(https://i.postimg.cc/n997NvXc/App4.jpg) (https://postimg.cc/n997NvXc)
Смысл в том, что, если добавить
Код - C# [Выбрать]
  1. using Autodesk.AutoCAD.ApplicationServices.Core;
  2.  
то
Код - C# [Выбрать]
  1. Document acDoc = Application.DocumentManager.MdiActiveDocument;
  2.  
проходит без ошибок, а если просто (без *.Core)
Код - C# [Выбрать]
  1. using Autodesk.AutoCAD.ApplicationServices;
  2.  
то нет такого в пространстве имен
(https://i.postimg.cc/dkwwbvD7/App3.jpg) (https://postimg.cc/dkwwbvD7)
в чем проблема и как правильно?
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Александр Пекшев aka Modis от 03-11-2019, 09:42:28
Потому как с 2013 версии автокада часть этого пространства была перенесена в Autodesk.AutoCAD.ApplicationServices.Core.Application. Вот тема есть (https://forums.autodesk.com/t5/net/what-s-difference-between-applicationservices-amp/td-p/7335481)
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Luca от 03-11-2019, 10:22:24
из этой ссылки не очень понятно к чему всё это и там ничего не сказано о том, что
Цитировать
часть этого пространства была перенесена
или я не заметил.
Чтобы не "закапываться" в глубину, скажите, можно просто использовать пространство  Autodesk.AutoCAD.ApplicationServices.Core для доступа к объекту Application?
И получается, что официальная документация не актуальна?
И код из официальной документации
(https://i.postimg.cc/R3Lp2kWh/App5.jpg) (https://postimg.cc/R3Lp2kWh)
просто не рабочий?
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Александр Пекшев aka Modis от 03-11-2019, 10:39:03
Да, если пишите под 2013 и выше, то используйте Autodesk.AutoCAD.ApplicationServices.Core
Если интересно зачем было произведено такое разделение, то можете почитать тут (https://through-the-interface.typepad.com/through_the_interface/2012/02/the-autocad-2013-core-console.html) и тут (https://www.keanw.com/2012/03/migrating-net-applications-to-work-with-autocad-2013.html)
Если кратко, то это разделение было для работы с консольной версией автокада (Core Console), т.е. без графического представления. Данная технология в итоге используется в Forge.

И что у вас за официальная документация, которая неверная?
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Luca от 03-11-2019, 10:42:26
И что у вас за официальная документация, которая неверная?
Официальная документация вроде AutoCAD 2020
https://help.autodesk.com/view/OARX/2020/ENU/?guid=GUID-034504F8-59F8-4D6D-8777-3EF8A9C251DF (https://help.autodesk.com/view/OARX/2020/ENU/?guid=GUID-034504F8-59F8-4D6D-8777-3EF8A9C251DF)

Да, если пишите под 2013 и выше, то используйте Autodesk.AutoCAD.ApplicationServices.Core
Только под AC 2020 и только под х64
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Александр Пекшев aka Modis от 03-11-2019, 10:44:01
Официальная документация вроде AutoCAD 2020
Да там видимо код копипастят со старых версий справки, не особо запариваясь ))
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Luca от 03-11-2019, 10:48:02
Да там видимо код копипастят со старых версий справки, не особо запариваясь ))
а потом человеку, который первый раз пишет программу на C#, первый раз использует МЫ и Autodesk API "ни в зуб ногой" поди и разберись самостоятельно что и как.

Какую-нибудь обучалку бы на youtube, типа быстрый старт и прочее. У Дмитрия Загорулькина вроде есть видео, но я там ничего не слышу, а покупать усилитель "жаба давит" ))
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Александр Пекшев aka Modis от 03-11-2019, 11:46:16
У Дмитрия Загорулькина вроде есть видео, но я там ничего не слышу, а покупать усилитель "жаба давит" ))
Savefrom (https://ru.savefrom.net/) позволяет скачать видел, а VLC Media Player (https://www.videolan.org/vlc/index.ru.html) позволяет усиливать звук. Все бесплатно )
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Дмитрий Загорулькин от 03-11-2019, 14:03:17
И получается, что официальная документация не актуальна?
а потом человеку, который первый раз пишет программу на C#, первый раз использует МЫ и Autodesk API "ни в зуб ногой" поди и разберись самостоятельно что и как.
Использую Application из Autodesk.AutoCAD.ApplicationServices (без Core) для всех своих приложений с версии AutoCAD 2012 и до нынешней 2020. Приложения компилируются и выполняются без ошибок. В чём проблема?
Какую-нибудь обучалку бы на youtube, типа быстрый старт и прочее.
Есть такое, от Autodesk. Только оно для VB.NET и на английском с индийским акцентом. Гугл в помощь по словам Autodesk DevHelp.
Хотя, вроде как, был даже перевод на русский от Марата Миргалеева. В общем, кто ищет - тот всегда найдёт.
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Luca от 03-11-2019, 14:43:26
Использую Application из Autodesk.AutoCAD.ApplicationServices (без Core) для всех своих приложений с версии AutoCAD 2012 и до нынешней 2020. Приложения компилируются и выполняются без ошибок. В чём проблема?
проблема в том, что при закомментированном using Autodesk.AutoCAD.ApplicationServices.Core; теряется Application
(https://i.postimg.cc/v4PzXxGD/App6.jpg) (https://postimg.cc/v4PzXxGD)
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Дмитрий Загорулькин от 03-11-2019, 15:01:39
Надо просто добавить ссылку на AcMgd.dll.
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Александр Ривилис от 03-11-2019, 15:03:40
Luca,
Ты добавил обе сборки accoremgd.dll и acmgd.dll в проект?
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Luca от 03-11-2019, 15:07:06
Надо просто добавить ссылку на AcMgd.dll.
если добавить ссылку на AcMgd.dll, то, как я понимаю, нафиг не надо было Install-Package AutoCAD.NET.Core -Version 23.1.0 делать - верно?
можно было просто ссылки добавить и всё.
тогда вопрос: а куда девается Application из Autodesk.AutoCAD.ApplicationServices при использовании AutoCAD.NET.Core -Version 23.1.0?
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Luca от 03-11-2019, 15:08:59
Ты добавил обе сборки accoremgd.dll и acmgd.dll в проект?
чет я не понимаю ))
я же добавил пакет AutoCAD.NET.Core -Version 23.1.0
ещё и accoremgd.dll и acmgd.dll добавлять надо?
а как тогда у меня программа работает?? ))
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Дмитрий Загорулькин от 03-11-2019, 15:09:21
Спроси у разработчиков этого пакета. Я этой приблудой не пользуюсь.
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Александр Пекшев aka Modis от 03-11-2019, 15:10:20
Спроси у разработчиков этого пакета
Autodesk разработчики этого пакета ))

Вообще там три пакета так-то
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Luca от 03-11-2019, 15:10:29
Спроси у разработчиков этого пакета. Я этой приблудой не пользуюсь.
вот и ответ-если Вы ей не пользуетесь, то это означает исключающее или.
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Luca от 03-11-2019, 15:12:23
Вообще там три пакета так-то
все три может надо устанавливать? )) или может, вообще, не заморачиваться, а пойти по пути Дмитрия?
Ещё такой вопрос:
у Полещука я читал что-то про какие-то файлы для отладки...
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Дмитрий Загорулькин от 03-11-2019, 15:14:23
Autodesk разработчики этого пакета ))
Это намёк на то, что от них ответа не дождёшься? :)
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Александр Пекшев aka Modis от 03-11-2019, 15:14:52
у Полещука я читал что-то про какие-то файлы для отладки
Я бы Вам посоветовал изучить для начала C#, VS, Net Framework, SOLID, ООП... Хотя бы немного. Такие вопросы к автокаду не относятся ))

Файлы отладки (файлы с расширением pdb) - это файлы, которые позволяют получать больше информации при отладке вашей программы
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Александр Ривилис от 03-11-2019, 15:20:10
нафиг не надо было Install-Package AutoCAD.NET.Core -Version 23.1.0 делать - верно?
А зачем ты его инсталлировал? Ты думал, что делаешь или просто решил поэкспериментировать? Этот пакет для работы с AcCoreConsole и Forge, когда самого AutoCAD нет. Ты же пишешь приложения для AutoCAD. Так что просто добавляй три сборки к проекту (это для начала - потом могут понадобится и другие): acdbmgd.dll, acmgd.dll, accoremgd.dll И не забывай выставлять для них CopyLocal в False.
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Luca от 03-11-2019, 15:28:19
А зачем ты его инсталлировал? Ты думал, что делаешь или просто решил поэкспериментировать.
так вот в этой ветке https://adn-cis.org/forum/index.php?topic=9431.0 (https://adn-cis.org/forum/index.php?topic=9431.0) мне посоветовали )
я полагал, что это альтернатива .NET API Wizard
Так что просто добавляй три сборки к проекту (это для начала - потом могут понадобится и другие): acdbmgd.dll, acmgd.dll, accoremgd.dll И не забывай выставлять для них CopyLocal в False.
хорошо, попробую.
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Александр Пекшев aka Modis от 03-11-2019, 15:30:59
Вполне нормально можно пользоваться этим пакетом. Просто одного его не достаточно и нужно ставить еще другой.
Пакеты больше подходят для "переносимости" проекта, чтобы открыв его на другой машине можно было сразу собрать проект. Например, когда тимлид захочет сделать кодревью дома вечером =)
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Luca от 03-11-2019, 15:34:03
Пакеты больше подходят для "переносимости" проекта, чтобы открыв его на другой машине можно было сразу собрать проект. Например, когда тимлид захочет сделать кодревью дома вечером =)
в данном случае мне надо просто одному упростить себе жизнь(уйти от дикой рутины)  и стать богаче ))

Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Александр Ривилис от 03-11-2019, 15:39:09
так вот в этой ветке https://adn-cis.org/forum/index.php?topic=9431.0 мне посоветовали )
Тебе не этот пакет советовали. Ты выбрал тот, который тебе меньше всего подходит.
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Luca от 03-11-2019, 15:42:38
Тебе не этот пакет советовали. Ты выбрал тот, который тебе меньше всего подходит.
буду .dll-ками пользоваться
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Luca от 04-11-2019, 09:51:18
Снова проблема:
добавил 3 dll, которые рекомендовали
ввел код из примера https://adn-cis.org/kak-najti-vse-vstavki-dinamicheskogo-bloka.html (https://adn-cis.org/kak-najti-vse-vstavki-dinamicheskogo-bloka.html), который рекомендовал А. Ривилис в другой ветке и
(https://i.postimg.cc/ns3rK65B/Editor-1.jpg) (https://postimg.cc/ns3rK65B)
почему-то Editor не видит...
Название: Re: Вопросы по Autodesk.AutoCAD.ApplicationServices Namespace
Отправлено: Александр Ривилис от 04-11-2019, 09:53:43
почему-то Editor не видит...
Потому что не добавил:
Код - C# [Выбрать]
  1. using Autodesk.AutoCAD.EditorInput;