Игры с CUI - Страница 4
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Игры с CUI

Игры с CUI

Ответ
Поиск в этой теме
Непрочитано 29.03.2008, 05:09
Игры с CUI
Vova
 
Engineer
 
New-York
Регистрация: 05.09.2003
Сообщений: 10,288

2008.
Свое меню можно загрузить как внутри диалогового окна CUI так и командой CUIload. А вот выгрузить меню этой командой нельзя. Странно. Окно, так сказать, гребет под себя и обратно не пущает. Я решил, это потому, что в нем нет кнопки ОК.
Пишите сюда, если удалось накопать чего-нибудь полезного или бесполезного про это го CUI.
Просмотров: 77331
 
Непрочитано 08.05.2008, 18:21
#61
Startrek

AutoCAD/AutoLISP
 
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133


Цитата:
Сообщение от Залётный Посмотреть сообщение
Я знаю людей, которые сегодня пишут на ассемблере - для большинства, полагаю, мёртвый язык.
Для меня важнее получение результата наиболее быстрым способом и при приложении минимальных усилий, а это на сегодняшний день, как мне кажется, через mns файлы решается проще.
__________________
Сквозь тернии к звездам.... и обратно :yes:
Startrek вне форума  
 
Автор темы   Непрочитано 08.05.2008, 20:44
#62
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Разве написать с нуля новое меню в формате *mns (а для этого разыскать старую книгу и изучить в ней 10 стр, а потом опробовать на СТАРОЙ версии) быстрее, чем в формате CUI? Даже для имеющих опыт создания меню в старых версиях путем ручного набивания текста вы не сделаете новое меню (без использования старого в качестве шаблона) быстрее, чем в CUI. Да и с шаблоном тоже. Кроме того, после того, как ваше меню будет перекомпилировано в CUI, вам придется добавлять в него то, чего раньше не было уже в CUI. Так не лучше-ли сразу? Уже 4 версии вышло с CUI.
Эта тема создана для тех, кто не писал еще ни разу своего меню в новых версиях.
Vova на форуме  
 
Непрочитано 08.05.2008, 21:31
#63
Startrek

AutoCAD/AutoLISP
 
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133


Цитата:
Сообщение от Vova Посмотреть сообщение
Разве написать с нуля новое меню в формате *mns (а для этого разыскать старую книгу и изучить в ней 10 стр, а потом опробовать на СТАРОЙ версии) быстрее, чем в формате CUI?

vova ... ДА ЛЕГЧЕ - НАПИСАЛ ПРОСТЕНьКИЙ ЛИСП (см. выше в теме)
для создания partial меню куда как быстрее и легче.
Мнение персональное - кому как....
__________________
Сквозь тернии к звездам.... и обратно :yes:
Startrek вне форума  
 
Непрочитано 09.05.2008, 07:05
#64
Залётный


 
Регистрация: 15.04.2005
Сообщений: 243


Цитата:
Сообщение от Vova Посмотреть сообщение
Разве написать с нуля новое меню в формате *mns (а для этого разыскать старую книгу и изучить в ней 10 стр, а потом опробовать на СТАРОЙ версии) быстрее, чем в формате CUI? Даже для имеющих опыт создания меню в старых версиях путем ручного набивания текста вы не сделаете новое меню (без использования старого в качестве шаблона) быстрее, чем в CUI. Да и с шаблоном тоже. Кроме того, после того, как ваше меню будет перекомпилировано в CUI, вам придется добавлять в него то, чего раньше не было уже в CUI. Так не лучше-ли сразу? Уже 4 версии вышло с CUI.
Эта тема создана для тех, кто не писал еще ни разу своего меню в новых версиях.
Пожалуй спор о способе писания меню абсолютно беспочвенный. Код, который вызывает определённые операции будет один и тот же, независимо из какого меню он вызывается - курсорное, падающее, экранное, слайдовое, палетное или кнопочное. Так что экономить в написании кода не получится. Когда работаешь с mns файлом нужно только знать как указать из какого меню вызывать этот код, в CUI редакторе, ты указываешь это визуально. Работа CUI редактором - один из способов добавления этого кода в разные типы меню. Видеть же полную картину, как мне кажется, проще в текстовом файле. Кроме того нормальные редакторы позволяют значительно легче проводить массовою обработку текста - поиск, копироване, глобальная замена, проверка синтаксиса и т.д. и т.п. Но для этого необходимо иметь определённый навык работы с ними. К стати, вопросик по ходу - ты печатаешь всеми пальцами и не глядя на клавиатуру?

