ObjectARX 2014

Автор Тема: ObjectARX 2014  (Прочитано 28511 раз)

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

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #15 : 22-05-2014, 12:11:16 »
Да, но он не работает...
Я уже понял, что скинул Андрей, и что написал я, это одно и тоже...
Код - C# [Выбрать]
  1. using Ap = Autodesk.AutoCAD.ApplicationServices;
  2. ...
  3. AcadDocument acadDoc = Ap.DocumentExtension.GetAcadDocument(doc) as AcadDocument;;// doc is a Document instance
Цитировать
Public ReadOnly Property ThisDrawing As AcadDocument
        Get
            Return Application.DocumentManager.MdiActiveDocument.GetAcadDocument()
        End Get
    End Property
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ObjectARX 2014
« Ответ #16 : 22-05-2014, 12:11:56 »
Второй код должен работать.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #17 : 22-05-2014, 12:15:51 »
В коде должны быть такие юзинги:
Код - C# [Выбрать]
  1. using Autodesk.AutoCAD.Interop.Common;
  2. using Autodesk.AutoCAD.Interop;
  3. using Autodesk.AutoCAD.DataExtraction;
  4.  
не помню, какое слово в VB.NET используется вместо using, но надеюсь, что это помнит Agens и справится с такой заменой. Скорее всего что-то из указанного у него отсутствует и при дописании всё должно заработать (при условии подключенности нужных референсов, указанных ранее в теме).

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #18 : 22-05-2014, 12:17:56 »
Вот мой код. Без (ThisDrawing) - подчеркивает :) Уж простите, что я так примитивно :)
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #19 : 22-05-2014, 12:18:51 »
если для нэймспейсов у автора назначены псевдонимы, то вызывать методы расширения на объектах не получится и нужно вызывать их как статические методы. Об этом я так же писал выше и показывал в коде.

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ObjectARX 2014
« Ответ #20 : 22-05-2014, 12:19:34 »
1. Написана полная ерунда.
2. Код вставляй текстом, а не картинкой.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #21 : 22-05-2014, 12:19:52 »
А где в коде явное приведение к нужному типу? Кроме того, написана муть: бесконечная вложенная рекурсия, насколько я вижу.

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #22 : 22-05-2014, 12:21:26 »
1. Написана полная ерунда.
Как ерунда, если я все делал по ролику, сделанному Августом Гонсаленсом или как его там :)
2. Код вставляй текстом, а не картинкой.
Вставил картинкой, чтобы было видно, что замечание есть к коду...
Imports Autodesk.AutoCAD.Interop
Imports Autodesk.AutoCAD.Interop.Common

Public Class AGACTools
    Public ReadOnly Property ThisDrawing As AcadDocument
        Get
            Return Autodesk.AutoCAD.ApplicationServices.DocumentExtension.GetAcadDocument(ThisDrawing)
        End Get
End Property
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ObjectARX 2014
« Ответ #23 : 22-05-2014, 12:24:27 »
Нужны эти импорты:
Код - vb.net [Выбрать]
  1. Imports Autodesk.AutoCAD.Interop
  2. Imports Autodesk.AutoCAD.Interop.Common
  3. Imports Autodesk.AutoCAD.ApplicationServices
  4. Imports Autodesk.AutoCAD.ApplicationServices.DocumentExtension
И код для ThisDrawing вотрой из первого сообщения.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #24 : 22-05-2014, 12:24:34 »
Насколько я вижу, в обозначенном  выше коде свойства автор вызывает метод, передавая в качестве аргумента это же самое свойство. Т.е. цикл бесконечен.

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #25 : 22-05-2014, 12:26:06 »
Андрей, спец. для Вас выкладываю код, сделанный Автодеском, как пример миграции из VBA в VB.NET.
--
А вот тут не моя пробема описана? http://forums.autodesk.com/t5/NET/Migration-VBA-to-VBdotNet-2012-Autocad-2013/td-p/4338969
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ObjectARX 2014
« Ответ #26 : 22-05-2014, 12:28:51 »
Андрей, спец. для Вас выкладываю код, сделанный Автодеском :)
Где этот код?
Пока изучай: http://adndevblog.typepad.com/autocad/2012/05/extension-methods-in-autocad-2013.html
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ObjectARX 2014
« Ответ #28 : 22-05-2014, 12:30:37 »
0-HelloWorld.rar
Этот код для версии 2010. В 2013 произошло разделенние и глобальная "перетруска".
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #29 : 22-05-2014, 12:31:36 »
Ну я так и понял... Я изучал по http://through-the-interface.typepad.com/through_the_interface/2009/04/devtv-autocad-vba-to-net-migration-basics.html.
Спс. за ссылку, Александр.
Есть что-то подобное под 2014 на русском?
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020