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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Изменение параметров слоев по фильтру

Изменение параметров слоев по фильтру

Ответ
Поиск в этой теме
Непрочитано 24.05.2016, 15:30 #1
Изменение параметров слоев по фильтру
sanok7
 
Регистрация: 19.02.2015
Сообщений: 5

Добрый день! Помогите пожалуйста!
В Интернете много лиспов для задания свойств слоев, и как идентификатор используется название слоя. У меня немного иная ситуация - необходимо задать параметры слоев содержащих в названии определенный текст(фильтр).

Например, есть файл с 100500 тыщ слоев:
Список слоев:
1-F-1
1-F-2
...
8-C-1
8-C-2
...etc.


И для всех слоев содержащих в названии *-F-* изменить цвет на красный, а для *-С-* - на зеленый....и т.д..
Просмотров: 2181
 
Непрочитано 24.05.2016, 15:53
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


Поскольку вопрос не в программировании, то: создавай фильтр слоев, выделяй слои, попадающие в нужный фильтр, и меняй как душе угодно.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 25.05.2016, 08:44
#3
sanok7


 
Регистрация: 19.02.2015
Сообщений: 5


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Поскольку вопрос не в программировании, то: создавай фильтр слоев, выделяй слои, попадающие в нужный фильтр, и меняй как душе угодно.
Много фильтров и файлов тоже (( Нужен lisp однозначно
sanok7 вне форума  
 
Непрочитано 25.05.2016, 09:43
#4
pan

добрый человек
 
Регистрация: 23.02.2004
Глушь
Сообщений: 971


Цитата:
Сообщение от sanok7 Посмотреть сообщение
Нужен lisp однозначно
Лисп обычно используется, когда задача повторяется время от времени.
А у тебя, скорее всего, лисп будет одноразовый, времени на него потратишь больше, чем сделать вручную.

Цитата:
Сообщение от sanok7 Посмотреть сообщение
Много ... файлов
Есть еще транслятор слоев и файл стандарта, с помощью которых ты сможешь сделать вручную один раз то, что нужно, а затем в остальных файлах получить тоже самое в полуавтоматическом режиме
__________________
Правильно сформулированный вопрос содержит 90% ответа.
pan вне форума  
 
Автор темы   Непрочитано 25.05.2016, 10:12
#5
sanok7


 
Регистрация: 19.02.2015
Сообщений: 5


Цитата:
Сообщение от pan Посмотреть сообщение
Лисп обычно используется, когда задача повторяется время от времени.
Именно так и есть, геометрия и слои постоянно обновляются по ходу работы с файлами, к тому же, в разных файлах - разные названия слоев, подключить шаблон стандарта оформления не получится.
sanok7 вне форума  
 
Автор темы   Непрочитано 25.05.2016, 14:01
#6
sanok7


 
Регистрация: 19.02.2015
Сообщений: 5


Нашел решение. Грубовато, но задачу выполняет.

Повесил на кнопку
Код:
[Выделить все]
^C^C(command "_.layer" "_color" 1 "*-AAA-*" "")
(command "_.layer" "_color" 2 "*-BBB-*" "")
(command "_.layer" "_color" 4 "*-CCC-*" "")
sanok7 вне форума  
 
Непрочитано 25.05.2016, 16:26
#7
frostmourn


 
Регистрация: 23.04.2015
Сообщений: 163


Без проверок. Часть имени, по которой фильтровать, вводить без звездочек.
Код:
[Выделить все]
 
(defun c:ChangeColor (/ obj lay_coll color lay_name)
	(setq obj (vlax-get-acad-object) lay_coll (vla-get-layers (vla-get-activedocument (vlax-get-acad-object))))
	(while
		(setq color (acad_colordlg 1 nil))
		(setq lay_name (getstring "\nФильтр имени: "))
		(vlax-for lay_def lay_coll
			(if (wcmatch (vla-get-name lay_def) (strcat "*" lay_name "*"))
				(vla-put-color lay_def color)
			)
		)
		(vla-update obj)
		(princ "\nСледующая группа слоев:")(princ)
	)
)
Специально для внимательно читающих ещё разок - Без проверок.

Последний раз редактировалось frostmourn, 02.06.2016 в 11:33.
frostmourn вне форума  
 
Непрочитано 25.05.2016, 20:58
#8
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


Ага, но как только появятся внешние ссылки, станет значительно веселее..
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Изменение параметров слоев по фильтру



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменение параметров размеров с помощью лиспа МИХАИЛCAD LISP 9 23.09.2022 14:47
Revit 2016. Изменение параметров в системном семействе "Информация о проекте" AlexV Revit 27 26.10.2017 07:24
Как переместить примитивы на один слой с сохранением параметров предыдущих слоев? Gedezuk5 AutoCAD 3 25.04.2013 17:00
Изменение параметров дин блока ch-viktor Программирование 5 23.05.2008 21:38
Изменение состояния свойств слоев в разных чертежах ASLYS Программирование 14 01.06.2007 13:33