• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

c# немного рефлексии (System.Reflection) для апи в дополнении к sdk

Автор zaytsev, 08.08.24, 12:14:16

« назад - далее »

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

zaytsev

))
прорываясь через sdk, налету перепрограммируя питоновские макросы на шарп, без карты апи в виде дерева а не плоским списком и т.д. впадая в ступор от страшных слов интерфейс можно получить у вида IView посредством вызова метода IUnknown::QueryInterface (const GUID far& IID, void** pif). с удивлением узнав  :o  что объекты например
            IViewsAndLayersManager viewsAndLayersManager = document2D.ViewsAndLayersManager; //работы с видами, слоями, группами слоев

            //выйдем на объект через коллекцию
            List<IDrawingObject> drObjects = new List<IDrawingObject>();
            foreach (IDrawingObject item in (IDrawingObjects)viewsAndLayersManager.Views) //коллекций графических объектов.
            {
                drObjects.Add(item);
                IDrawingObject1 drawingObject_1 = (IDrawingObject1)item;
                IDrawingContainer drawingContainer_1 = (IDrawingContainer)item;
                ICircles objects_1 = drawingContainer_1.Circles;
                ISymbols2DContainer symbols2dContainer_1 = (ISymbols2DContainer)item;
...

item (IDrawingObject) имеют один общий id (referense), = а IDrawingObject1/IDrawingContainer/ISymbols2DContainer -всего лишь интерфейсы для данного объекта (со своими свойствами и методами)...
захотелось посмотреть на апи компаса *.dll с другой стороны, через рефлексию - изнутри, поскольку в отличии от sdk там внутри всегда актуальная структура данных и взаимосвязей между ними

нашел бесплатный софт под это дело (open-source .NET assembly browser and decompiler)
https://github.com/icsharpcode/ILSpy?tab=readme-ov-file
(качаем проект и собираем его в msvs2022 c#)

может кому нибудь поможет понять авторов компас апи и импортозаместить свои плагины для autodesk'a на плагины под компас...
в обозревателе объектов msvs C# это конечно и так есть - но тут показывает взаимосвязи
api_Reflection.png
     

Lemieux

А импортозаместить плагины для Solidworks подойдёт? E3Series?
Почему я должен, что-то скачивать чтобы узнать информацию? Я взломом занимаюсь? Когда будет тема про Dumpbin и анальноогороженный API Компас-электрик?
Зачем давать странные советы если можно сделать нормальную справку?

PS Плагин ILSpy для VS установлен на рабочий комп как только на него поставили VS.

p3452

Цитата: zaytsev от 08.08.24, 12:14:16может кому нибудь поможет ... импортозаместить свои плагины для autodesk'a на плагины под компас...
У компании Autodesk несколько десятков программных продуктов!
Может УЖЕ стоит детализировать свои "хотелки"?