|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
12.08.2013, 14:04 | #1 | |
Пользовательская панель: динамическая или нет?
Регистрация: 12.08.2013
Сообщений: 22
|
||
Просмотров: 10019
|
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Вы уверенны что причина в этом...
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Регистрация: 12.08.2013
Сообщений: 22
|
Дело, скорее всего, в том, что код из acaddoc.lsp загружается одновременно с какими-то внутренними процессами AutoCAD, потому как если добавить (alert "") первой строкой в acaddoc.lsp, то после того, как всплывёт окошко, все последующие сроки кода загружаются успешно, и панель появляется. Раньше (в более старых AutoCAD) такой проблемы вообще не было.
|
|||
|
||||
а если грузите через автозагрузку "чемоданчиком", вместо того, чтобы писать непосредственно в acaddoc.lsp, проблема так же наблюдается?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
Регистрация: 30.10.2010
Сообщений: 123
|
Чемоданчик - это команда _appload (сервис - приложения...).
Цитата:
для 2010 - 2014 - mySuperMenu.cuix (это на самом деле архив, примечателен тем, что картинки к кнопкам можно запихнуть внутрь него) Создайте рядом с mySuperMenu.cui/cuix текстовый файл mySuperMenu.mnl и пропишите в него свои load "abc.lsp", а не в acaddoc.lsp Последний раз редактировалось Petrov-Vodkin, 12.08.2013 в 16:11. |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
На загрузку (того что внутри defun'ов) алерты повлиять никак не могут, там у Вас явно что-то запускаеться еще не инициализированное - например реактор срабатывает (на который еще функция не загруженна) или (vl-load-com) поздно идет, или панель какую пытается сформировать. Выкладывайте, что там у Вас в acaddoc.lsp - без него только на кофейной гуще.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Регистрация: 12.08.2013
Сообщений: 22
|
Без отличий для каждой из этих версий?
Для того, чтобы было понятно и наглядно, я подготовил немного упрощённый код, который воспроизводит мою проблему. Итак, следующий код можно вставить в acaddoc.lsp (ну или вызвать этот код из lsp там же): Код:
И можно открывать AutoCAD: появится ошибка, описанная выше, и панель не загрузится. Теперь убираем следующий код из предыдущей программы, вынося его в отдельную подпрограмму: Код:
Я не могу понять, в чём тут хитрость, и почему один и тот же код не работает при загрузке, но работает после неё. Последний раз редактировалось Twenty, 12.08.2013 в 19:18. |
|||
|
||||
Регистрация: 12.08.2013
Сообщений: 22
|
MNL&CUIX всё же лучше? Я присмотрелся к сообщению, и уточняю: если этот способ лучше динамических панелей (хоть уже есть минус - 2009 и 2010-2014 - это уже как минимум две версии файлов), то я о нём почитаю у того же Полещука (правда, у него уже староват материал для cuix). Но и с этой непонятной проблемой хотелось бы разобраться.
|
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Нет, вы можете даже использовать устаревший вариант меню (mnu/mns), все равно автокад "скомпилирует" cui/cuix-файл. Причем в таком случае вам понадобится гораздо меньше времени на создание меню
|
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Ну я раз 10 запустил - ошибок нет, панель в 100% случаев загрузилась (2010, пустой чертеж, грузится секунды 3-4). Попробуй убрать "Освобождение памяти от ненужных VLA-объектов", скорее всего с ними "в фоне" еще работа идет, а ты их уже освобождаешь - не к чему это их коллектор сам освободит если переменные локальные.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 12.08.2013 в 23:28. |
|||
|
||||
Регистрация: 12.08.2013
Сообщений: 22
|
Интересно... тестирую на 2012 и 2014.
Не помогло. Затык происходит именно в строке Код:
____________________________________________________ Что касается варианта с CUI(X). Думаю, что при текущей версии AutoCAD 2014 использовать такие старые средства, как MNU, нерационально. Но и с CUI проблема: ради поддержки 2009 версии придётся делать не cuix с вложенными изображениями кнопок, а cui, а это, как я понял, проблема с местом хранения изображений кнопок (или они всё же автоматически находятся по любому из прописанных путей?). Последний раз редактировалось Twenty, 14.08.2013 в 01:26. |
|||
|
||||
Регистрация: 12.08.2013
Сообщений: 22
|
Был бы очень признателен, если бы кто-то выложил простенький пример lisp-кода (желательно vla-vlax) для загрузки CUI(x), содержащего панель инструментов и меню. У меня в половине случаев не работает часть кода или панель не появляется. Нужен просто современный (не от 2005 Автокада) рабочий кусочек кода.
P.S. Возникшие проблемы, похоже, заставят вернуться к динамическим панелям, хоть и это тоже содержит проблемы, которые озвучены в этой теме и пока не решены. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Насколько я помню, должно сработать (vla-load (vla-get-menugroups (vlax-get-acad-object)) <Полное имя файла меню>)
Пишу с компьютера, на котором нет AutoCAD, так что могу ошибаться. P.S. Не факт, что сработает отображение ленты, но эту проблему в свое время обсуждали, кажется, на theswamp.org
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,587
|
Цитата:
Там проскакивали вот такие ссылки: http://forum.dwg.ru/showthread.php?t=90983 http://docs.autodesk.com/ACD/2013/RU...ber=d30e494119 http://through-the-interface.typepad...r-posting.html Конкретней некуда, с примерами кода и прочими плюшками. |
|||
|
||||
Регистрация: 12.08.2013
Сообщений: 22
|
Цитата:
По второй ссылке опять же другой пользователь выкладывает для тестирования сборку для автозагрузки. Причём на NET. Третья ссылка - о PackageContents. Разве это актуально не только для последних нескольких версий AutoCAD и не относится к более старым? Четвёртая ссылка - очередное пособие в картинках. Хорошо, но при чём тут правильная загрузка CUI(x) через инсталлятор? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Twenty, тебе одной темы что, мало? Посты перенесены.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 12.08.2013
Сообщений: 22
|
Вообще-то та тема была не моей, и была посвящена инсталлятору и правильному прописыванию CUI, а эта тема - моя, и посвящена проблеме загрузки динамической панели инструментов и проблемам с нединамическими адаптациями. Не надо в эту тему сваливать материал из другой.
Цитата:
Код:
Последний раз редактировалось Twenty, 14.08.2013 в 15:15. |
|||
|
||||
@Twenty,
Можешь программно добавить в файл acad.cui очередной xml элемент PartialMenuFile и будет тебе счастье.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пропала панель редактирования таблицы | 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 |