ObjectARX 2014

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

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

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
ObjectARX 2014
« : 22-05-2014, 11:18:56 »
Подскажте знатоки про ObjectARX 2014.
Скопировал из 2012 версии
Цитировать
    Public ReadOnly Property ThisDrawing() As AcadDocument
        Get
            Return Autodesk.AutoCAD.ApplicationServices.Application.
                _DocumentManager.MdiActiveDocument.AcadDocument
        End Get
    End Property
Вылетает ошибка, что-то поменялось в 2014?
---
Вот "нарыл":
Цитировать
I was struggling wit this too. You have to add references from your autocad program folder (X:\Program files\Autodesk\Autocad 2014\). Find Autodesk.AutoCAD.Interop.dll and Autodesk.AutoCAD.Interop.Common.dll . After that, magically appeared for me, but see if you are missing from ObjectARX2014 or 2013 folder and if so then add the following: AcCoreMgd.dll ; AcDx.dll. Then you can use the following:
Цитировать
Code:
Public ReadOnly Property ThisDrawing As AcadDocument
        Get
            Return Application.DocumentManager.MdiActiveDocument.GetAcadDocument()
        End Get
    End Property
но хотелось бы услышать тут и на русском :)
« Последнее редактирование: 22-05-2014, 11:29:40 от Agens »
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #1 : 22-05-2014, 11:23:23 »
вылетает куда? если в форточку, то это к врачам.

Даю подсказку: ошибка, как правило, о чём-то матерится текстом...

Не следует забывать, что API меняется от версии к версии. Например, часть методов выносится в отдельные статические классы: некоторые методы, ранее присутствовавшие в Document вынесены в статический класс DocumentExtension:
Код - C# [Выбрать]
  1. namespace Autodesk.AutoCAD.ApplicationServices {
  2.   public static class DocumentExtension {
  3.     public static System.Drawing.Bitmap CapturePreviewImage(this Document doc, uint width, uint height);
  4.     public static void CloseAndDiscard(this Document doc);
  5.     public static void CloseAndSave(this Document doc, string fileName);
  6.     public static Document FromAcadDocument(object acadDocument);
  7.     public static object GetAcadDocument(this Document doc);
  8.     public static StatusBar GetStatusBar(this Document doc);
  9.   }
  10. }
Из этого следует, что если у тебе нэймспейсы объявлены как-то так:
Код - C# [Выбрать]
  1. using Ap = Autodesk.AutoCAD.ApplicationServices;
  2.  
то для того, чтобы ты смог прописать нечто подобное:
Код - C# [Выбрать]
  1. doc.CloseAndSave(file_name); // doc is a Document instance
тебе нужно добавить следующий юзинг:
Код - C# [Выбрать]
  1. using Autodesk.AutoCAD.ApplicationServices;
В противном случае, тебе придётся использовать такой вариант вызова:
Код - C# [Выбрать]
  1. Ap.DocumentExtension.CloseAndSave(doc, file_name); // doc is a Document instance

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #2 : 22-05-2014, 11:31:05 »
Андрей, я понимаю, что для Вас это все просто. Я не программист и еще не до конца все понимаю.
Может лучше кинете готовый метод и какие библиотеки подключать? Спасибо.
У меня получилось, но с возможностью ошибки сл. код:
Цитировать
    Public ReadOnly Property ThisDrawing As AcadDocument
        Get
            Return Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
        End Get
    End Property