Каждый в праве выбирать тот инструмент, который он в состоянии изучить и который, как он считает, даёт ему ожидаемый результат. Могу только сказать, что иногда выбираю не всегда традиционные или рекомендуемые методы. Года 4 назад, когда появилось желание попробовать палеты в 2004, то редактировал их в XML редакторах и, когда немного разобрался в структуре, даже в простых текстовых редакторах, хотя это не рекомендуется. Результат был вполне удовлетворительным и эти меню до сих пор работают.
Залётный вне форума  
 
Непрочитано 11.05.2008, 08:31
#65
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Цитата:
Сообщение от Leo55 Посмотреть сообщение
Для меня текст оказался полезным, как минимум, по одной причине: в нем описан эффект нажатия кнопки New (Create a new command). Тем, кто скажет, что им было интуитивно понятно, что при нажатии этой кнопки в меню создается команда под именеи Command1, рекомендую бросать AutoCad и идти на Форекс - там за неделю станете миллионером с такой интуицией.) Обо всем остальном там, действительно, можно догадаться и самому.
Видимо, вам интуитивно понятно, почему новый чертеж получает имя Drawing1, новый слой в Диспетчере слоев получает имя Layer1 и т.п. А то, что новая команда при создании в CUI получает имя Command1 - непонятно?
Цитата:
Да дело не в том, что очередная версия ACAD'а перестанет подгружать MNU, а в том, что это теперь, как латынь - мертвый язык. Хотите говорить на латыни - нет проблем, говорите, только со временем собеседников у вас не останется.
Такое впечатление, что вы не занимались серьезно разработкой НОВЫХ меню. Если ASCII - "мертвый язык", то возьмите, например, редактор Notepad ++ или другой, понимающий XML, и напишите с его помощью меню типа ToolPac.
Profan вне форума  
 
Непрочитано 11.05.2008, 19:52
#66
BarbiЁ

блондинка
 
Регистрация: 27.11.2007
Планета Плюк 215 в центуре, галактика Кин-Дза-Дза
Сообщений: 25


Конечно жэнсчин не должен встревать, когда такие джигиты разговаривают. Может я дура дурой, но CUI-меню делаю без всяких диалогов. Это же так просто - нужен только текстовый редактор с поддержкой UTF-8. Гораздо проще, чем редактировать MNU. Там все было раскидано по разным разделам - отдельно команда, отдельно helpstring. А в CUI все в одном месте, с понятными атрибутами. Блондинке понятно. А уж UID и сама сочиню.

Не цепляйтесь за эти MNU/MNS. Проще с XML разобраться. Или грозного warning напужались? Так это для них. Нам можно.

"Игры с CUI" почему-то в 2008 году начались? А раньше где были?
__________________
Ох, как иногда хочется подумать!
BarbiЁ вне форума  
 
Автор темы   Непрочитано 11.05.2008, 20:16
#67
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


После такого поста мог бы почувствать себя полным блондином, если-бы в детстве не звали рыжим, а теперь в зеркале вижу почти лысого.
Цитата:
"Игры с CUI" почему-то в 2008 году начались? А раньше где были?
А раньше, в 2006, брал свое меню из 2005 и оно само устанавливалось как CUI. Подозреваю, так-же делали все, кто имел свое меню. Изучение создания своего меню для новых пользователей на них и возлагалось. Но, по-видимому, не нашлось таких людей, которые не только разобрались-бы с этим вопросом, но и подняли бы тему на форуме. Поэтому с некоторым опозданием я отважился это сделать. A Вы, уважаемая блондинка, отважитесь-ли на статью, как это сделать по вашему методу?
Vova на форуме  
 
