Вы успели поработать с адаптированной Лентой, какие впечатления?
У меня – не радужные. Может это сила привычки, но даже в свернутом состоянии вызов команды происходит дольше, чем с палитры. Конечно, во всем должен быть компромисс, кому-то может быть лучше так, другому – так… Я буду третьим, тем которому не открылись прелести использования Ленты /Ribbon/, поэтому я делаю шаг назад к классическим палитрам с иконками и инструментальной палитре.
В работе конструктора-проектировщика есть несколько этапов:
–  прорисовка эскиза,
– превращение эскиза в объект (модель),
– подготовка объекта к размещению на листе,
– оформление чертежа,
– вывод на печать.

Для каждого этапа потребуется свой набор команд и операций. Определив, достаточной степени приблизительно, эти команды, посмотрим, как их удобнее вызывать (с минимальным количеством телодвижений), какой способ вызова займет меньше места на экране, будет удобнее. Рассмотрим подробнее.

Внимание !!!
Перед началом советую сохранить все настройки, как рекомендуют разработчики, https://knowledge.autodesk.com/ru/support/autocad/learn-explore/caas/sfdcarticles/sfdcarticles/RUS/How-to-import-and-export-backup-settings-to-and-from-AutoCAD.html

ЭСКИЗ
На этом этапе нужны стандартные команды рисования и редактирования. Этот набор команд можно собрать на одной панели, можно открыть стандартные панели. Вот как это будет выглядеть на экране.

На верху по середине расположена панель иконок TOOLBAR DRAW (Палитра Рисование), ниже панели рисования, оторванные от ЛЕНТЫ, моя адаптированная (слева) и стандартная (справа). Очевидно, что меньшую площадь экрана занимают иконки TOOLBAR DRAW. Подписи, служебные кнопки раскрытия окна панели и возврата в ЛЕНТУ занимают место, но если ежедневно по несколько десятков раз в день вызывать команду «LINE» («Отрезок») нужна ли подпись этой кнопке? Я скажу – нет, не нужна, найти ее опытный пользователь может по одной иконке на палитре. Справа, вид по умолчанию, вкладка Draw Инструментальной палитры. Сюда, для экономии места, можно вынести только часто используемые команды для уменьшения занимаемой площади, а можно еще изменить вид вкладки в ее опция, оставив только иконки.

По-моему, явная победа в минимизации занимаемого места на экране за Инструментальной палитрой, на втором месте Палитра Иконок (ToolBar), ну а третье оставим за Лентой.
Не исключаю, что в Ленте есть опции для уменьшения, о которых я еще не знаю. Знаете вы – подскажите.

Аналогичная ситуация и панелями редактирования чертежа.

Ну, что отказываемся от использования Ленты и возвращаемся к классическому виду AutoCAD?
Я бы не спешил, наверняка Лента нам еще пригодится. Если у вас есть свои, дополнительные программы или вы хотите собрать свою палитру из стандартных команд, которые вы часто используете – читайте дальше.
Надо немного затронуть тему создания пользовательского меню, структуру и загрузку (адаптация).

СОЗДАНИЕ СВОЕГО МЕНЮ

Я опять рекомендую создавать свое меню отдельно от меню системы для удобства переноса и редактирования, а на данном этапе еще и для понимания.
Пока есть еще возможно подгружать «старые» текстовые меню (вдруг разработчики прикроют эту возможность), рассмотрим структуру меню в текстовом виде.
Файл текстового меню имеет расширение *.mnu и состоит из нескольких разделов. Ознакомление с файлом меню, позволит вам также запускать программы на исполнение из командной строки.
Ввод команд в системе AutoCAD осуществляется с помощью меню или из командной строки. При вызове того или иного пункта меню системе передается управляющий код. Управляющий код может быть простым или сложным, включающим в себя различные проверки, переходы по условиям, загрузку и запуск программы на исполнение.
Сначала надо загрузить приложение lisp-программу в систему, это выполняется командой «LOAD». Только после успешной загрузки программу можно запускать на исполнение. Приложения написаны на языке AutoLisp и хранятся в обычных текстовых файлах ASCII и имеют расширение *.lisp. Хранить файлы советую в отдельной папке, к которой необходимо указать  путь доступа (Tools/Options/Files). Если этого не делать, то придется писать полный путь к приложению.
Команда загрузки файла «mylisp.lsp» будет выглядеть следующим образом:

(Load «mylisp»)

Расширение файлу прописывать тут не обязательно, также не обязателен второй аргумент программы, отвечающий за ошибку, который в командной строке вообще не вводится.
В случае удачной загрузки команда LOAD  выдает значение последнего выражения или подсказка к использованию приложения, если есть.
При неудачной загрузке (ошибка в коде программы, неправильное имя файла или неверный путь к нему) выдается сообщение об ошибке.

