Сообщество программистов Autodesk в СНГ
ADN Club => ObjectARX => Тема начата: AlexZhur от 29-05-2017, 17:58:11
-
Подскажите пожалуйста, где посмотреть наиболее полную информацию по работе с элементами управления (описание доступных ЭУ, доступ к существующим, создание, управление отображением панелей,вкладок и тп) на Ribbon из ObjectArx2015?
-
Подскажите пожалуйста, где посмотреть наиболее полную информацию по работе с элементами управления (описание доступных ЭУ, доступ к существующим, создание, управление отображением панелей,вкладок и тп) на Ribbon из ObjectArx2015?
В ObjectARX этого нет. Есть в AutoCAD .NET API. Т.е. с Ribbon можно работать только через .NET
-
А какой выход? Писать часть кода на .Net, а часть на C++?
-
А какой выход? Писать часть кода на .Net, а часть на C++?
Можно так, а можно и на "mixed" C++, т.е. на смеси обычного ("native") C++ и управляемого ("managed") C++.
-
А где можно посмотреть примеры кода для работы с Ribbon из AutoCAD API?
-
Проще всего было выполнить поиск по нашему сайте по строке Ribbon, что дало бы кучу результатов.
Например:
http://adn-cis.org/modifikacziya-lentyi.html
http://adn-cis.org/autocad-api-dlya-lentyi-s-ispolzovaniem-c/cli.html - на mixed C++
http://adn-cis.org/sinxronizacziya-lentyi-i-sistemnoj-peremennoj.html
-
Я портировал свой проект (native C++) из AutoCAD 2002 в AutoCAD 2015. Старый код заработал (диалоги на MFC). Встала острая необходимость работы с Ribbon. Как правильно (и возможно ли это) настроить свойства моего проекта, что использовать mixed C++ для работы с Ribbon (а возможно в будущем и не только с ним) из приведенного примера. При указании в свойствах проекта опции \clr выбивает множество ошибок. Очень не хочется использовать обертки для .Net классов. Буду крайне признателен за помощь.
-
Создай новый проект при помощи ObjectARX Wizard с поддержкой .NET и в него перенеси свои файлы из старого проекта.
Хотя если ты не знаешь managed C++, то я бы рекомендовал работу с Ribbon вынести в отдельную .NET dll, написанную на C#.
-
... я бы рекомендовал работу с Ribbon вынести в отдельную .NET dll, написанную на C#.
Согласен с этой тезой. Мне кажется отделение "интерфейсной" части от собственно программной более правильная модель построения проекта, чем потуги объединения всего что есть в mixed коде.
-
И все же я попробовал создать проект ObjectArx с поддержкой .Net. Прописал все пути к inc и lib. По итогу ситуация вот такая:
Error 3 error C1107: could not find assembly 'acdbmgd.dll': please specify the assembly search path using /AI or by setting the LIBPATH environment variable
11 IntelliSense: cannot open metadata file "AcCui.dll"
9 IntelliSense: cannot open metadata file "acdbmgd.dll"
Warning 2 warning C4945: 'GeneratedInternalTypeHelper' : cannot import symbol from 'c:\objectarx 2015\inc\adwindows.dll': as 'XamlGeneratedNamespace::GeneratedInternalTypeHelper' has already been imported from another assembly 'AcWindows' c:\objectarx 2015\inc\adwindows.dll. Хотя сборка 'acdbmgd.dll' есть в External Dependencies. Вопрос, как запустить проект?
-
Возьми проект, который я создал при помощи ObjectARX Wizard 2015 и попробуй с ним.
-
Спасибо!!! Загрузил Ваш проект. Компиляция прошла успешно. :)Риторический вопрос - что я делал не так :(? или надо было что-то специфическое указать при работе в Wizard-е ::)? А в итоге компилируется arx файл или .net сборка?
-
Риторический вопрос - что я делал не так :(? или надо было что-то специфическое указать при работе в Wizard-е ::)?
Вот уж не знаю.
А в итоге компилируется arx файл или .net сборка?
Во всяком случае загружать её нужно как .NET-сборку через _NETLOAD.