|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Регистрация: 12.08.2013
Сообщений: 22
|
Цитата:
P.S. А что насчёт изображений кнопок? Для cuix, как я понимаю, надо будет в архив acad.cuix запаковать эти новые изображения, а для cui - будет ли достаточно того, что картинки будут лежать по одному из путей AutoCAD'а? P.P.S. В архиве acad.cuix 17 файлов CUI =) Какой из них править? ![]() Мне это видится так: в InnoSetup прописываем код: если это автокад 2009 и ниже, находим его acad.cui и добавляем некие нужные строки, а путь к картинкам кнопок прописываем. Если это автокад от 2010, то находим acad.cuix, добавляем в этот архив в какие-то файлы некие строки и изображения, затем снова запаковываем (при деинсталляции проводится обратная процедура). Нелёгкое дело, конечно. Особенно без наглядных примеров. Последний раз редактировалось Twenty, 14.08.2013 в 15:25. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Цитата:
Имхо, сначала должно загрузиться само приложение и оно само себе должно подгружать ресурсы и кнопки. Первая ссылка именно про такой инсталлятор и загрузчик, вторая и третья ссылка о том как сделать пакет, который автокад загрузит сам, включая CUIX файл, НО если разбираться лень, то ВСЕ ЭТО не при чем. PS. Вы хоть для приличия напишите на каком языке Вы хотите реализовать свои замыслы и под какую платформу. |
|||
![]() |
|
||||
И чем же это неправильно?
![]() Какие строки? ![]()
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Регистрация: 12.08.2013
Сообщений: 22
|
Первое сообщение этой темы: AutoCAD 2009(мин)-2014
Нет, ну если на лиспе с ActiveX и инсталлятором InnoSetup невозможно сделать нормальный загрузчик, и выход только в приложении на NET, то, конечно, и эту технологию можно изучить. Цитата:
Опять же предположение: тем, что трогаем сокровенные файлы AutoCAD, и в случае неправильного их изменения сама система станет нестабильной (например, если деинсталлятор не удалит списанные туда строки). "добавить в файл acad.cui очередной xml элемент PartialMenuFile" - это же строки в файле. Кстати, посмотрите, пожалуйста, на отредактированное выше сообщение - там я описал некоторые вопросы касаемо этого метода. |
|||
![]() |
|
||||
У меня под рукой только AutoCAD 2009, в котором используется CUI (CUIX тогда ещё не было). CUIX - это архив, но внести правку программно можно и в него, выбрав в нём нужный CUI.
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 14.08.2013 в 15:54. |
||||
![]() |
|
||||
а я нигде и не писал про InnoSetup. Ты не умеешь программно с текстовыми файлами работать?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Регистрация: 12.08.2013
Сообщений: 22
|
Через лисп? Ну, с архиваторами не работал (к тому же, у пользователя его может не быть, а значит нужно этот архиватор ещё и поставлять!) и XML не парсил. К тому же, если не сделать это в инсталляторе (InnoSetup), то при запуске AutoCAD (когда сможет выполниться lisp) будет уже поздно, да и невозможно (acad.cuix занят). Или под "программно" понимаете тот же NET?
P.S. Что-то сейчас этот путь кажется настолько сложным, что огромное количество затраченного на его изучение время (без примера кодов особенно) вряд ли выглядит целесообразней того же динамического создания панелей (и, может, меню). Вот ещё бы ошибка неизвестная не возникала... |
|||
![]() |
|
||||
я тебе указал, каким образом можно подгрузить твой CUI\CUIX - подсунув его "родному" механизму автозагрузки файлов меню в AutoCAD. На каком языке ты добавишь запись в текстовый файл - это уже дело твоё (на вкус и цвет все фломастеры разные). Я почти не пишу на лиспе. В 99% случаев пишу на .NET и мне его возможностей хватает почти всегда (чего не хватает - можно достать через C++). В .NET можно легко работать как с XML, так и с архивами (занимает несколько строчек кода). Как это делают автолиспописатели - это уже не ко мне вопрос.
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 14.08.2013 в 17:58. |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Если хочешь без лишних заморочек (правда заморочек там особых-то нет, но если изучать что-то еще лень то можно и так):
Инсталятором создай загрузку загрузчика на автолиспе, который при первом старте: 1. Загрузит подготовленную CUI панель (архивом CUIX можешь не заморочиваться - автокад его сам автоматом преобразует). 2. Для записи нужных путей в CUI из автолиспа - можешь поступить по колхозному (чтоб не парсить XML) - в созданном в рукопашную CUI (для этого нужен 2009 или ниже акад) замени необходимые пути/параметры на "****1 заменяемое значение****", "****2 ..." и.т.д. - просто как в текстовом файле (чтение->замена нужного->запись). 3. Лисп вариант AcadApplication.MunuGroups.Load твой cui. 4. И после этого можно удалять свой "чудо" загрузчик вместе с шаблоном CUI. + Можно еще и деинсталятор подобным образом подготовить. Метод скажу сразу колхозней некуда, но кроме лиспа ничего не требует - я бы так делать не стал, а написал-бы "установщик" на любом компилируемом языке программирования, но в принципе вполне рабочий.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 12.08.2013
Сообщений: 22
|
Цитата:
P.S. Вообще я предполагал, что Autodesk предусматривает следующий порядок загрузки CUI: сделать всё визуально, сохранить cui-файл, а затем программно подгружать его через тот же acaddoc.lsp. Разве это невозможно и неправильно? ________________________ По динамическим панелям: удаление строк Код:
НО! Хоть и пишу сделать панель принудительно видимой, она не отображается, пока её вручную не выберешь. И ошибок при этом нет никаких. Непонятно. Если вручную загружать код - всё отлично. Последний раз редактировалось Twenty, 14.08.2013 в 19:09. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
|
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Так я ж про это и пишу - только есть у автокада 1 косяк - относительные пути и системные имена (типа %appdata%) не поддерживает - поэтому приходиться перед загрузкой править CUI(x) - а лиспом это проще всего делать не "парсируя" XML - а просто обрабатывая как текстовой файл.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Чтоб не делать "c:\superproga for acad\superlisp.lsp", а прописывать свои программы в специально созданные для этого папки (program files и пр.) в не зависомости от конфигурации компьютера.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 12.08.2013
Сообщений: 22
|
Если не поддерживается загрузка VLX, то точно не самый лучший способ
![]() Boxa, вы пробовали пример из ссылки №2 про создание cui через NET? Я хотел использовать [LispFunction("test")] вместо [CommandMethod("test")], но что-то не работает (потому что я в этом мало понимаю). Последний раз редактировалось Twenty, 15.08.2013 в 16:45. |
|||
![]() |
|
||||
Регистрация: 12.08.2013
Сообщений: 22
|
А тема с созданием cui через NET интересна и, наверно, после реализации вызывает меньше проблем, да и проще. Вот только в реализации вопрос. У меня пример не работает, хотелось бы с привычным LispFunction попробовать, но недостаточно опыта.
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пропала панель редактирования таблицы | Ust | AutoCAD | 6 | 05.06.2013 16:15 |
приложение не грузиться в Акад2012-х64 | BriAri | AutoCAD | 7 | 28.06.2012 10:53 |
Не могу убрать панель с Главной вкладки ленты AutoCAD 2011 | Albino | AutoCAD | 8 | 03.10.2010 13:13 |
СПДС панель масштаба (запуск из меню) | dextron3 | Прочее. Программное обеспечение | 27 | 08.01.2009 14:42 |
Как в Автокад вставить свою собственную панель инструментов? | АлександрМихайлович | AutoCAD | 10 | 05.03.2007 14:28 |