Группировка слоёв в автокаде и задание каждой группе отдельных свойств
Имеется графики ЗОЗ (проектировщики сотовой связи поймут) — несколько слоёв с зонами (полилиниями). Необходимо выделить из всех слоёв те, в названиях которых есть буква Н, сгруппировать их по 3 штуки и каждой группе задать свойства (тип полилинии, цвет, масштаб).
Скорее всего это можно реализовать только через VBA, но возможно еще как то. Кто нибудь сталкивался с подобным? либо каким то другим способом, Но в идеале я хочу сделать кнопку с макросом, чтобы при нажатии формировались эти группы.
Просмотров: 6929
АнтонПроектировщик |
Посмотреть профиль |
Найти ещё сообщения от АнтонПроектировщик |
LISP, C# (ACAD 200[9,12,13,14])
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,810
Создавай фильтры слоев и работай с ними как угодно. Либо показывай свой код, указывай — где проблема и теде. Если ни первое, ни второе не подходят, ты ошибся с веткой, и тебе надо в «Поиск исполнителей»
__________________
Моя библиотека lisp-функций
—
Обращение ко мне — на «ты».
Все, что сказано — личное мнение.
Кулик Алексей aka kpblc |
Посмотреть профиль |
Посетить домашнюю страницу Кулик Алексей aka kpblc |
Найти ещё сообщения от Кулик Алексей aka kpblc |
Регистрация: 18.12.2010
Сообщений: 5,047
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
Сообщение от АнтонПроектировщик
. в идеале я хочу сделать кнопку с макросом, чтобы при нажатии формировались эти группы.
И что останавливает Ваше стремление к идеалу?
идущий по граблям
Регистрация: 26.05.2005
Сообщений: 5,092
Посмотрите «классификатор слоев» из Ru_CAD
Сообщение от АнтонПроектировщик
тип полилинии, цвет, масштаб
Тип полилинии — это что-то из Акада 3016. Наверно все-таки тип линии (Linetype). Масштаб — тоже непонятно, что за масштаб. Если масштаб типа линии — такого свойства у слоя «в базовой комплектации» нет. Не помню, есть ли возможность задавать и контролировать его в «классификаторе слоев». Если и там нет — только писать собственный диспетчер слоев и стремиться к идеалу
Регистрация: 05.10.2016
Сообщений: 3
останавливает то что я не знаю ВБА) поэтому и спрашиваю может кто то замутил уже такой макрос либо похожий. а у полилинии в свойствах есть масштаб, Автокад 2016.
в общем придется изучать ВБА в любом случае, т.к. в диспетчере слоёв это придется делать каждый раз руками, а мне нужно нажатием одной-двух кнопок
кто знает хорошие обучалки по ВБА, которые для моего случая помогут? заранее благодарю
АнтонПроектировщик |
Посмотреть профиль |
Найти ещё сообщения от АнтонПроектировщик |
идущий по граблям
Регистрация: 26.05.2005
Сообщений: 5,092
Сообщение от АнтонПроектировщик
поэтому и спрашиваю может кто то замутил уже такой макрос либо похожий
см. #5. поиск по сайту в помощь
Сообщение от АнтонПроектировщик
кто знает хорошие обучалки по ВБА, которые для моего случая помогут?
«САПР на базе Autocad — как это делается». Процесс создания вышеупомянутого «Классификатора слоев» расписан чуть ли не построчно.
Сообщение от АнтонПроектировщик
останавливает то что я не знаю ВБА)
пишите на чем знаете, принцип тот же Offtop: — наливай да пей
Последний раз редактировалось kp+, 06.10.2016 в 09:54 .
Регистрация: 05.10.2016
Сообщений: 3
АнтонПроектировщик |
Посмотреть профиль |
Найти ещё сообщения от АнтонПроектировщик |
Регистрация: 06.06.2016
Сообщений: 327
Сообщение от АнтонПроектировщик
Имеется графики ЗОЗ (проектировщики сотовой связи поймут) — несколько слоёв с зонами (полилиниями). Необходимо выделить из всех слоёв те, в названиях которых есть буква Н, сгруппировать их по 3 штуки и каждой группе задать свойства (тип полилинии, цвет, масштаб).
Скорее всего это можно реализовать только через VBA, но возможно еще как то. Кто нибудь сталкивался с подобным? либо каким то другим способом
1)Чтобы отделить слои с буквой «Н» в имени достаточно создать фильтр.
2) Чтобы можно было автоматически выделить тройки нужно к имени каждого слоя добавить суффикс, обозначющий номер тройки. Например _TR001, TR002 и т.д.
3) Далее создаешь в фильтре «Н» подфильтры «_TR001», «_TR002» и т.д.
4) Далее кликнув в нужному фильтру у тебя в списке слоев останется только выбранная тройка. Делаешь «выбрать всё» и задаешь цвет слоям. Масштаб и тип полилиний в таблице слоев не задается.
Сообщение от АнтонПроектировщик
Но в идеале я хочу сделать кнопку с макросом, чтобы при нажатии формировались эти группы.
А макрос телепат?
Откуда он знает что данные слои нужно объединить в тройку?
Кондратий Тихонович |
Посмотреть профиль |
Найти ещё сообщения от Кондратий Тихонович |
Фильтры слоев в Автокаде
Фильтры слоев AutoCAD предназначены для того, чтобы с ними можно было более гибко работать. Если чертеж содержит большое количество слоёв, то работа над проектом может существенно затянуться.
Фильтры в Автокаде позволяют разграничить все слои на отдельные смысловые группы. Например, набор слоев «стены» включает в себя внутренние и наружные стены, перегородки и т.п.
В имени слоя AutoCAD нужно задать префикс. В дальнейшем он будет служить свойством для группировки слоев. Если у вас архитектурный проект, можно выделить следующие группы: стены (ст_), окна (ок_), оформление (оформ_) и т.д.
Разделение по именам — одна из возможностей фильтров. Можно выполнять фильтрацию по различным свойствам: цвет, тип линии, вес линии и т.д.
Работа с фильтрами осуществляется в Диспетчере свойств слоев (с левой стороны). По умолчанию каждый чертеж содержит фильтр «Все используемые слои», где отображаются все слои, которые присутствуют на этом чертеже.
С помощью фильтров в AutoCAD можно удобно разделять группу слоев, совершать групповые операции. Например, вкл./откл., заблокировать/разблокировать, заморозить/разморозить одновременно все слои, которые входят в группу.
В Автокаде существует 2 вида фильтров слоёв:
- по свойствам;
- по группам.
Создание фильтра в Автокаде по свойствам
В Диспетчере свойств слоев на верхнем корневом фильтре нажимаем ПКМ и выбираем «Новый фильтр по свойствам. «.
В появившемся диалоговом окне в указываем имя фильтра. Далее определяем, по какому свойству будет происходить фильтрация. Допустим, имя слоя. Вводим ранее указанный префикс, например, «ст». Внизу показан результат фильтрации.
ПРИМЕЧАНИЕ: Один и тот же слой может принадлежать разным фильтрам. Можно одновременно выполнять фильтрацию по нескольким свойствам, например, по цвету и типу линий.
Чтобы удалить фильтр, достаточно его выделить и нажать ПКМ → Удалить.
Создание группового фильтра в Автокаде
В групповые фильтры можно помещать любые произвольные группы слоев. При выборе объектов на чертеже объединяем их в смысловую группу. На верхнем корневом фильтре нажимаем ПКМ и выбрать «Новый групповой фильтр». По умолчанию он создается пустым. Чтобы добавить в этот фильтр слои, нажимаем ПКМ по нему → Выбрать слои → Добавить.
Из графического пространства выбираем необходимые слои. Для этого выделяем объекты, лежащие на разных слоях. По завершению нажимаем Enter. В графический фильтр поместятся те слои, объекты которых выделены на экране.
Этот вид фильтра не подчиняется никаким свойствам, а просто собирает пользовательскую группу.
ПРИМЕЧАНИЕ: Многие спрашивают о том, можно ли быстро переключаться между фильтрами. В AutoCAD такой опции по умолчанию нет! Но есть функция, написанная на языке LISP (подробнее про то, как можно быстро переключаться между фильтрами слоев).
Итог: в небольших проектах, где у вас мало слоев, нет смысла пользоваться фильтрами. Но если у вас около 20-30 слоев и более, то вышеописанный подход просто необходим!
Освойте профессию проектировщика
Научитесь быстрому черчению, освоите прикладное 3D, автоматизируете создание ведомостей и спецификаций.
Как создать группу слоев в автокаде
В области структуры «Диспетчера свойств слоев» отображены стандартные фильтры слоев и все именованные фильтры, созданные и сохраненные в текущем чертеже. Тип фильтра обозначается значком около фильтра слоев. Отображаются пять стандартных фильтров
- Все. Задает отображение всех слоев текущего чертежа. Этот фильтр отображается всегда.
- Все используемые слои. Задает отображение всех слоев текущего чертежа, на которых нарисованы объекты. Этот фильтр отображается всегда.
- Внешние ссылки. Если в чертеж вставлены внешние ссылки, фильтр задает отображение всех определенных в них слоев.
- Переопределения видового экрана При наличии слоев с переопределениями текущего видового экрана фильтр отображает все слои, содержащие переопределения свойств.
- Несогласованные новые слои При наличии новых слоев, добавленных после последнего открытия, сохранения, перезагрузки или печати чертежа, отображается список новых несогласованных слоев. Подробнее см. раздел Согласование новых слоев .
Примечание Стандартные фильтры нельзя переименовать, редактировать или удалить.
Задав имя и определив фильтр слоев, пользователь может выбрать его в области структуры для отображения слоев, удовлетворяющих фильтру, в списке. Можно применить фильтр к панели «Слои», чтобы в списке «Слой» отображались только те слои, которые определяются текущим фильтром.
При выборе фильтра в области структуры и нажатии правой кнопкой мыши появляется контекстное меню, опции которого можно использовать для удаления, переименования и изменения фильтров. Например, пользователь может преобразовать какой-либо фильтр слоев по свойствам в групповой фильтр. Пользователь может также изменить свойства всех слоев в фильтре. Опция «Выделить группу» отключает все слои чертежа, которые не находятся в выбранном фильтре.
Определение фильтра слоев по свойствам
Фильтр по свойствам определяется в диалоговом окне «Свойства фильтра слоев», где пользователь может выбрать любые из следующих свойств, определяющих фильтр:
- Имена, цвета, типы линий, веса линий и стили печати
- Используются ли слои
- Включены/отключены ли слои
- Заморожены/разморожены ли слои в активном видовом экране или во всех видовых экранах
- Блокированы/разблокированы
- Печатаемые/не печатаемые
Для фильтрации слоев по именам можно использовать специальные символы. Например, если необходимо отобразить только те слои, имена которых начинаются с символов mech, то надо ввести mech*. Полный список символов-шаблонов см. в разделе «Символы-шаблоны».
Набор слоев в фильтре по свойствам может меняться при изменения свойств слоев. Например, если пользователь определил фильтр по свойствам с именем «Участок», включающий все слои с именами, где есть подстрока участок, и типом линий CONTINUOUS, а затем изменил тип линий некоторых из этих слоев, то слои с измененными типами линий уже не будут входить в фильтр «Участок» и не будут отображаться при использовании данного фильтра.
Фильтры по свойствам могут быть вложенными в другие фильтры по свойствам или в групповые фильтры.
Определение группового фильтра слоев
Групповой фильтр слоев включает только те слои, которые были явно занесены туда пользователем. Если свойства слоев, назначенных данному фильтру, были изменены, то, несмотря на это, данные слои будут продолжать входить в этот фильтр. Групповые фильтры слоев могут быть вложенными, но только в другие групповые фильтры (а не в фильтры по свойствам).
Совет Любые слои из списка слоев могут быть включены в фильтр путем их перетаскивания в этот фильтр.
Инвертирование фильтра слоев
Пользователь может инвертировать фильтр слоев. Например, если все элементы плана участка располагаются на слоях, имена которых содержат слово участок, то для отображения всех остальных слоев необходимо создать фильтр, который отфильтровывает слои по строке *участок*, и установить флажок «Инвертировать фильтр».
Создав слои, пользователь может отсортировать их по именам или по другим свойствам. Для сортировки списка следует в «Диспетчере свойств слоев» нажать на заголовке столбца того свойства, по которому должны сортироваться слои. Имена слоев могут быть отсортированы по возрастанию или по убыванию.
Для сортировки слоев по именам можно использовать специальные символы.
Соответствует любой одиночной цифре
Соответствует любой одиночной букве
Соответствует любому символу, кроме букв и цифр
Соответствует любой последовательности символов. Может использоваться в любой позиции строки
Соответствует любому одиночному символу; например, ?BC соответствует ABC, 3BC и т.п.
Соответствует всем строкам, кроме отвечающих следующему после тильды шаблону; например, ~*AB* соответствует всем строкам, не содержащим последовательности AB
Соответствует любому из символов в скобках; например, [AB]C соответствует AC и BC
Соответствует любому из символов, кроме заключенных в скобки; например, [~AB]C соответствует XC, но не соответствует BC
Задает диапазон для одиночного символа; например, [A-G]C соответствует AC, BC и так далее до GC, но не соответствует HC
Следующий за ним специальный символ трактуется как обычный; например, ‘~AB соответствует ~AB
Примечание Для того, чтобы при фильтрации имени слоя, содержащего символы шаблона, эти символы не распознавались как специальные, перед ними следует ставить обратный апостроф (`).
Слои в AutoCAD
Слой в AutoCAD – это инструмент для логического группирования данных. Подобно наложению друг на друга прозрачных пленок с элементами чертежа, слои могут отображаться отдельно или в комбинации друг с другом.
При работе со слоями в AutoCAD имеется ряд особенностей.
- Каждому слою можно присвоить свой цвет линий. Назначение цвета определенной группе объектов играет положительную роль при выводе чертежа на печать – в этом случае можно будет управлять толщиной линий при печати. Также можно указать отдельные слои, которые не будут распечатываться.
- Слои можно применять для работы над определенными задачами, имеющими различное функциональное назначение. Например, один слой можно использовать для нанесения размеров, другой – для элементов конструкций и т.д.
- Отдельные слои можно отключить, после чего на экран и на печать они выводиться не будут. Также можно защитить отдельный слой от редактирования; в результате он будет оставаться видимым, но недоступным для случайных изменений.
- Одни слои можно определять для работы только из пространства модели, а другие – из пространства листа.
Слои и их характеристики хранятся в базе данных чертежа. Последнее позволяет при переносе документа на другой чертеж избежать повторного определения слоев.
Примечание. В AutoCAD 2010 реализован эффективный доступ к слоям и работа с ними при помощи фильтров, позволяющих группировать слои по определенным признакам, а также изменять свойства сразу всех слоев группы.
РАБОТА С МЕНЕДЖЕРОМ СВОЙСТВ СЛОЕВ
Основной командой работы со слоями является команда Layer, которой соответствуют кнопка Layers Properties Manager (Менеджер слоев). Команда Layer открывает окно Layer Properties Manager, изображенное на рис. 7.6 (далее – Менеджер слоев).
Окно Менеджера слоев разделено на две части. Слева расположен древовидный список с именами групп родственных слоев и список фильтров слоев.
Группировка слоев может быть эффективна в случае, когда последних в чертеже много и появляется необходимость их разделения по определенным критериям, задаваемых пользователем. Например, в архитектурной части чертежа коттеджа могут находиться слои с изображением несущих стен, перегородок, оконных и дверных рам и т.д. Тогда можно ввести группу «Архитектура» и уже в ней создавать указанные слои.
Использование фильтров слоев может быть удобным, когда требуется просмотреть слои с одинаковыми свойствами отдельно от других. Например, можно задать фильтр, который давал бы возможность выбрать и просмотреть только те слои, у которых в свойствах установлена одинаковая толщина линий.
В правой части Менеджера слоев выводится список слоев (строки) со своими характеристиками (столбцы), принадлежащих выбранному фильтру или группе. Следует отметить, что в новом чертеже обязательно присутствует нулевой слой (с именем 0), который по умолчанию является текущим и который нельзя удалить. Для удаления какого-либо другого, ставшего ненужным слоя достаточно один раз щелкнуть левой кнопкой мыши по его имени, после чего нажать кнопку Delete (Удалить).
Текущий слой — это слой, на котором в данный момент осуществляется работа с объектами. Рядом с именем текущего слоя имеется флажок Для того чтобы установить какой-либо слой текущим, можно один раз щелкнуть левой кнопкой мыши по его имени и затем нажать кнопку Current (Текущий) или просто дважды щелкнуть по имени слоя.
Вверху, над списком слоев, расположен набор кнопок, предназначенных для создания нового или удаления ненужного слоя, установки имени текущего слоя, а также указания вспомогательной информации.
Примечание. При работе со слоями следует иметь в виду, что удалению не подлежат: текущий слой; слои, содержащие объекты или зависящие от внешних ссылок; нулевой слой, а также слои, на которые ссылаются объекты блока.
Каждый слой имеет характеристики, которые выводятся в виде заголовков столбцов:
- Name (Имя) — имя слоя длиной от 1 до 31 символа;
- On (Активно) — состояние отключения (слой не выводится на экран, не печатается, но участвует в регенерации) или включения слоя (если слой включен, пиктограмма имеет вид включенной лампочки , а если нет – лампочка темная );
- Freeze in all VP (Замороженный на всех ВЭ) — состояние замораживания (слой не выводится на экран, не печатается и не участвует в регенерации) или размораживания слоя (если слой разморожен, пиктограмма имеет вид солнца , если заморожен – снежинки );
- Lock (Блокированный) — состояние блокирования (слой видим, но недоступен для редактирования) или разблокирования слоя (если слой блокирован, пиктограмма имеет вид закрытого замка , а если нет – замок открыт );
- Color (Цвет) — текущий цвет для объектов слоя, у которых в качестве цвета задано значение ByLayer (По слою);
- Linetype (Тип лиши) — текущий тип линии для объектов слоя, у которых в качестве типа линии задано значение ByLayer (По слою)
- Lineweight (Толщина линии) — текущая толщина линий для объектов слоя, у которых в качестве значения толщины задано значение ByLayer (По слою)’, U Plot Style (Стиль печати) — стиль, применяемый к слою при печати;
- Plot (Печать) — состояние объектов слоя относительно вывода на внешнее устройство (если слой выводится на печать, пиктограмма имеет вид работающего принтера , а если нет – отключенного ).
Внизу окна Менеджера слоев расположены два флажка, позволяющие включить режим инвертирования фильтра вывода слоев (флажок Invert filter) и применить принятые настройки к панели свойств объектов Layer (флажок Apply to layers toolbar).
СОЗДАНИЕ НОВОГО СЛОЯ
Для создания нового слоя необходимо в окне Менеджера слоев (рис. 7.6), нажать кнопку New (Новый), после чего в список Менеджера слоев будет добавлена строка нового слоя с именем Layerl, принимающего по умолчанию параметры, которые имел выделенный до этого слой. Далее необходимо изменить эти характеристики в соответствии с предъявляемыми к слою требованиями.
Рассмотрим эту процедуру поэтапно. 1. Задание имени. После того как слой будет создан, его имя, присваиваемое по умолчанию, будет открыто для редактирования. Если в будущем слой придется переименовывать, нужно будет выполнить щелчок левой кнопкой мыши по его прежнему имени и в открывшемся поле ввести новое имя.
2. Установка допусков. Если требуется изменить один из установленных режимов слоя (таких как блокировка, замораживание, активность и допуск выхода на печать), достаточно один раз щелкнуть мышью по соответствующей пиктограмме напротив имени слоя – ее внешний вид изменится, а значение режима станет противоположным.
3. Назначение цвета. Значение в столбце Color (Цвет) говорит о текущем цвете объектов слоя, у которых в качестве цвета задано значение ByLayer (По слою).Если в Менеджере слоев щелкнуть мышью по значку цвета слоя (образцу или наименованию цвета), то раскроется диалоговое окно Select Color (Выбор цвета).Далее выбираем цвет из стандартной выборки «чистых» цветов или открываем подробную палитру для поиска «смешанных» цветов.
4. Задание типа линии. Название в столбце Linetype (Тип линии) задает тип линии, который будет присваиваться объектам, построенным в этом слое и имеющим в качестве типа значение ByLayer. Если в Менеджере слоев щелкнуть мышью по значку типа линии (его образцу или наименованию типа), то раскроется диалоговое окно Select Linetype (Выбор типа линии), изображенное на рис. 7.7.
В этом окне нужно будет выбрать желаемый тип линии или, если его в списке нет, использовать кнопку Load (Загрузить) для его загрузки из окна Load or Reload Linetypes (Загрузка или перезагрузка типов линий).
5. Задание толщины линий. Значение в столбце Lineweight (Толщина линии) задает ширину линии, которая будет присваиваться объектам, построенным в этом слое и имеющим в качестве толщины значение ByLayer. Если в Менеджере слоев щелкнуть по значку толщины линии (его образцу или значению), то раскроется диалоговое окно Lineweight (Толщина линии), приведенное на рис. 7.8.
6. Выбор стиля печати. Стиль печати – это необязательный элемент слоя, предназначенный для определения совокупности данных о цвете, толщине, контрастности и других атрибутах объектов при печати. Другими словами, применение стиля печати позволяет видоизменить отдельные объекты чертежа при выводе его на печать по сравнению с тем, как он выглядит на экране.
Существуют два вида стилей печати – цветозависимый и именованный. Цветозависимые стили основываются на цвете самих объектов, т.е. на том цвете, с которым они видны на экране. Так как AutoCAD оперирует 255 цветами, то и цветозависимых стилей тоже 255. Таблицы этих стилей печати записаны в файлах с расширением .ctb.
В отличие от цветозависимых, именованные стили печати не зависят от цвета объектов. Любой именованный стиль может быть присвоен объекту независимо от его цвета. В этом случае объекты, видимые на экране одним цветом, при выводе чертежа на печать будут выглядеть по-другому. Таблицы именованных стилей печати записаны там же, где и цветозависимые, однако в файлах с расширением .stb.
Для того чтобы просмотреть и изменить свойства стилей печати, используется команда Stylesmanager. Эта команда открывает средствами операционной системы Windows папку Plot Styles (Стили печати), в которой хранятся файлы именованных и цветозависимых таблиц стилей печати. Двойной щелчок по пиктограмме любого файла открывает диалоговое окно Plot Style Table Editor (Редактор таблицы стилей печати), позволяющее настроить свойства соответствующего стиля.
Цветозависимый стиль печати устанавливается автоматически слою при его создании, и в большинстве случаев эти настройки не меняются.
ФИЛЬТРАЦИЯ СПИСКА СЛОЕВ
Как уже было отмечено ранее, необходимость в фильтрации возникает, когда документ содержит большое количество слоев. В этом случае при работе с ними могут возникать различные трудности.
Фильтрация слоев — это ограничение списка доступных слоев по различным критериям, устанавливаемым пользователем. Созданный в результате фильтрации набор рабочих слоев можно записать, присвоив фильтру имя.
Для настройки или создания фильтра слоев используется кнопка расположенная в левом верхнем углу Менеджера слоев. Она вызывает диалоговое окноLayer Filter Properties (Именованные фильтры слоев), изображенное на рис. 7.9. В этом окне в поле Filter пате (Имя фильтра) необходимо ввести имя фильтра, а затем выбрать свойства фильтрации.
При задании параметров фильтрации можно использовать критерии, основанные на наличии определенных символов в имени слоя, на цвете слоя, толщине и типе линий, допусках слоя, стиле печати и других параметрах. Например, чтобы отобразить слои, для которых установлен белый цвет, достаточно выбрать в полеColor (Цвет) значение white (белый) и нажать кнопку ОК. В результате имя фильтра будет добавлено в список фильтров Менеджера слоев. Далее, чтобы увидеть все слои чертежа, необходимо выбрать параметр All Used Layers (Все слои), а если в списке выбирается имя с ранее созданным фильтром, то видимы будут только те слои, для которых установлен цвет white (белый).
Следует отметить, что при задании именованных фильтров можно использовать буквы, цифры и глобальные символы. В качестве последних можно применять один из двух специальных символов: знак звездочки (*), заменяющий любое количество символов, и вопросительный знак (?), заменяющий любой одиночный символ.