---
Я не пишу на С#, я пользуюсь VB.NET, C# для меня темный лес :)
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #3 : 22-05-2014, 11:32:03 »
я выше откорректировал свой ответ, приведя пример.

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #4 : 22-05-2014, 11:38:32 »
Я не пишу на С#, я пользуюсь VB.NET, C# для меня темный лес
Обозначенный мною выше код достаточно прост. Я думаю, что и без знания C# его можно понять. Если что-то не ясно, то поясню. Касательно VB.NET: когда-то я писал на VBA, но после C# для меня VBA\VB[.NET] напоминает клинопись гоблинов, которую даже читать больно. Выбирая, на что переходить с VBA - на VB.NET или на C#, я выбрал C# и не разу ни пожалел об этом. Наоборот, ужасаюсь, как меня в прошлом угораздило вляпаться в VBA... Синтаксис C#, на самом деле достаточно просто и легок в освоении.

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #5 : 22-05-2014, 11:43:07 »
Может быть. Но это не моя осноная работа. Пришло время считать спецификацию, а макрос, написанные для 2012, не работает на 2014 автокаде.
Нужно быстро что-то поменять. Хотелось бы просто вставить кусок кода с методом получения ThisDrawing и забыть :)
---
Неужели все для Автодеска все пишут только русские, потому что ответы на англоязыных форумах только от них :)
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ObjectARX 2014
« Ответ #6 : 22-05-2014, 11:45:17 »
Вылетает ошибка, что-то поменялось в 2014?
Да. И довольно много.
P.S.: ObjectARX - это чистый C++ без использования .NET (C#/VB.NET). Ты же пользуешься не ObjectARX, а AutoCAD .NET API. В будущем постарайся их не путать.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #7 : 22-05-2014, 11:47:23 »
Поменялось много, а найти ничего нельзя... Надо откатываться на 2010 автокад :)
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #8 : 22-05-2014, 11:51:49 »
ObjectARX - это чистый C++ без использования .NET (C#/VB.NET).
Несмотря на то, что Автодеск везде усиленно пишет об обратном:
Цитировать
The ObjectARX® programming environment provides object-oriented C++, C#, and VB .NET application programming interfaces for developers to use, customize, and extend AutoCAD® software and AutoCAD-based products, such as AutoCAD® Architecture, AutoCAD® Mechanical, and AutoCAD® Civil 3D® software. A version of ObjectARX for AutoCAD® for Mac® software is also available, though not all APIs are available in the Mac version.

Источник: http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=773204

Дополнительно в п.4 здесь: http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=773128

The following publications are included with the ObjectARX SDK:
- Managed Class Reference
- ObjectARX Developer’s Guide
- ObjectARX Reference
- Application Interoperability Guidelines
- ObjectARX 64-bit Migration Guide
Links to other valuable developer reference materials are listed at www.autodesk.com/developautocad.
Т.о. на сегодняшний день Autodesk вносит существенную путанницу, заявляя, что под словом "ObjectARX" подразумевает не только C++, но и .NET языки (возможно, что сейчас к этому набору они относят и JavaScript, хотя в этом я пока не уверен). Хотя на практике всё с точностью до наоборот.

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #9 : 22-05-2014, 11:55:59 »
Ребята, я все понимаю. Опуститесь пожалуйста на землю :)
Как для 2014 автокада и VB.NET получить свойство ThisDrawing, какие библиотеки подлючить для 64битной платформы?
Какой Framework ставить в проекте?
Спасибо.
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ObjectARX 2014
« Ответ #10 : 22-05-2014, 12:00:11 »
Какой Framework ставить в проекте?
Желательно 4.0
какие библиотеки подлючить для 64битной платформы?
AcMgd.dll
AcDbMgd.dll
AcCoreMgd.dll
Autodesk.AutoCAD.Interop.dll
Autodesk.AutoCAD.Interop.Common.dll
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #11 : 22-05-2014, 12:01:44 »
Версия Студии имеет значение? У меня 2012.
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ObjectARX 2014
« Ответ #12 : 22-05-2014, 12:03:36 »
Версия Студии имеет значение? У меня 2013.
Для кода значения не имеет. Но для сведения сам AutoCAD 2014 написан на VS2010 и VS2012.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #13 : 22-05-2014, 12:06:14 »
Я, блин, выше кому код показывал? Внимательней посмотри на 7-ю строчку кода. Т.е. тебе нужно писать так:
Код - C# [Выбрать]
  1. using Ap = Autodesk.AutoCAD.ApplicationServices;
  2. ...
  3. AcadDocument acadDoc = Ap.DocumentExtension.GetAcadDocument(doc) as AcadDocument;;// doc is a Document instance