Непрочитано 11.05.2008, 20:56
#68
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Интересно мне, взялись бы авторы ruCAD за свой и без того нелегкий труд сегодня, имею только формат XML и UTF-8? Надо помнить. что подавляющее большинство пользователей не обладают таким познаниями и таким опытом, как ShaggyDoc, Alaspher или BarbiЁ. Свои фрагменты меню в формате TXT я могу записывать даже на стареньком компьютере без AutoCAD'а и отлаживать даже на AutoCAD 14. Однако дополнительные возможности CUI можно добавить уже внутри AutoCAD'а 2008, например. А для этого мне совсем не надо вникать в XML без крайней на то необходимости.
Profan вне форума  
 
Непрочитано 12.05.2008, 08:22
#69
BarbiЁ

блондинка
 
Регистрация: 27.11.2007
Планета Плюк 215 в центуре, галактика Кин-Дза-Дза
Сообщений: 25


Цитата:
А раньше, в 2006, брал свое меню из 2005 и оно само устанавливалось как CUI
Мы тоже так делали. Взяли старый MNU, оно сохранилось как CUI. Потом потыкались с дебильным "гуёвым" диалогом для CUI и стали редактировать в обычном текстовом редакторе. Писать абсолютно свой CUI с нуля (или с ноля) не стоит- надо взять любой подходящий существующий и отсекать всё ненужное, добавляя свое

Цитата:
A Вы, уважаемая блондинка, отважитесь-ли на статью, как это сделать по вашему методу?
Мне не положено. Я блондинка. Мне читать положено гламурные журнальчики. Да и чё писать-то?

Вот пункт меню:

Код:
[Выделить все]
<MenuMacro UID="RU_LAY_SHOW_BY_ONE">
        <Macro type="Any">
          <Revision MajorVersion="16" MinorVersion="2" UserVersion="1" />
          <ModifiedRev MajorVersion="16" MinorVersion="0" UserVersion="1" />
          <Name xlate="true" UID="XLS_0073">Пролистай слои</Name>
          <Command>^C^C^P(defun C:RU()(ru-app-load "common/ru_layer_show_by_one"));RU  </Command>
          <HelpString xlate="true" UID="XLS_1929">Просмотр по одному слоев с возможностей оставления выбранных</HelpString>
          <SmallImage Name="RU_LAY_LIST_16" />
          <LargeImage Name="RU_LAY_LIST_24" />
        </Macro>
</MenuMacro>
Все по правилам XML.
Элемент MenuMacro - пункт меню. У него есть атрибут UID. UID сочиняем сами - чтобы уникальными были.

Элемент Macro имеет атрибут type="Any". Оставляем такой всегда.

Элемент Revision с атрибутами MajorVersion="16" MinorVersion="2" UserVersion="1" оставляем

Элемент ModifiedRev с атрибутами MajorVersion="16" MinorVersion="0" UserVersion="1" оставляем. Гуёвый диалог их может менять. А нам наплевать

Элемент Name xlate="true" UID="XLS_0073">Пролистай слои</Name> в своем содержимом имеет строку, отображаемую в меню. Атрибут xlate всегда оставляю true. UID свой вписываю. Может быть и можно в документации найти назначение.

Элемент <Command>^C^C^P(defun C:RU()(ru-app-load "common/ru_layer_show_by_one"));RU </Command> содержит выполняемый макрос.

Элемент <HelpString xlate="true" UID="XLS_1929">Просмотр по одному слоев с возможностей оставления выбранных</HelpString> - хинт подсказки

Элемент <SmallImage Name="RU_LAY_LIST_16" /> - маленькая иконка, содержащаяся в dll. Имя dll должно быть такое же, как меню.

Элемент <LargeImage Name="RU_LAY_LIST_24.BMP" /> большая иконка. Здесь я приписала расширение bmp - значит брать из файла. Всё, как в MNU.