Вызов программы на исполнение следующий
(C:mylisp) – если «mylisp» имя главной функции, прописанное в коде как 
(defun c:<mylisp> (……..
В большинстве случаев имя файла
lisp-программы и имя главной функции совпадают, но лучше проверить, если код программы открыт.

Загружать программу в каждом сеансе работы немного не удобно. Для удобства создадим свое меню с набором используемых программ. Можно создать меню и в редакторе адаптации пространств, но я покажу как создать меню ручками в текстовом файле, а уж потом вы без труда поймете как его создать в редакторе менеджера адаптации меню.

ВЫПАДАЮЩЕЕ МЕНЮ

Файл меню состоит из нескольких разделов. Нам интересны разделы:
– POP1…POP15 – падающие группы текстового меню,
-TOOLBARS – панели (или набор иконок) меню.

Вот пример файла меню.

//      AutoCAD menu file – PG    
так выделяется строка комментарий, которая не будет компилирована системой

***MENUGROUP=PG
Имя меню, которое будет отображаться в системе, совпадает с именем файла меню (pg.mnu)

***POP1
первое выпадающее текстовое меню

[Установка Переменных]
Имя меню, которое отобразится в строке меню

[Подсветка выделенного]SELECTIONEFFECT;0
Первый пункт меню приравнивание системной переменной нулю

[Четкость линии]_GRAPHICSCONFIG;
Вызов окна настройки графики

[Выделение]SELECTIONPREVIEW;0
Устанавливаем значение системной переменной ноль.

***POP2
второе выпадающее текстовое меню

***POP3
третье выпадающее текстовое меню

***POP…
и далее сколько нужно, но в пределах разумного и ширины экрана монитора.

Порядковые номера выпадающих меню номеруются от первого до… без пропусков. На экране монитора AutoCAD выстраивает пункты в общую строку соответственно очередности загрузки.
Можно еще задать каждой команде идентификатор ID, но не будем особо углубляться в структуру файла, работать будет и так, а текстовое меню используется все реже и реже.
Когда сделаете свое меню, загрузите в систему и запустите менеджер адаптации пространств.

Найдите свое меню (в данном случае «pg»), но расширение у него будет уже *.cuix – результат компиляции. В разделе MENUS раскрыто наше первое выпадающее меню, справа в свойства то, что мы записывали в текстовый файл меню ручками и ниже – возможность добавить к пункту меню картинку, как и для палитр (toolbars). Есть в списке и номер ID, который система добавила сама.
Теперь пункты свойств не кажутся вам «китайской грамотой», надеюсь в основном понятие есть, а по мелочам разберетесь сами., а потом же есть еще «HELP» / «Справка», где очень много полезно, но цель у нас создать простенькое меню, чтобы максимально освободить экран монитора от лишних менюшек, собрать все нужное в одну-две палитры и минимизировать передвижение по экрану для вызова команд на исполнение. Поэтому пойдем дальше – Палитры иконок (ToolBars).

ПАЛИТРЫ ИКОНОК / TOOLBARS

Это следующий раздел нашего меню, представляющий наибольший интерес. Сначала текстовый вариант.
Если мы захотим вызывать программу «Wall», например, хранящуюся в файле «Wall.lsp», то в текстовом выпадающем меню мы должны дописать следующую строчку в POP2 или любую другую:

***POP1
[Установка Переменных]
[Подсветка выделенного]SELECTIONEFFECT;0
[Четкость линии]_GRAPHICSCONFIG;
[Выделенеие]SELECTIONPREVIEW;0

***POP2
[
Программы 1]
[Бункер]^C^C^P(if(= C:Silo nil)(load “Silo”));Silo;

***POP3

Разберем подробнее:

[Программы 1] – название пункта в текстовой строке меню
[Контур здания] – пункт выпадающего меню вызова программы
^C^C^P(if(= C:Silo nil)(load “Silo”));Silo; -строка вызова программы

Строка вызова делает следующее:
последовательность символов «^C^C» аналогична двойному нажатию «Esc», т.е. мы отменяем все возможные запущенные программы, командная строка очищена.
^P – выключает отображение эхо-вывод в командной.
Далее лисп-выражение, проверяется загружена ли программа «Silo» в текущий сеанс работы.
Если НЕТ – загружается, после, в любом случае, вызывается на исполнение.
Все просто.
Теперь посмотрим на эту строку в разделе «TOOLBARS», где вместо текстовой строки вызов команды осуществляется по нажатию на иконку программы, которая создается отдельно и хранится в файле с расширением «*.bmp».
Сравните строки:

[_Button(“Бункер”, “Silo.bmp”, “Silo.bmp”)]^C^C^P(if(= C:Silo nil)(load “Silo”));Silo;

Вместо текстового пункта появилось следующее:

[_Button(“Бункер”, “Silo.bmp”, “Silo.bmp”)]

Идентификатор кнопки «_button», всплывающая текстовая подсказка и имена двух файлов иконок (icon) маленький (16х16) и большой формат (32х32). Мне достаточно одного, как-то обхожусь, система не просит.

Кнопки объединяются на палитре (toolbar). Палитры могут быть закреплены в верхних сроках экрана или быть «плавающими», свободно перемещаться по экрану.
Отдельные палитры могут входить в другие, как раскрывающиеся списки, каскадные меню (см. рисунок).

При наведении курсора на иконку появляется подсказка с именем, которое мы записали.

Вот пример палитры под названием «2017»

***TOOLBARS
**2017
[_Toolbar(“2017”, _Floating, _Show, 100, 200, 1)]
[_Flyout(“Оборудование”, “Wall.bmp”,”Wall.bmp”, _OtherIcon, PG.EQUIP]
[_Flyout(“Redo”, “blocks.bmp”,”blocks.bmp”, _OtherIcon, PG.REDO)]
[_Button(“Бункер”, “Silo.bmp”, “_Silo.bmp”)]^C^C^P(if(= C:Silo nil)(load “Silo”));Silo;

«_Floating» (плавающая), видна после загрузки меню («_Show») в позиции x=100, y=200 пикселях экрана, «_Hide» – скрыта, не видна на экране. Далее количество рядов, которые занимает панель в плавающем положении на экране.
«_Top» панель зафиксирована в верхнем положении.
«_Bottom», «_Left», «_Right» – фиксация в нижнем, левом или правом положении.
Дальше кнопка с падающем меню «Оборудование». Сама палитра «EQUIO» должна быть прописана ниже. Заглавная картинка обычно берется от первой команды палитры «оборудование», далее указывается, что эта кнопка вызывает другую палитру из меню «PG» под именем «EQUIP». Ниже пример этой палитры:

**EQUIP
[_Toolbar(“Оборудование”, _Floating, _Show, 140,320,1)]
[_Button(“Контур здания”, “Wall.bmp”, “Wall.bmp”)]^C^C^P(if(= C:Wall nil)(load “Wall”));Wall;
[_Button(“Станок”, “Pen.bmp”, “Pen.bmp”)]^C^C^P(if(= C:Pen nil)(load “Pen”));Pen;

Вслед за описанием панели идет описание  самих кнопок  «_Button».

Также в палитру может входить окно управления «_Control», которое можно найти и скопировать из основного меню AutoCAD. Можно внедрять и другие команды системы.

**PG_Control
[_Toolbar(“Control”, _Floating, _Show, 110, 230, 1)]
[_Button(“DC”,”DC.bmp”,”DC.bmp”)]$M=$(if,$(and,$(getvar,adcstate),1),’_adcclose,’_adcenter)
[_Button(“Стиль Текста”,”tedit.bmp”,”tedit.bmp”)]’_style
[–]
[_Control(_TxtStyle)]
[_Control(_Linetype)]
[_Control(_Color)]

Число кнопок и самих палитр – не ограничено, в разумных пределах.

В меню есть еще один раздел «IMAGE» – меню выбора, состоящее из картинок, но в последних версиях оно используется все реже и реже. Оставлю в покое и другие разделы.

На картинке пример такого меню, заполненного не до конца, справа – текстовый вариант выбора, слева – графический. Картинки являются слайдами, их удобнее сгруппировать в библиотеку.


Попытайтесь создать для себя три набора панелей со своими командами (часто используемые): на «ЛЕНТЕ», на палитрах с иконками и на инструментальной палитре – что вам придется «по душе», как будет удобнее работать. Будет желание, поделитесь результатами.
Я, «для затравки», сделал простенький набор первоочередных команд для ускорения работы:

**QuickWork
[_Toolbar(“QuickWork”, _Floating, _Show, 50, 230, 1)]
[_Button(“Line”, “RCDATA_16_LINE”, “RCDATA_32_LINE”)]^C^C_line
[_Button(“PoliLine”, “RCDATA_16_PLINE”, “RCDATA_32_PLINE”)]^C^C_pline
[—]
[_Button(“Erase”,”RCDATA_16_ERASE”,”RCDATA_32_ERASE”)]^C^C_erase
[_Button(“Copy”,”RCDATA_16_COPYOB”,”RCDATA_32_COPYOB”)]$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_copy,^C^C_copy)
[_Button(“Move”,”RCDATA_16_MOVE”,”RCDATA_32_MOVE”)]$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_move,^C^C_move)
[—]
[_Button(“Dim_Linear”, “RCDATA_16_DIMLIN”, “RCDATA_32_DIMLIN”)]^^C^C_dimlinear


Вставьте этот кусочек в свое меню в раздел «***TOOLBARS» и получите, после компиляции меню следующую палитру:

Всю необходимую информацию для создания пунктов меню взял с менеджера адаптации пространств.

Успехов!
Помните, все это вы делаете на свой страх и риск, вся ответственность за сделанное, лежит на вас лично. Будьте внимательны и переустановка системы вам не грозит!

Надеюсь статья была интересной и полезной. В сети очень много другой информации по AutoCAD, тут же я просто делюсь своими наработками, знаниями.
Наверняка, многих вещей я еще и сам не изучил и не знаю.

Пишите отзывы, задавайте вопросы, будем разбираться вместе.

От Genchik