Внутри палитр инструментов в AutoCAD, часть 3. Удаление инструментов и палитр.
Мы уже разобрали, что происходит при добавлении каталога и при объединении палитр инструментов в группы. Предлагаю разобрать ситуацию удаления инструментов из палитры или целиком палитры.
Для полноты картины сначала удалим инструмент средствами AutoCAD, потом отредактируем файл *.atc (удалив инструмент), потом удалим полностью палитру через AutoCAD - и проверим, что и когда меняется. Естественно, удаляем инструменты с дополнительных палитр, штатные не трогаем.
Начнем с удаления инструмента через AutoCAD. Что самое интересное, механизм удаления инструментов одинаков для всех версий AutoCAD.
При запущенном AutoCAD | После закрытия AutoCAD |
Удаляется рисунок (рисунки) из каталога Images, отвественный за отображение инструмента | Из файлов Profile.aws (и для AutoCAD 2009 - FixedProfile.aws), а также файла соответствующей палитры (atc) удаляется запись об удаленном инструменте. Поиск данных об инструменте выполняется не по имени, а по следующему закону:
При внесении изменений а файлы *.atc необходимо дополнительно внести изменения в узел Palettes -> Properties -> Time, изменив атрибуты createdUniversalDateTime, modifiedUniversalDateTime и refreshedUniversalDateTime по принципу "ГГГГ-ММ-ДДTЧЧ:ММ:СС". Символ "Т" пишется на английском языке и является обязательным. |
Удаление палитры также происходит практически одинаково для всех версий AutoCAD:
При запущенном AutoCAD | После закрытия AutoCAD |
Удаляется рисунок (рисунки) из каталога Images, отвественный за отображение инструмента | Вносятся изменения в FixedProfile.aws, Profile.aws. Уничтожаются упоминания об удаленной палитре из этих файлов, описаний групп и... И все! Файл *.atc не удаляется! Выполняется поиск узла с именем Palette и значением атрибута ID, равном GUID удаляемой палитры. |
Теперь попробуем во время загрузки AutoCAD'a его притормозить - ну, например, внеся в файл acaddoc.lsp элементарную конструкцию вида
1 | (alert "Stop!") |
И до тех пор, пока в AutoCAD'е висит это модальное окно, внесем принудительные изменения в файлы палитр и aws. И вот тут выяснится очень интересная особенность:
- Удаление записи об инструменте только из файла atc не ведет к изменению отображения соответствующей палитры (конечно, при условии, что она уже была "откеширована" в Profile.aws (и для AutoCAD 2009 - дополнительно в FixedProfile.aws)
- Если удалить запись об инструменте из aws (до момента показа палитр), то инструмент "исчезает" из палитры. Точнее, он не показывается пользователю