Цитата:
Интересно мне, взялись бы авторы ruCAD за свой и без того нелегкий труд сегодня, имею только формат XML и UTF-8
А собственные меню там в XML были еще в Autocad-14. Их сергей Александрович с Сашей Якушиным придумали. И еще получше, чем CUI. Там есть, например, атрибут include который позволяет на лету включить в нужное место содержимое другого файла. А также атрибуты comment (любой текст для описания), image (любая большая картинка, которую можно на лету с экрана вырезать).

А в CUI всякие ModifiedRev явно для внутренних целей и технологически не нужны для отображения.

Редактировать XML можно во множестве универсальных визуальных редакторов - если угловых скобок бояться. В ruCAD тоже есть такой, но удобнее всего обычным текстовым работать. Что касается кодировки UTF-8, то это общая тенденция "глобализации". Типа, любой язык можно отобразить, хоть китайцев, хоть других "маленьких народцев". В интернете сейчас многие системы в UTF-8 пишут, заставляют всё в этой кодировке делать. Но она же лишние байты занимает, это немалый траффик. Кто-то в 2 раза бабок больше срубит. Но в XML можно в прологе и кодировку записать. Не просто

Код:
[Выделить все]
<?xml version="1.0"?>
а

Код:
[Выделить все]
<?xml version='1.0' encoding='windows-1251'?>
и любая приличная программа обязана отображать содержимое такого XML в русской кодировке. Сама я правда не проверяла, является ли AutoCAD приличной программой.

Цитата:
мне совсем не надо вникать в XML без крайней на то необходимости
Ну не надо, так не надо. Мне тоже было не надо. Тоже на заслуженный отдых готовлюсь. Но приспичило вот. Ну и щелкайте по кнопкам. CUI-редактор тоже помаленьку совершенствуется.

PS. может я что не так написала, ShaggyDoc, если вернётся, поправит.
__________________
Ох, как иногда хочется подумать!
BarbiЁ вне форума  
 
Непрочитано 12.05.2008, 08:58
#70
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Ох, как хочется иногда поспать!
Profan вне форума  
 
Непрочитано 12.05.2008, 18:13
#71
Startrek

AutoCAD/AutoLISP
 
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133


Я не блондин, не рыжий, и даже пока не лысый (хоть и намечаются перемены ну на самой макушке разве что) а вот писать CUI как предлагает уважаемая "блондинка"
у меня нет ВРЕМЕНИ - мягко говоря, а по простому - ГЕМОРОЙ ЭТО сплошной... Или надо делать как AutoCAD советует через CUI или писать старым способом пока возможно для скорости... а в принципе, какая разница - лиш бы работало.
__________________
Сквозь тернии к звездам.... и обратно :yes:
Startrek вне форума  
 
Автор темы   Непрочитано 12.05.2008, 21:03
#72
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Startrek, конечно, неправильно написал. Дескать, какая разница КАК, лишь бы быстро и работало. Мы ведь здесь обсуждаем именно КАК. Меню обычно делается не спеша, с чувством-толком-расстановкой. "Статья" от Блондинки, получилась, ммм, чуть-чуть трудновата для понимания. Даже Profan-a в сон потянуло. А ведь он один из самых продвинутых среди нас. Давайте сделаем так: как будто вся наша аудитория состоит из одних беззубых блондинов. Нам надо разжевать и в рот положить. Да так разжевать, чтобы сомнения не осталось что меню наиболее правильным и интуитивно понятным способом делается именно ТАК. А другие способы-фуфло, потому что имеют следующие недостатки: .......
Вы упрекнули меня, написавшего статью о меню на общественных началах, что я долго телился. 2 года. И это в некоторой степени обидно. А может вы так скоро среагировали, что не разобрались сразу с этим "гуёвым" CUI? Чем дальше в лес, тем он меньше таким кажется. Вот если-бы побыстрее открывался, то вообще был-бы и неплох.
Vova на форуме  
 
Непрочитано 12.05.2008, 21:26
#73
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Vova, я ведь озаботился CUI еще в 2005 году:
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=16728Xx
И другие пользователи тоже и на этом форуме тоже...
Profan вне форума  
 
