| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
27.02.2006, 22:37 | #1 | |
Фильтр слоев
ОВ
Северная столица
Регистрация: 09.11.2005
Сообщений: 161
|
||
Просмотров: 4278
|
|
||||
Хочу быть фотографом :) Регистрация: 21.10.2005
Москва, Кисловодск
Сообщений: 2,538
|
Какой у Вас Автокад? Разве групповой фильтр не способен решить эту проблему? Легко, по-моему.. При этом, если поставить в менеджере слоев еще и галочку "Apply to layers toolbar", можно прямо в выпадающем списке слоев на панели инструментов видеть только те, которые принадлежат выбранному фильтру группы
__________________
Камень на камень, кирпич на кирпич.. |
|||
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
|
Ну млин.... Самое простое - именовать свои слои, используя какой то префикс или суффикс. Например так:
LIS-тонкие LIS-осевые LIS-размеры Тогда свои слои легко отфильтруются по имени LIS-* Ну и галка "Apply to layers toolbar" В 2004 групп фильтров нет. |
|||
|
||||
ОВ Регистрация: 09.11.2005
Северная столица
Сообщений: 161
|
Цитата:
И последний вопрос, можно будет добавить в тот же фильтр, например А-* |
|||
|
||||
Регистрация: 15.04.2005
Сообщений: 243
|
Цитата:
;------------------------------------------------------------------ ;;; ;;; Function can define a named layer filter ;;; by Jacek (kojacek) [email protected] (2000) ;;; (defun dict:MlayerF (NAME FILTER / LayTbl ExtDict LayColl ExtDictData GrpList NewDict Temp XdLst XrecData NewXRec ) (setq LayTbl (cdr (assoc 330 (entget (tblobjname "LAYER" "0"))))) (setq ExtDict (cdr (assoc 360 (entget LayTbl)))) (if (not ExtDict) (progn (vl-load-com) (setq LayColl (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))) (setq ExtDict (vla-GetExtensionDictionary LayColl)) (setq ExtDict (vlax-vla-object->ename ExtDict)) ) ) (setq ExtDictData (entget ExtDict)) (while ExtDictData (setq Temp (if (= (caar ExtDictData) 3) (list (cons (cdr (car ExtDictData)) (cdr (cadr ExtDictData)))) ) ExtDictData (cdr ExtDictData) ) (setq GrpList (append GrpList Temp)) ) (if (or (not GrpList) (not (cdr (assoc "ACAD_LAYERFILTERS" GrpList)))) (progn (setq DictList (list (cons 0 "DICTIONARY") (cons 100 "AcDbDictionary"))) (setq NewDict (entmakex DictList)) (setq NewDict (dictadd ExtDict "ACAD_LAYERFILTERS" NewDict)) ) (setq NewDict (cdr (assoc "ACAD_LAYERFILTERS" GrpList))) ) (setq ExtDictData Nil Temp Nil GrpList Nil) (setq ExtDictData (entget NewDict)) (while ExtDictData (setq Temp (if (= (caar ExtDictData) 3) (list (cons (cdr (car ExtDictData)) (cdr (cadr ExtDictData)))) ) ExtDictData (cdr ExtDictData) ) (setq GrpList (append GrpList Temp)) ) (if (or (not GrpList) (not (cdr (assoc FILTER GrpList))) ) (progn (setq XdLst (list (cons 0 "XRECORD") (cons 100 "AcDbXrecord"))) (setq XrecData (append XdLst (list (cons 1 NAME)(cons 1 FILTER)(cons 1 "*")(cons 1 "*") (cons 70 0)(cons 1 "*")(cons 1 "*"))) ) (setq NewXRec (entmakex XRecData)) (dictadd NewDict Name NewXRec) ) Nil ) ) (dict:MLayerF "PLBG" "P-*,*|P-*,PZ-*,*|PZ-*,PZZ-*,*|PZZ-*,*|PE-*") (dict:MLayerF "FIRE" "F-*,*|F-*,FZ-*,*|FZ-*,FZZ-*,*|FZZ-*,*|FE-*") (dict:MLayerF "HVAC" "M-*,*|M-*,MZ-*,*|MZ-*,MZZ-*,*|MZZ-*,*|ME-*") (dict:MLayerF "ELEC" "E-*,*|E-*,EZ-*,*|EZ-*,EZZ-*,*|EZZ-*,*|EE-*") (dict:MLayerF "TELE" "T-*,*|T-*,EZ-*,*|TZ-*,TZZ-*,*|TZZ-*,*|TE-*") ;--------------------------------------------------------------- В 2004 прекрасно работает. Этот лиспик создаёт 5 фильтров: - PLBG, FIRE, HVAC, ELEC, TELE. По анологии можно добавить свои. |
|||