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

ADN Club => AutoCAD .NET API => Тема начата: Lemieux от 16-06-2022, 12:08:02

Название: Как писать обертки для методов и классов ObjectARX
Отправлено: Lemieux от 16-06-2022, 12:08:02
А я правильно понимаю, что в AutoLisp есть аналог этой функции (ssget), а в .NET нет?
Да. Но в Autolisp не полный аналог. Часть возможностей не поддерживается. Поэтому наиболее полные возможности именно в ObjectARX.
Странно, что для .NET не сделали аналог. А как писать обёртки? Так же как в постах выше, импортировать dll и реализовывать интерфейс взаимодействия с пользователем?
Название: Re: Как писать обертки для методов и классов ObjectARX
Отправлено: Александр Ривилис от 17-06-2022, 00:50:23
А как писать обёртки?
О! Это совсем не просто. Нужно писать на mixed C++ (не C#, а именно C++) с использованием одновременно и ObjectARX и AutoCAD .NET API.
Название: Re: Как писать обертки для методов и классов ObjectARX
Отправлено: Lemieux от 17-06-2022, 06:47:39
А как писать обёртки?
О! Это совсем не просто. Нужно писать на 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?
Название: Re: Как писать обертки для методов и классов ObjectARX
Отправлено: Александр Ривилис от 17-06-2022, 13:50:20
Александр, Вы про это? https://docs.microsoft.com/en-us/cpp/dotnet/mixed-native-and-managed-assemblies?view=msvc-170
Да.
И есть ли примеры реализации таких dll?
Тут пример: https://adn-cis.org/forum/index.php?topic=4271.0
Название: Re: Как писать обертки для методов и классов ObjectARX
Отправлено: Lemieux от 17-06-2022, 14:17:44
Круто, спасибо! Буду разбираться, если мозгов хватит :))
Название: Re: Как писать обертки для методов и классов ObjectARX
Отправлено: Lemieux от 23-06-2022, 11:34:21
Я тут обнаружил, что GetNestedEntity это обёртка acedNEntSelP и решил поработать с этой функцией. Но мне вот интересно, где можно почитать про ads_name, ads_point, ads_matrix, и почему в примере ArxImports (https://adn-cis.org/forum/index.php?topic=7683.msg25135#msg25135) структура ads_name состоит из двух IntPtr, а не из одного или трёх?
Название: Re: Как писать обертки для методов и классов ObjectARX
Отправлено: Александр Ривилис от 23-06-2022, 12:21:40
Но мне вот интересно, где можно почитать про ads_name, ads_point, ads_matrix
В ObjectARX SDK Docs - в той части, где про ObjectARX:
(https://live.staticflickr.com/65535/52167366069_baf203f71f_o.png)

Название: Re: Как писать обертки для методов и классов ObjectARX
Отправлено: Lemieux от 23-06-2022, 13:04:48
Я правильно понимаю, что всего 4 типа: ads_real, ads_point, ads_matrix, ads_name?
И ads_real будет структура из одного IntPtr, ads_point из трёх IntPtr, ads_matrix из шестнадцати? Это судя из описания ads_name - "typedef long ads_name[2];"
Название: Re: Как писать обертки для методов и классов ObjectARX
Отправлено: Александр Ривилис от 23-06-2022, 20:15:02
Я правильно понимаю, что всего 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.
Название: Re: Как писать обертки для методов и классов ObjectARX
Отправлено: Lemieux от 23-06-2022, 21:39:00
Нет. ads_real - это double, ads_point - это три double, ads_matrix - это 16 double.
Очень интересно, надо провести эксперименты.