Непрочитано 13.05.2008, 02:11
#74
KAI

геологоразведка, строительство
 
Регистрация: 14.10.2003
Магадан
Сообщений: 311


А кому что нравится.
Мне, например, нравится держать меню в *.MNU, привычно (еще с 10), и если AutoCAD это пока поддерживает, меняться не собираюсь.
А вот если это прекратится, тогда придется следовать советам госпожи BarbiЁ.
__________________
Лень - великий двигатель прогресса!
KAI вне форума  
 
Непрочитано 13.05.2008, 02:42
#75
Startrek

AutoCAD/AutoLISP
 
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133


Да не кипятись vova, я как и profan побаловался с partial CUI
в 2005-м, Все работает, все путем - только мне легче с моим простеньким лиспом - все дело занимает 15 минут и готово, ну а с CUI - минут 30. Конечно все при условии хорошей подготовки комманд/лиспа и MNL
__________________
Сквозь тернии к звездам.... и обратно :yes:
Startrek вне форума  
 
Автор темы   Непрочитано 13.05.2008, 06:51
#76
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Да ладно, меня более смущает другое. И Profan, и Залетный, и Startrek, и Kai делали свои меню еще на старых автокадах. Потому что они старые и при этом продвинутые пользователи. А есть-ли среди нас новые пользователи, которые продвинулись недавно и которые сделали хотя-бы одно меню? Ведь это для них я старался. Все, кто сделал хотя-бы несколько кнопок. Куда и как вы их размещаете?
Vova на форуме  
 
Непрочитано 13.05.2008, 07:11
#77
BarbiЁ

блондинка
 
Регистрация: 27.11.2007
Планета Плюк 215 в центуре, галактика Кин-Дза-Дза
Сообщений: 25


Хе-хе. Собрались, мягко говоря, ветераны битв с Автокадом (а грубо выражаясь - покрытые шрамами суровые бойцы) - Vova, Profan, Startrek, KAI и убеждают друг друга, что MNU - оно лучше. Привычнее. И соглашаются друг с другом - "да, вода раньше мокрее была". Или "ох как хочется поспать". Как тут деушке спорить?

Vova вообще обиделся
Цитата:
упрекнули меня, написавшего статью о меню на общественных началах, что я долго телился. 2 года. И это в некоторой степени обидно
Я понимаю конечно, что там в Америке не то, что у нас в Раше, нельзя взять и поставить самый свежий Автокад. Хозяева еще должны его купить, потому и разборки запоздали. А на "обсчественных" началах мы все тут. Здесь вам не там.

Относительно CUI есть две проблемы:

1. Формат файла. Здесь, на мой девичий взгляд, сделано все правильно и с перспективой. Только еще раньше надо было. Но Аутодеск подло поступает - не публикует официально формат, а точнее - перечень имен элементов, атрибутов, их назначение и возможные значения. Приходится разбираться самостоятельно.

Формат файла XML вообще и CUI, ATC, AWS в частности, надо знать тем кто занимается хотя бы адаптацией. Блондинкам можно не знать, а "не рыжий, и даже пока не лысый" представление иметь должен. Зная формат можно ведь тоже CUI Лиспом написать.

Никакой "статьи" "трудновато для понимания" я не писала. Не моих мозгов дело, так реплика была. Иначе надо было бы разъяснить, что такое пролог, элементы, атрибуты, содержимое, как угловые скобки и кавычки ставить. Но про это полно книг и материалов в Интернете.

2. Диалоговое окно редактирования CUI. Сделано, на мой взгляд, неудобно и не очень логично. Нет "интуитивной понятности", особенно при трансферте. Но в справке-то описано. Вот если бы в справке, одновременно с описанием действий в диалоге еще и описывался результат в виде значений атрибутов, было бы правильно. Медленно грузит из-за того, что используют парсер от Майкрософт MSXML. Он самый медленный из всех известных.

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

