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

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

Как программно переключать фильтры слоев?

Ответ
Поиск в этой теме
Непрочитано 05.08.2005, 13:07 #1
Как программно переключать фильтры слоев?
kp+
 
идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,093

Как программно переключать фильтры слоев? (или какая переменная отвечает за это?)
Просмотров: 5234
 
Непрочитано 05.08.2005, 13:43
#2
ZZZ

электрик
 
Регистрация: 11.03.2005
Киев
Сообщений: 157


сохранить
(command "_-layer" "_stAte" "Save" "LayerState1" "" "" "")
востановить
(command "_-layer" "_stAte" "Restore" "LayerState1" "" "" "")
Желательно после востановления состояний слоёв сделать регенерацию чертежа
(command "_regenall")

Вроде так. Может есть ошибки в количестве пустых вводов, но смысл тот.
Оно?
__________________
Когда под рукой нет ничего кроме молотка - всё вокруг кажется гвоздями...
Выбор правильного инструмента - залог успеха в любом деле.
ZZZ вне форума  
 
Автор темы   Непрочитано 05.08.2005, 15:00
#3
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,093


Предложенный вариант восстанавливает состояние ВСЕХ слоев чертежа.
А надо, чтобы в окне слоев и в их списке на панели "СВОЙСТВА ОБЪЕКТА" показывались только те, что попадают в тот или иной фильтр (галочка "применить фильтр к панели "СВОЙСТВА ОБЪЕКТА" установлена). Что с ними делать далее - другой вопрос.
Лазить каждый раз на вкладку "Фильтры" окна "Слои" облом. Вот я и спрашиваю - как сделать это программно.
kp+ вне форума  
 
Непрочитано 23.08.2011, 16:44
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,991
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Из этой темы узнал, что с 2009 Автокада в команде _-LAYER появилась опция "_filter"
Цитата:
Команда: _-LAYER

Текущий слой: "0"
Задайте опцию [?/Создать/Установить/Новый/переименоватЬ/Вкл/Откл/Цвет/Тип
линий/вЕс
линий/Материал/пеЧать/Заморозить/Разморозить/Блок/рАзблок/Конфигурация/опИсание/
соГласовать]: _filter

Задайте опцию фильтра слоев
[Создать/Установить/переименоватЬ/Редактировать/уДалить/вЫход]:
Причем ни в перечне опций, ни в help'e упоминаия об этой опции не нашел
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 09.12.2011, 10:30
#5
kserg


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


...И русскоязычного аналога этой опции ("_filter") чегой-то не видать.
Например, в ответ на ввод опции "фильтр" команда запрашивает
Слои для удаления:

(AutocCAD2010 Rus)
kserg вне форума  
 
Непрочитано 09.12.2011, 11:04
#6
Кулик Алексей aka kpblc
Moderator

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


kserg, смотри лог ком.строки:
Код:
[Выделить все]
Command: _-layer
Current layer:  "0"
Enter an option 
[?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/MATerial/Plot/Freeze/Thaw/LOck
/Unlock/stAte/Description/rEconcile]: _filter
Current layer filter: "All"

Enter a layer filter option [New/Set/Rename/Edit/Delete/eXit]: _set

Enter layer filter to make current: F1

Current layer filter: "F1"

Enter a layer filter option [New/Set/Rename/Edit/Delete/eXit]:
Естественно, что фильтр с активируемым именем должен быть создан перед выполнением команды.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.12.2011, 18:29
#7
kserg


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


лог ком.строки (AutocCAD2010 Rus) :

-СЛОЙ

Текущий слой: "0"
Задайте параметр [?/Создать/Установить/Новый/переименоватЬ/Вкл/Откл/Цвет/Тип
линий/вЕс
линий/Материал/пеЧать/Заморозить/Разморозить/Блок/рАзблок/Конфигурация/опИсание/
соГласовать]: фильтр

Слои для удаления:


...далее делаю Esc, т.к. запроса
Задайте опцию фильтра слоев [Создать/Установить/переименоватЬ/Редактировать/уДалить/вЫход]:
нет, как это было бы в случае ввода опции "_filter" (а не "фильтр").

Т.е. налицо странная реакция (запрос) команды в случае ввода опции "фильтр":
Слои для удаления:
kserg вне форума  
 
Непрочитано 21.12.2011, 20:20
#8
Кулик Алексей aka kpblc
Moderator

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


А разве опция "фильтр" есть в перечислении?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.12.2011, 11:14
#9
kserg


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


Посмотрите свой #6.
Опция "filter" там ведь тоже не упоминается (лог ком.строки AutocCAD2010 Eng)...
kserg вне форума  
 
Непрочитано 22.12.2011, 11:16
#10
Кулик Алексей aka kpblc
Moderator

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


Смотрим #4...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.12.2011, 11:46
#11
kserg


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


какой-то БЕСПЛОДНЫЙ спор................

Ведь в том же #4 человек как раз и сетует:
"Причем ни в перечне опций, ни в help'e упоминаия об этой опции не нашел"
kserg вне форума  
 
Непрочитано 22.12.2011, 12:08
#12
Кулик Алексей aka kpblc
Moderator

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


Перевожу: раз нет упоминания, то локализаторы ее и не обработали. Чтобы не усложнять жизнь ни себе, ни Autodesk. Но, учитывая особенности разработки приложений, оригинал остался.
Вообще-то говоря, считается хорошим тоном либо не использовать командные методы вообще, либо использовать их на языке оригинала.
P.S. Лично я пользуюсь LayerFilters.arx от А.Ривилиса, там импортируется lisp-функция, активирующая нужный фильтр.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.02.2012, 12:15
#13
OSIP


 
Регистрация: 21.12.2011
Тюмень
Сообщений: 39
<phrase 1=


Вот я набираю в commandline строку _-layer, делаю всё что хочу со слоями, а какой потом командой из этого _-layer выйти??
OSIP вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как программно переключать фильтры слоев?

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

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