Как писать обертки для методов и классов ObjectARX

Автор Тема: Как писать обертки для методов и классов ObjectARX  (Прочитано 3607 раз)

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

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

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

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
А я правильно понимаю, что в AutoLisp есть аналог этой функции (ssget), а в .NET нет?
Да. Но в Autolisp не полный аналог. Часть возможностей не поддерживается. Поэтому наиболее полные возможности именно в ObjectARX.
Странно, что для .NET не сделали аналог. А как писать обёртки? Так же как в постах выше, импортировать dll и реализовывать интерфейс взаимодействия с пользователем?

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
А как писать обёртки?
О! Это совсем не просто. Нужно писать на mixed C++ (не C#, а именно C++) с использованием одновременно и ObjectARX и AutoCAD .NET API.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
А как писать обёртки?
О! Это совсем не просто. Нужно писать на mixed C++ (не C#, а именно C++) с использованием одновременно и ObjectARX и AutoCAD .NET API.
Александр, Вы про это? https://docs.microsoft.com/en-us/cpp/dotnet/mixed-native-and-managed-assemblies?view=msvc-170
И есть ли примеры реализации таких dll?

Отмечено как Решение Lemieux 17-06-2022, 14:17:49

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
Круто, спасибо! Буду разбираться, если мозгов хватит :))

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

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
Я тут обнаружил, что GetNestedEntity это обёртка acedNEntSelP и решил поработать с этой функцией. Но мне вот интересно, где можно почитать про ads_name, ads_point, ads_matrix, и почему в примере ArxImports (https://adn-cis.org/forum/index.php?topic=7683.msg25135#msg25135) структура ads_name состоит из двух IntPtr, а не из одного или трёх?

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Но мне вот интересно, где можно почитать про ads_name, ads_point, ads_matrix
В ObjectARX SDK Docs - в той части, где про ObjectARX:


Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
Я правильно понимаю, что всего 4 типа: ads_real, ads_point, ads_matrix, ads_name?
И ads_real будет структура из одного IntPtr, ads_point из трёх IntPtr, ads_matrix из шестнадцати? Это судя из описания ads_name - "typedef long ads_name[2];"

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Я правильно понимаю, что всего 4 типа: ads_real, ads_point, ads_matrix, ads_name?
Основных - да.
И ads_real будет структура из одного IntPtr, ads_point из трёх IntPtr, ads_matrix из шестнадцати?
Нет. ads_real - это double, ads_point - это три double, ads_matrix - это 16 double.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
Нет. ads_real - это double, ads_point - это три double, ads_matrix - это 16 double.
Очень интересно, надо провести эксперименты.