В это ветке я предлагаю попытаться совместно раскрыть "секреты" CUI - что, зачем и как прописать. Если интересно, могу написать кратко вообще про XML - это один пост займет, а потом сообща публиковать результаты отслеживания изменений текста меню после всяких диалоговых операций.

Вот, например, xlate - что-то связано с трансляцией. А как оно связано с отображением пункта меню и хинта - непонятно пока.

Для интереса сейчас рисую собственное экспериментальное меню только редактором, с нуля, и с нарушением правил Аутодеск - кодировка и без "ненужных" атрибутов. Что выйдет - напишу здесь через день-другой.
__________________
Ох, как иногда хочется подумать!
BarbiЁ вне форума  
 
Непрочитано 13.05.2008, 07:21
#78
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Цитата:
Сообщение от Vova Посмотреть сообщение
Да ладно, меня более смущает другое. И Profan, и Залетный, и Startrek, и Kai делали свои меню еще на старых автокадах. Потому что они старые и при этом продвинутые пользователи. А есть-ли среди нас новые пользователи, которые продвинулись недавно и которые сделали хотя-бы одно меню? Ведь это для них я старался. Все, кто сделал хотя-бы несколько кнопок. Куда и как вы их размещаете?
А я плюнул на этот интерфейс, кидаю все кнопки на палитру и плюю в потолок. В 2008-м появился продвинутый пульт управления, надо его осваивать, однако краем уха слышал что в 2009-м он пропал (толи обозвали по другому, толи появился более совершенный инструмент). Так и перекантуемся, а там глядишь и визуальную настройку gui подтянут. В 2008 уже вот, метод перетаскивания кнопок появился. AutoCAD так быстро меняется что привязываться надо только к чему-то фундаментальному, т.е. проги на lisp еще можно писать (и то не слишком сложные), а вот интерфейс они еще на 10 раз переделают.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 16.05.2008, 03:38
#79
KAI

геологоразведка, строительство
 
Регистрация: 14.10.2003
Магадан
Сообщений: 311


Сударыня BarbiЁ, я вас обожаю! И уже давно. За стиль изложения материала. И наконец в этом признаюсь!
__________________
Лень - великий двигатель прогресса!
KAI вне форума  
 
Непрочитано 16.05.2008, 07:05
#80
BarbiЁ

блондинка
 
Регистрация: 27.11.2007
Планета Плюк 215 в центуре, галактика Кин-Дза-Дза
Сообщений: 25


Цитата:
Сообщение от KAI Посмотреть сообщение
Сударыня BarbiЁ, я вас обожаю! И уже давно. За стиль изложения материала. И наконец в этом признаюсь!
К сожалению, я не сударыня. Не потяну. Так как сегодня пятница, а в пятницу после обеда у нас по расписанию порка на конюшне, и много шансов, что меня туда опять поволокут. По совокупности.

Но раз все равно пропадать, опишу предварительные результаты экспериментов с редактированием CUI. Это не статья, а так, бред сивой блондинки.

Написала вручную с нуля маленький экспериментальный CUI-файл.

1. Сделала его не в кодировке UTF-8, а в windows-1251. Для этого в прологе написала
Код:
[Выделить все]
<?xml version="1.0"  encoding="windows-1251"?>
А потом все русские буковки также писала в ansi.

Сразу скажу - AutoCAD прочитал этот файл и правильно его отобразил. Но вот если потом его открыть в штатном диалоговом редакторе,
то сохранен он будет вновь в кодировке UTF-8
, да еще будет вставлен комментарий о недопустимости редактирования вручную.
Вот редиски! Впрочем, кодировку меняла только для пробы - чё получится. Ничего не мешает писать и в UTF-8 с использованием
редактора Notepad++. Там, если задать синтаксис XML, будет и подсветка приличная, и можно соврачивать-разворачивать структуру.

2. О структуре CUI.

Это XML-файл. В первой строке - пролог, о котором я уже писала. Далее идут элементы. В соответствии с правилами валидного XML
должен быть один корневой элемент. Для CUI это
вторая значащая (выкидывая комментарий) строка имеет стандартный вид

