|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
блондинка Регистрация: 27.11.2007
Планета Плюк 215 в центуре, галактика Кин-Дза-Дза
Сообщений: 25
|
Продолжение бреда сивой блондинки.
А теперь, специально для отцов, упорно держащихся за MNU, привожу преимущества CUI. "Оно конешно, ране лучше было, привышнее, а теперича, тудыть ее в качель, напридумывали". Я тоже MNU еще с Автокад-10 редактировала и привыкла. Но давайте разберемся. 1. В MNU-файле была "рыхлая", но в то же время "жесткая" структура. Фиксированные имена разделов и фактически невозможно добавить что-то в будущем. XML позволяет создавать древовидную структуру и открыт для расширения. Конечно, ветеранам это не надо, но расширения-то интерфейса появляются. Вот рабочие пространства ввели, Пульт управления, потом еще что-то будет. 2. Обычно редактирование MNU сводилось к созданию или изменению новых пунктоф меню и кнопок с макросами. Написал макрос, вставляем куда-нибудь пункт меню в один из разделов ***POP*. Потом в раздел ***TOOLBARS снова тот же макрос прописать. А в ***HELPSTRINGS надо подсказку написать. Может быть еще и в ***SCREEN макрос надо, и в ***IMAGE. Если же макрос (команда) изменился, то надо его изменить в нескольких местах. Это накладно и чревато ошибками. У нас в ruCAD, например, одни и те же команды встречаются в нескольких местах, для разных разделов проектов. Неизбежно возникали ошибки - где-то изменили, а где-то забыли. В CUI-файле макрос описывается только один раз! Все макросы описаны в одном месте. Описали в элементе MacroGroup, а во все другие места (Toolbars, меню, и еще хоть куда, прописываются только ссылки. Синтаксис макроса в CUI более понятен. Знать бы еще точно значения непонятных атрибутов. Код:
Код:
То же самое, если надо кнопку вставить: Код:
работают разные специалисты: топографы, генпланисты, АС, ОВ, ВК, ГАЗ и прочие. У всех много своих пунктов меню. Да еще квалификация разная. Да еще кто работает только в модели, кто в 2D, а кто и все возможности использует. Если собрать все в одно меню, получается слишком сложно. Вот и пришлось выдумывать набор "комплектов", которым можно управлять. А с появлением рабочих пространств можно все привязать к ним и легко переключаться стандартными действиями. В MNU этого не опишешь. 4. "Частичный" (по терминологии русского Автокада) файл CUI. Загрузка описана с CUI так: Код:
Но, к сожалению, не получается просто отдельные пункты PartialMenu включить по ссылке - в редакторе CUI надо предварительно перетащить отдельные пункты меню в основной CUI, а потом только делать их доступными в рабочем пространстве. Но тогда макросы из PartialMenuFile будут продублированы в элементе MacroGroup. Это не есть хорошо. Но можно в рабочее пространство включать разделы из PartialMenu в описание рабочего пространства. Вот это и дает хорошие возможности. Ранее в ruCAD (для совместимости с ранними версиями AutoCAD) мы рабочие пространства не использовали. Приходилось программным путем формировать набор пунктов меню и различные виды интерфейса. Теперь мы окончательно перешли на работу с AutoCAD не древнее 2006 и это дает возможность сделать необходимое количество тематических PartialMenu, подгружать их в основной CUI и использовать рабочие пространства. В PartialMenu могут находиться специальные пункты, например, какая-то технология. Такие меню вместе с прочими компонентами (программы, библиотеки блоков и прочее) могут поставляться в виде отдельных инсталляций. Не установлен определенный комплект - просто нет и пунктов меню. К счастью, если AutoCAD не находит PartialMenu, описанное в CUI-файле, загрузка не прерывается и не выводится никаких сообщений. Но в CUI-редакторе отсутствующие PartialMenu видны. И это даже хорошо В результате основной CUI-файл может быть простым и коротким и состоять из одних конфигураций рабочих пространств. Теперь по поводу картинок для панелей. Вообще-то, когда у нас было одно меню, картинки мы хранили в DLL. Как-то это кошернее было, чем отдельные BMP-файлы. Но если делать несколько CUI-файлов, то надо иметь одноименные DLL. Пока мы обходились тем, что просто копировали DLL под соответствующими именами. Это уже нехорошо. Делать много DLL как-то неохота. Процедура несложная, но занудная. Картинки все равно надо рисовать, потом формировать ресурс, компилировать и прочее. Что-то мне кажется, что надо вернуться к отдельным BMP. Все равно они потом все собираются в откомпилированный файл ресурсов MNR. А вот для замены ссылок в CUI-файле с Код:
Код:
Продолжение следует. Доберемся и до описания элементов и атрибутов.
__________________
Ох, как иногда хочется подумать! |
|||
![]() |
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
BarbiЁ,исследование конечно мощное и фундаментальное. Инфа очень ценная и думаю что вряд ли в где либо можно найти более подробное описание формата CUI. За это спасибо. Но всё же ,как мне кажется, эта информация несёт чисто академический характер. Я всё равно не понимаю, зачем писать CUI вручную, а не генерировать его с помощью диалогового окна настройки интерфейса пользователя?
BarbiЁ, скажи, какие в итоге преимущества ручное написание и редактирование дают перед пользовательским подходом настройки интерфейса в самом Автокаде? Ситуация мне видится так. Раньше все нормальные люди писали свой MNU, ну или как минимум редактировали MNS. Тогда были на это веские причины, потому что в стандартном окне настройки в Автокаде нельзя было добавить ни пункты меню, ни графические меню, ни экранное меню, ни контекстные и т.д. Можно было только делать кнопки, тулбары, флайоуты и назначать комбинации клавиш. Да и то, сделав кнопку с картинкой, оставалось только гадать, куда Автокад её (картинку) сохранил и под каким именем? Без конкретной ручной правки MNS было просто не обойтись. Вот так дело и обстояло. Может я подзабыл некоторые нюансы, но в целом тенденция была такая. Сейчас же всё это можно сделать в окне настройки интерфейса пользователя, не прибегая к ручному редактированию. Недостатки конечно есть. Это тормоза при вызове окна настройки, да и в принципе сама реализация этого окна. Но всё же ИМХО это несравнимо быстрее, чем писать, или даже редактировать CUI вручную. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
BarbiЁ тут опубликовала только часть своих исследований. Полностью наберется еще постов на 20. Но все публиковать, наверное, не стоит. Тем более, что она в отпуск ушла.
Что касается CUI-диалога (гуёвого, по еёной классификации), то в AutoCAD 2008 он стал вполне работоспособным. Без него, конечно, не обойтись. В формате многое недокументировано, просто так не напишешь. Но и только диалога мало. Если надо добавить несколько своих "кнопок" с командами, создать панельки, меню, пульт управления - это всё прекрасно можно сделать в диалоге. А вот если команд побольше (сегодня внес в CUI-файл команду #8504), то здесь приходится вручную. Это гораздо быстрее. Да и не все в диалоге отображается. Например, список команд линейный. Работать с ним тяжело. Предусмотрена фильтрация только по AcadCommands, ExpressCommands, CustomCommands и Controls. Да и то, если это не штатный файл, все окажется в Custom. А на самом деле, в CUI-файле для команд можно создать сколько угодно групп - в элементах MacroGroup. CUI-редактор Автокада их не видит, а вот в Notepad++ MacroGgroup превосходно сворачиваются, что позволяет очень удобно двигаться по структуре. На рисунке показана одна развернутая группа и много свернутых, отображаемых одной строчкой. А присоединение иконок к команде? Попробуйте-ка в диалоге много раз их подключить из файла. Мышка сломается, да и к тому же картинки могут прописаться с абсолютными путями. Вытравить это можно легко в Notepad++. А еще штатная команда имеет привычку оставлять мусор. Команду в диалоге удалили, а в файле она может остаться. Если же сам диалог попортит структуру, то и загрузить файл не сможет. Тут нужно хирургическое вмешательство, а для этого надо знать структуру CUI-файла. В общем, и одним CUI-редактором не обойтись, и одним Блокнотом - то же. Последний раз редактировалось ShaggyDoc, 28.05.2008 в 15:41. Причина: Забыл приложить картинку |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Жмешь на команду, затем на Small image, затем на три точечки и открывается окно со списком заранее приготовленных иконок (если, конечно, это не первая процедура такого рода. Первый заход к списку икон на пару кликов дольше). Далее щелчек по иконе и усе.
|
|||
![]() |
|
||||
(ГС, ТМ, ОВ) Регистрация: 14.03.2008
Харьков
Сообщений: 101
|
Vova!
Огромное Вам спасибо за статью. Для меня Ваша статья - познавательна и интересна. Изложена (статья) на доступном, нет - внятном языке (все ясно, понятно и не размазано). У Вас талант. И если можно - не останавливайтесь на достигнутом - пишите еще. |
|||
![]() |
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
Как Why? Если стоит полный путь, система теряет гибкость. Если стоит только одно имя, то путь к иконкам прописывается один раз (Настройка/Файлы/Файлы настройки/Папка для вспомогательных значков) и всё. Если вдруг папку с иконками по каким-либо причинам надо переместить или переименовать, то для получения рабочей системы достаточно только изменить этот путь в окне настройки. Ну или лиспом например:
Код:
А если путь полный, то придется менять его для каждой команды, т.е. n-ое количество раз. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Makswell совершенно правильно написал.
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Вписывание полных путей картинок - как раз один из глюков диалога. Причем результаты, если быть невнимательным, можно обнаружить только если CUI-файл переедет не на такое место, как у автора. И обнаружить это в самом диалоге очень трудно - надо внимательно присматриваться.
Более того, если просто в поле убрать полный путь вручную, то диалог может всё равно оставить в CUI-файле полный путь. Вот здесь и поможет текстовый редактор. Уж на что мы всегда внимательно смотрим за этим делом, но все равно иногда выявляются козни диалога. По идее, если уж есть кнопка для выбора файлов, то навигация должна быть ограничена путями поиска, а в результат заносить только короткое имя. |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
1. У меня папка с картинками много автокадов подряд находится в одном и том же месте, поэтому я не озаботился вопросом гибкости. Придется подкорректировать текст в статье. Удалять путь, оставив только имя файла иконы, несколько морочней, но это мелочь для пользователя, только-что сделавшего очередную самодельную кнопку. Он их скорее всего делает в час по чайной ложке. Штуку в месяц. Ручное написание меню будет недоступно рядовым пользователям, а только либо сильно продвинутым (для себя) или CAD-manager-ам для которых обслуживание десятков пользователей это их хлеб.
2. Цитата:
|
|||
![]() |
|
||||
to Vova! Присоединяюсь к proekt_mep. Спасибо большое за статью. Все по полочкам. От себя отвечу - прочитал, попробовал и ... о, ужас! сколько времени можно было съэкономить, сделай я все сразу по-человечески!
Offtop: Кстати, мне показалось, что во 2 части статьи, в п.7. "(не забудьте сохранить свою работу нажатием кнопки ОК)" всместо "OK" надо "Apply"
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Окончательный (на сегодняшний день) вариант представлен здесь http://dwg.ru/art/2 Если будет обнаружено что-либо, требующее исправления или дополнения, подправим. Мне как автору хотелось бы иметь отзывы от тех, кто не только прочитал, а сам сделал себе меню.
Offtop: Wetr> ОК включает в себя Apply. Apply жмут если надо сохранить что-то одно, затем другое, затем третье и затем окончательно ОК. Имхо |
|||
![]() |
|
||||
архитектор Регистрация: 01.04.2008
СПб
Сообщений: 296
|
Vova,
Статья весьма хороша, все действия описаны довольно подробно, на мой взгляд, даже не зная автокада вполне можно сделать свое собственное меню. Большое спасибо, за работу. Правда, мне и до этого приходилось создавать свои панели инструментов (из существующих), но вот с новыми командами, дело иметь не приходилось. Мое меню было выполнено строго по Вашей статье, заняло 10 мин. Другое дело, что у меня макрос : Цитата:
![]() |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Vova, статья, действительно, написана очень понятно и об основном, без воды. Своим умением с легкостью создавать кнопки (их у меня уже порядка 50-ти) я обязан именно Вам, дай Бог Вам здоровья и близким Вашим
![]() Имею мысли по поводу дополнения статьи. 1. Можно добавить описание возможности делать выпадающие кнопки, путем добавления Панели в Панель (это я сам смекнул, но наверняка Вы знаете). Очень экономит место и удобно группировать по функциям. Прошу прощения, если повторюсь, не хватило сил прочитать всю ветку. 2. Не помешало бы добавить описание создания кнопок с макросами для запуска функций на лиспе, например: Код:
3. Очень полезен на мой взгляд макрос зацикивания Break at point (Разорвать в точке): Код:
Код:
![]() 4. В списке спец. символов не хватает ^P. Я и сам забыл, что это такое ![]() 5. Нашел опечатку в слове Prifile, видимо, Вы имели в виду Profile. (Не забудьте, что в браузере есть поиск, на всякий пожарный) 6. Но даже если ничего этого не делать, полезной информации там полно ![]() Еще хотелось бы узнать, существует ли возможность вызывать панель в центр экрана комбинацией клавиш? И если существует, то тоже может быть интересна Вашим читателям. И не планируется ли выход новой версии "Языка макрокоманд....."? Последний раз редактировалось skkkk, 05.06.2008 в 03:38. Причина: Дополнения |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Столкнулся с такой проблемой. Решил перенести некоторые собственноручно созданные панели на другой комп. Через НПИ-перенос создал новый .CUI-файл, открыл его на компе-приемнике, перетащил панели. Скопировал папку с иконами, прописал ее в путях доступа (причем вставил в то же место, что и у меня, на всякий случай), и вместо иконок увидел симпатичные такие вопросикее
![]() |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Profan, попробовал сейчас специально, хоть уже все сделал(
![]() |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Игры в AutoCAD | Red Nova | AutoCAD | 11 | 30.07.2015 22:46 |
Из CUI в MNU | nikolaev | AutoCAD | 14 | 20.08.2009 14:20 |
CUI – не могу адаптироваться. | mmax | AutoCAD | 15 | 07.08.2007 10:11 |
CUI - Структура и редактирование | Никита В. | AutoCAD | 13 | 28.02.2006 00:37 |
Как пользовать Enterprize CUI ???????? | Startrek | AutoCAD | 8 | 23.09.2005 17:23 |