Не ленись и будь внимательней...

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ObjectARX 2014
« Ответ #14 : 22-05-2014, 12:07:29 »
Андрей спокойнее. Agens тебе объяснил, что для него C# - китайская грамота.
Код на VB.NET который ему нужен для ThisDrawing им же приведен в первом сообщении.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн 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
  • *****
  • Сообщений: 13829
  • Карма: 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
  • *****
  • Сообщений: 13829
  • Карма: 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
  • *****
  • Сообщений: 13829
  • Карма: 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
  • *****
  • Сообщений: 13829
  • Карма: 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
  • *****
  • Сообщений: 13829
  • Карма: 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

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #30 : 22-05-2014, 12:32:21 »
В 2013 произошло разделенние и глобальная "перетруска".
о чём я, собственно, и писал в первом сообщении, показывая пример.

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #31 : 22-05-2014, 12:33:15 »
Есть что-то подобное под 2014?
вариант, показанный мною выше, работает и в 2015. Логично предположить, что будет работать и в 2014-м.

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

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

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

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

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ObjectARX 2014
« Ответ #34 : 22-05-2014, 12:37:13 »
Возможность удаление своих топиков для меня была отключена индивидуально?
Нет. Глобально для всех кроме администраторов/глобальных модераторов.
P.S.: Оффтопим? Так-так... ;)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #35 : 22-05-2014, 12:40:43 »
Спасибо. Но надо в магазин за 100гр. бежать...
Пока ставлю 2012 автокад... И продолжаю работать в нем...
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ObjectARX 2014
« Ответ #36 : 22-05-2014, 12:49:36 »
Пока ставлю 2012 автокад... И продолжаю работать в нем...
Хм. Радикальное решение.
Но надо в магазин за 100гр. бежать...
Ну тогда понятно... :D
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #37 : 22-05-2014, 12:54:14 »
Хм. Радикальное решение.
Главное, чтобы это не вошло в привычку. А то если при каждой неудачной попытке откатываться на более старые версии AutoCAD, то... :) Количество таких попыток лимитировано.

P.S. Причём я так и не понял, что там не удалось автору... Всё работает. Хотя, установка 2012-го - тоже своего рода вариант "решения" (хоть и не самого лучшего). ;)

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #38 : 22-05-2014, 13:09:24 »
Самое главное, что VBA прекрасно работает, начиная с 2002 версии...
На примере я бы все понял... Может найду в сети...
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 611
  • Карма: 155
    • ПГСу Бложик
Re: ObjectARX 2014
« Ответ #39 : 22-05-2014, 13:15:24 »
Может пришло время отказаться от COM и перейти на полноценный .NET ? Все равно ведь код переписывать...

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #40 : 22-05-2014, 13:18:16 »
Найти бы время могзов где добыть :)
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

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


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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #42 : 22-05-2014, 13:23:45 »
Подправьте, если не так...
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

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

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ObjectARX 2014
« Ответ #44 : 22-05-2014, 13:28:31 »
Посмотри пример. На VB.NET не пишу совсем, но за пару минут сделал.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #45 : 22-05-2014, 13:45:42 »
Спавсибо огромное. Работает. Синтаксис конечно поменялся....
Но мой код тоже работает (заработал), для меня он проще :)
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #46 : 22-05-2014, 14:09:42 »

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #47 : 22-05-2014, 14:57:34 »
спасибо. мне все полезно...
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #48 : 22-05-2014, 15:00:30 »
Андрей, если будет время, хотелось бы от Вас еще 2 шпаргалки увидеть, может одну, т.к. это все связано...
1. добавление проектов *.dll в автозагрузку Автокада, добавление записей в реестр (я разобрался, но пока не все ключи понял)
2. создание из проекта VS полноценного файла *.exe или *.dll, для установки на компьютер пользователя и определения версии Автокада...
в реестре прописывается путь до dll, куда кинет dll пользователь? Т.е. автоматизация последнего этапа проекта перед передачей его пользователю.
Спасибо.
ПС. Может создать отдельную тему для этого?
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #49 : 22-05-2014, 15:12:01 »
1. автозагрузка.
2. все управляемые плагины автокада представляют собой dll, но никак не exe. распространяются среди юзеров банальным копированием.

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #50 : 22-05-2014, 15:28:48 »
Объектная модель для работы с некоторыми настройками AutoCAD из внешних приложений или из плагинов AutoCAD выложена здесь (там же и документация, и примеры использования).
Помимо прочего, там реализовано и управление автозагрузкой плагинов в различных ветках реестров (HKLM, HKCU, а так же Startup Suite). Кстати, на основе этой библиотеки я когда-то написал такое:



На мой взгляд, тема автозагрузки рука об руку идёт с темой оформление плагинов: тынц.