Код:
[Выделить все]
<CustSection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
А это последняя строка файла - конец корневого элемента

Код:
[Выделить все]
</CustSection>
В пределах CustSection могут быть вложенные элементы.
Можно без некоторых из них обойтись. Вот без этих:

FileVersion

Header, а внутри него

CommonConfiguration

WorkspaceRoot

Если, например, нетути рабочих пространств, которые надо описать.
Можно не писать также

ScreenMenuRoot
ImageMenuRoot
TabletMenuRoot
DoubleClickRoot
ToolPanelRoot
PanelSetRoot

Если нет таких меню.
Можно не включать

AcceleratorRoot
OverrideRoot
MouseButtonRoot
DigitizerButtonRoot

если нет переназначения горячих клавиш и кнопок.

Если нет панелей инструментов, можно не создавать элемент
ToolbarRoot.

В редких случаях, когда нет собственного меню, можно выкинуть элемент PopMenuRoot, но оставить ToolbarRoot.

Тогда останется минимальное стандартное меню AutoCAD (Файл, Вид, Окно, Справка) и наши панельки.

Везде можно не прописывать элементы с их атрибутами:

Код:
[Выделить все]
          <Revision MajorVersion="16" MinorVersion="2" UserVersion="1" />
          <ModifiedRev MajorVersion="17" MinorVersion="1" UserVersion="1" />
В элементах Macro - описаниях пунктов меню можно выбросить вложеные элементы

HelpString, SmallImage и LargeImage - просто без них не будет строки подсказки (хинта) и картинок.

Нельзя выбрасывать:

а) MenuGroup - должен быть хотя бы один такой элемент. Без группы CUI загрузится, но ничего не отобразится.

б) атрибут xlate - если его убрать, будет ошибка и меню не загрузится. А что оно означает - пока не поняла. В диалоговом окне это свойство не отображается.

Вообще-то это свойство используется в .NET примерно так:
Код:
[Выделить все]
   if(!xlate)
   {
      MessageBox.Show("Translation is enabled");

      this.xlate = true;
   }
   else
   {
      MessageBox.Show("Translation is disabled");

      this.xlate = false;
   }
но зачем здесь - непонятно

Назначение атрибутов атрибутов опишу позже. Например, если

IsSeparator="true" - после пункта меню будет выведена черта разделителя.


3. Что делает AutoCAD после того, как написанный вручную диалог побывает в редакторе CUI

1. Сохраняет в кодировке UTF-8
2. Вставляет предупреждающий warning.
3. Вставляет версию и заголовок
Код:
[Выделить все]
 <FileVersion MajorVersion="0" MinorVersion="4" IncrementalVersion="1" UserVersion="1" />
  <Header>
    <CommonConfiguration>
      <CommonItems>
        <ModifiedRev MajorVersion="17" MinorVersion="1" UserVersion="1" />
      </CommonItems>
    </CommonConfiguration>
    <WorkspaceRoot>
      <WorkspaceConfigRoot />
    </WorkspaceRoot>
  </Header>
4. Вставляет пустые элементы
Код:
[Выделить все]
      <AcceleratorRoot />
      <OverrideRoot />
      <MouseButtonRoot />
      <DigitizerButtonRoot />
      <ScreenMenuRoot />
      <ImageMenuRoot />
      <TabletMenuRoot />
      <DoubleClickRoot />
      <ToolPanelRoot />
      <PanelSetRoot>
        <PanelSet UID="PSTU_0001" />
      </PanelSetRoot>
5. Если какой-то пункт был отредактирован в диалоге, вставляет в него
Код:
[Выделить все]
<ModifiedRev MajorVersion="17" MinorVersion="1" UserVersion="1" />
В общем, если взять свой минимальный CUI, а потом редактировать в диалоге и сравнивать результаты действий в диалоге с изменениями исходника, то можно и все секреты вытащить.
__________________
Ох, как иногда хочется подумать!
BarbiЁ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Игры с CUI



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игры в 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