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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Копирование группы фильтров в другой чертеж

Копирование группы фильтров в другой чертеж

Ответ
Поиск в этой теме
Непрочитано 29.01.2008, 06:14 #1
Копирование группы фильтров в другой чертеж
serg01
 
Иркутск
Регистрация: 04.07.2005
Сообщений: 213

День добрый, подскажите пожалуйста, как скопировать группы фильтров в другой чертеж? Через менеджер копируются только слои, а структура групп не копируется. Т.е. все слои разбиты на группы и подгруппы, вот их структуру и нужно скопировать, не могу понять как сделать?
Просмотров: 6178
 
Непрочитано 29.01.2008, 06:24
#2
Valery Brelovsky

Инженер дорожник
 
Регистрация: 22.10.2007
Израиль
Сообщений: 1,859


А через буфер обмена.
Valery Brelovsky вне форума  
 
Автор темы   Непрочитано 29.01.2008, 06:32
#3
serg01


 
Регистрация: 04.07.2005
Иркутск
Сообщений: 213


Нет, не копируется
serg01 вне форума  
 
Непрочитано 29.01.2008, 07:01
#4
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Можно создавать программно.
Автор не Я
Вот код:
Код:
[Выделить все]
(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 "Арм" "*_арм_*")
(dict:MLayerF "Опал" "*_опал_*")
(dict:MLayerF "КЖ" "*_КЖ_*")
Если заниметесь Созданием стандартных слоев и организовываете работу в них то лучше это делать програмно.
Т.к. при пургене придется востанавливать необходимые слои и т.д.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.

Последний раз редактировалось DEM, 29.01.2008 в 07:03. Причина: Дополнения
DEM вне форума  
 
Автор темы   Непрочитано 29.01.2008, 08:43
#5
serg01


 
Регистрация: 04.07.2005
Иркутск
Сообщений: 213


DEM
Работает, спасибо. Но немного не то, нужно именно скопировать уже готовые из файла в файл. Группы фильтров к тому же не одноуровневые, есть вложения в ветках.
serg01 вне форума  
 
Непрочитано 29.01.2008, 22:48
#6
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


НУ дык если честно то сейчас думаю над прогой которая автоматически создавала как слои так и группы фильтров.
Пока придумал некое подобие программы но все руки не доходят до её написания.
Ну а самое простое что мог бы тебе предложить так это использовать шаблоны,
или *dws файлы.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 30.01.2008, 01:14
#7
T-Yoke

Артиллерист - вертолётчик. Дипломированный инженер-механик. Technologist
 
Регистрация: 29.11.2004
Где-то около Москвы
Сообщений: 16,516
Отправить сообщение для T-Yoke с помощью Skype™


Цитата:
Сообщение от serg01 Посмотреть сообщение
День добрый, подскажите пожалуйста, как скопировать группы фильтров в другой чертеж? Через менеджер копируются только слои, а структура групп не копируется. Т.е. все слои разбиты на группы и подгруппы, вот их структуру и нужно скопировать, не могу понять как сделать?
Мне как-то не приходилось, сложноструктурированные фильтры переносить, но я бы наверное, создал на базе файла с нужной структурой фильтров, шаблон. Потом пургеном поудалял бы все, кроме слоев и соответственно фильтров, а потом в этот шаблон уже скопировал бы тот файл который мне нужно было отредактировать.
То есть решал бы обратную задачу, не фильтры в файл, а файл в фильтры переносил. Ну и последним этапом, перенёс в полученном файле, объекты в нужные слои.
__________________
«Артиллерия не токмо грохот, но и наука!» Пётр I
T-Yoke вне форума  
 
Автор темы   Непрочитано 30.01.2008, 05:24
#8
serg01


 
Регистрация: 04.07.2005
Иркутск
Сообщений: 213


T-Yoke
Так и придется делать, думал, что можно упростить это дело. Хотя странно, группы сделали, а перенос их не предусмотрели.
serg01 вне форума  
 
Автор темы   Непрочитано 05.03.2008, 08:39
#9
serg01


 
Регистрация: 04.07.2005
Иркутск
Сообщений: 213


DEM
А можно сделать с помощью подобной программы, чтоб слои создавались сразу в нужных группах? В программе указать группу и принадлежащие ей слои. Или лучше сразу все группы и входящие в них слои.
serg01 вне форума  
 
Автор темы   Непрочитано 04.05.2008, 06:29
#10
serg01


 
Регистрация: 04.07.2005
Иркутск
Сообщений: 213


Т.е. штатными средствами этого не сделать? Только через lisp?
serg01 вне форума  
 
Непрочитано 04.05.2008, 07:45
#11
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Цитата:
Сообщение от serg01 Посмотреть сообщение
Т.е. штатными средствами этого не сделать? Только через lisp?
Штатными средствами этого не сделать вроде как.
Но вот Lisp-om можно вполне
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Копирование группы фильтров в другой чертеж

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование viewport в другой файл. В.Пух AutoCAD 7 14.11.2007 07:42
Как сделать правильный чертеж pk77 Разное 64 03.04.2007 16:36
можно ли копировать лайоут в другой чертеж Der конструктор AutoCAD 28 19.12.2005 15:18