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

ADN Club => AutoCAD .NET API => Тема начата: Андрей Бушман от 29-10-2016, 00:06:44

Название: Использование AcCUI.dll от AutoCAD 2009 для работы с CUI-файлами
Отправлено: Андрей Бушман от 29-10-2016, 00:06:44
Исходные данные
Здесь (https://bitbucket.org/Andrey-Bushman/attach-cui/wiki/Home) временно открыл для общего доступа демонстрационное решение, состоящее из двух проектов: первый (Attach-CUIX) работает с CUIX-файлами, используя для этого AcCUI.dll от AutoCAD 2017, а второй (Attach-CUI) - для работы со старыми CUI-файлами, используя AcCUI.dll от AutoCAD 2009. Код подробно комментирован, скрин с результатом консольного вывода присутствует (для ленивых).

В обозначенном примере я использую AcCUI.dll из консольного приложения (т.е. это не расширение AutoCAD), но этот же код без каких-либо проблем можно использовать и в составе расширений AutoCAD (ежели кто-то захочет). В обоих проектах используется удалённая отладка.

Описание проблемы
Код проекта Attach-CUIX успешно компилируется и работает. Код проекта Attach-CUI пока не компилируется в виду того, что API файла AcCUI.dll в AutoCAD 2009 существенно отличается от API одноимённого файла в AutoCAD 2017. Все проблемные места инкапсулированы мною в файле CuiOperations.cs проекта Attach-CUI.

Поскольку уже поздний вечер и голова почти перестала соображать, то с ходу внести нужные правки в обозначенный выше файл не получилось - нужно будет на свежую голову сесть за решение этих проблем.

Под спойлером текст ошибок, выдаваемых компилятором для проекта Attach-CUI.

Извините, вам запрещён просмотр содержимого спойлеров.

Ежели кто-то ранее уже для себя разбирался с редактированием CUI-файлов в старых версиях AutoCAD и знает, какие правки нужно внести, то буду признателен за эту информацию.


Название: Re: Использование AcCUI.dll от AutoCAD 2009 для работы с CUI-файлами
Отправлено: Александр Ривилис от 29-10-2016, 02:06:16
Увы, но тут помочь не смогу. AutoCAD 2009-го у меня нет, да и в нём Лента только-только появилась и находилась в зачаточном состоянии. Не исключаю, что через API не всё с ней можно делать, что можно более свежих версиях.
Здесь есть урок работы с AcCUI.dll, но в AutoCAD 2010: http://forums.augi.com/showthread.php?159453-CP204-2-API-for-CUIx-Files-and-the-Runtime-Ribbon-in-AutoCAD - там уже изменилась структура API.
Например, в  MenuGroup точно есть член RibbonRoot, а судя по твоему протоколу в 2009-ом его нет.
Название: Re: Использование AcCUI.dll от AutoCAD 2009 для работы с CUI-файлами
Отправлено: Андрей Бушман от 29-10-2016, 11:21:26
Ок. Раз решения нет, то и смысла в данном топике так же нет, как и в проекте Attach-CUI. Удалю его, а вы удалите эту тему.
Название: Re: Использование AcCUI.dll от AutoCAD 2009 для работы с CUI-файлами
Отправлено: Александр Ривилис от 29-10-2016, 16:08:12
Ок. Раз решения нет, то и смысла в данном топике так же нет, как и в проекте Attach-CUI. Удалю его, а вы удалите эту тему.
Готового решения нет, но может быть ты найдёшь. :) Кстати можешь поэкспериментировать с accui.dll из более новой версии AutoCAD.
Название: Re: Использование AcCUI.dll от AutoCAD 2009 для работы с CUI-файлами
Отправлено: Андрей Бушман от 29-10-2016, 17:34:52
Кстати можешь поэкспериментировать с accui.dll из более новой версии AutoCAD.
Видимо вы невнимательно читали то, что я писал в первом сообщении...
Название: Re: Использование AcCUI.dll от AutoCAD 2009 для работы с CUI-файлами
Отправлено: Александр Ривилис от 29-10-2016, 17:42:20
Кстати можешь поэкспериментировать с accui.dll из более новой версии AutoCAD.
Видимо вы невнимательно читали то, что я писал в первом сообщении...
Стоп. В 2009-ом cui-файл, а не cuix? Ну тогда я думаю решения нет.
Название: Re: Использование AcCUI.dll от AutoCAD 2009 для работы с CUI-файлами
Отправлено: Андрей Бушман от 29-10-2016, 17:45:28
Ок, спасибо. Удалите топик, т.к. в таком случае смысла в нём нет.
Название: Re: Использование AcCUI.dll от AutoCAD 2009 для работы с CUI-файлами
Отправлено: Александр Ривилис от 29-10-2016, 17:48:28
Ок, спасибо. Удалите топик, т.к. в таком случае смысла в нём нет.
Смысл есть всегда - информация может пригодится не только тебе или мне.