На двг.ру эту тему не осилили (не смогли\не захотели понять), в виду чего и предали анафеме.

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #51 : 22-05-2014, 15:58:24 »
Увидев картинку стало самому интересно, где оно у меня и как там выглядит сейчас... Полез в закрома: оказывается программка жива, во всяком случае её исходники (я думал что уже и не вспомню где она). Текущая версия выглядит так (см скрины ниже).

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #52 : 08-01-2015, 10:39:48 »
Всех с прошедшими праздниками.
Уговорили меня тут начать изучать C#, т.к. я не программист, все это дается оч. трудно. До конца не поняв VBA, немного "поковыряв" VB.NET.
Не спрашивайте меня зачем мне это нужно, но глупые вопросы и глупые люди были всегда и всегда будут :)
....
Вопрос такой. Если на VB.NET я получал свойство ThisDrawing (в VBA ThsDrw уже имелся) и писал что-то типа (без уточнения) "ThisDtawing.line(X1,X2)" (т.е. рисовал линию между двумя точками), то
на C# так нельзя сделать? Линия добавляется через Редактор базы данных чертежа (Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database(.Editor))???
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #53 : 08-01-2015, 13:11:18 »
Вопрос такой. Если на VB.NET я получал свойство ThisDrawing (в VBA ThsDrw уже имелся) и писал что-то типа (без уточнения) "ThisDtawing.line(X1,X2)" (т.е. рисовал линию между двумя точками), то
на C# так нельзя сделать?
RTFM

Вот ещё неплохая картинка по теме :) :

« Последнее редактирование: 08-01-2015, 13:29:55 от Андрей Бушман »

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ObjectARX 2014
« Ответ #54 : 08-01-2015, 15:24:47 »
Я расшифрую что написал Андрей Бушман.
Если на VB.NET я получал свойство ThisDrawing (в VBA ThsDrw уже имелся) и писал что-то типа (без уточнения) "ThisDtawing.line(X1,X2)" (т.е. рисовал линию между двумя точками), то
на C# так нельзя сделать?
Делается точно так же, как и на VB.NET. Только этот способ (называется он AutoCAD ActiveX/COM интерфейс) я бы не стал рекомендовать. Раз уже взялся - переучивайся на AutoCAD .NET API.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #55 : 08-01-2015, 21:20:32 »
Раз уже взялся - переучивайся на AutoCAD .NET API.
Пример по ссылке Андрея, я так понимаю, это и есть .NET API. Хорошо, буду изучать. Принцип понятен, просто чужд как пользователю автокада.
Товарищи хирурги, где почитать основы вскрытия продукта компании autodesk?
Начальный уровень...
« Последнее редактирование: 08-01-2015, 23:02:05 от Agens »
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #56 : 09-01-2015, 18:47:02 »
Товарищи хирурги, где почитать основы вскрытия продукта компании autodesk?
Чем не устроили уже известные тебе online-ресурсы? Знание само в голову не телепортируется (к сожалению) - читать всё равно придётся. В том же руководстве по .net api информация даётся последовательно, "с нуля".

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #57 : 09-01-2015, 20:23:57 »
Андрей, Вы же сами собираетесь написать книгу и много информации перевели на русский, поэтому и спросил.
Я понимаю, что программист должен/обязан знать инглишь, но как то "за державу обидно" :) - обделен рунет информацией.
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #58 : 09-01-2015, 20:32:29 »
Вы же сами собираетесь написать книгу
Я книгу писать не собираюсь и не собирался. :) Предоставить некоторый материал для такой книги - это возможно, но самому её писать - это большая и неоправданная работа.

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: ObjectARX 2014
« Ответ #59 : 09-01-2015, 20:45:25 »
Согласен - отдал про 2015 автокад материал в печать, а уже вышел релиз 2017 версии :)
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: ObjectARX 2014
« Ответ #60 : 09-01-2015, 20:50:35 »
Согласен - отдал про 2015 автокад материал в печать, а уже вышел релиз 2017 версии
Программный API меняется от версии к версии, но не настолько, чтобы по материалу, написанному для 2015 нельзя бы было работать в 2017-м. Как правило тот код, что я писал под 2009-й успешно компилируется и для всех более новых версий акада.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ObjectARX 2014
« Ответ #61 : 10-01-2015, 00:58:56 »
Товарищи хирурги, где почитать основы вскрытия продукта компании autodesk?
Если перевести на нормальный русский, то наверное вопрос должен звучать так: "Где найти литературу по AutoCAD .NET API?".
Из русскоязычного в печатном виде есть только эта книга: Н.Н.Полещук. "Программирование для AutoCAD 2013-2015". ДМК Пресс, 2015
И из англоязычного печатного мне вообще ничего не попадалось. Так что лучший метод изучения - изучать чужие программы, писать свои и задавать вопросы на форуме.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение