21 апреля 2009 г.

Tool Palettes. Enterprise Level

Созданные и размещенные в сетевом окружении Tool Palettes представляют собой довольно таки мощный инструмент для поддержания корпоративного стандарта предприятия. Они позволяют всем пользователям использовать одни и те же блоки, типы линий, штриховок и т.д. и т.п.. Но есть и свои минусы. Например, не получится сгруппировать должным образом палетки так, как мы привыкли их группировать, имея их на локальном диске. Поэтому приходится идти на кое-какие ухищрения, подробно расписанные неким John'ом из Австралии, здесь и здесь ;)
Итак, групировать будем просто раскидав палетки по папкам:
Имеем главную папку на сервере, например, \\Server\CADMAN\Toolpalettes. А в ней следующие папки, которые будут служить группами (рекомендую всегда называть папки на английском или использовать транслит, но для данной статьи оставляю имена на русском):
  • Генплан
  • Конструкторские
  • Архитектурные
  • ОВ и ВК
  • Электрика
  • и др.
В общем, создаем в каждой папке соответствующие palettes. Для этого в AutoCAD'е заходим в Options -> Files -> Tool Palettes File Locations и временно указываем ту папку, palettes которой в данный момент будем создавать. Проделываем все это для каждой из папок.
А теперь создадим быстрое переключение между Tool Palettes. Мы же в конце концов не так жестоки к пользователям чтоб принуждать их всякий раз заходить в Options и менять Tool Palettes File Locations на нужную в данный момент папку ;) Не знаю как у вас, но метод John'а, описанный во второй статье под названием Toolpalette Swapping у меня не сработал, но принцип остался тем же.
Вместо переключения папок с palettes посредством макроса типа "^C^C_ToolPalettesClose *_toolpalettepath "S:/!_ToolPalettes/ToolPalette" я использовал lisp-routine ToolPalettesPathSwapping.lsp следующего содержания:

;;;Глобальная перменная #CADMAN# назначается в acad.lsp
;;;и указывает на расположение главного каталога с файлами
;;;кастомизации на сервере (например "\\\\Server\\CADMAN")
;;;
;;;Загрузка ToolPalettes из папки "Конструкторские"
(defun C:TP_Structural (/ path)
(command "_ToolPalettesClose")
(setq path
(strcat
#CADMAN# "\\ToolPalettes\\Конструкторские"
)
)
(vla-put-ToolPalettePath
(vla-get-files (vla-get-preferences (vlax-get-acad-object)))
path
)
(command "_ToolPalettes")
)
;;;
;;;Загрузка ToolPalettes из папки "Архитектурные"
(defun C:TP_Architect (/ path)
(command "_ToolPalettesClose")
(setq path
(strcat
#CADMAN# \\ToolPalettes\\Архитектурные
)
)
(vla-put-ToolPalettePath
(vla-get-files (vla-get-preferences (vlax-get-acad-object)))
path
)
(command "_ToolPalettes")
)
;;;Я думаю суть ясна, проделываем то же самое для остальных папок.
;;;Естественно, что этот файл должен находится в соответствующей папке,
;;;путь к которой прописан в Support Files Search Paths AutoCAD'a.

Создаем панель инструментов, называем соответствующим образом, располагаем на ней кнопки, обозначающие группы palettes. К кнопкам прикручиваем макрос вида: ^C^C(if (not C:TP_Structural) (load "ToolPalettesPathSwapping"));TP_Structural;
Можно также последовать примеру John'а и сделать кнопку для загрузки локальных пользовательских palettes с таким макросом: ^C^C(command "ToolPalettesClose" "*_toolpalettepath" (strcat (getvar "ROAMABLEROOTPREFIX") "Support/ToolPalette") "ToolPalettes")
В итоге должно получиться что-то в этом роде ;-D

Комментариев нет:

Отправить комментарий