|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Какие системные переменные и команды помогут в автолисп оперировать слоями?
Регистрация: 28.09.2010
Сообщений: 55
|
||
Просмотров: 1983
|
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Нет можно с помощью (tblsearch "layer" "имя_слоя") и DXF Reference, либо через vla-get..., vla-put... и (vla-item (vla-get-layers (vla-get-activedocument(vlax-get-acad-object))) "имя_слоя").
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Посмотреть все свойства слоя ("0" - имя слоя):
Код:
Проверить включен/выключен ли слой ("0" - имя слоя): Код:
Выключить слой ("0" - имя слоя): Код:
|
|||
![]() |
|
||||
AutoCAD/AutoLISP Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133
|
Простенький пример:
(defun c:togle() (setq la (strcase(getvar"clayer"))) (if (= la "VIEWLAYER")(setvar"clayer" "0")) (setq lcond (tblsearch "layer" "viewlayer")) (setq comp (cdr (assoc 62 lcond))) (cond ((< comp 0)(command "layer" "on" "viewlayer" "")) ((> comp 0)(command "layer" "off" "viewlayer" "")) ) (princ) )
__________________
Сквозь тернии к звездам.... и обратно :yes: |
|||
![]() |
|
||||
Регистрация: 28.09.2010
Сообщений: 55
|
Спасибо, получилось
Нужно было сделать кнопку в автокаде на вкл/выкл слоя defpoints: (defun c:1 (/ la lcond comp) (setq la (strcase (getvar "clayer"))) (if (= la "DEFPOINTS") (setvar "clayer" "0") ) (setq lcond (tblsearch "layer" "defpoints")) (setq comp (cdr (assoc 62 lcond))) (cond ((< comp 0) (command "_layer" "_on" "defpoints" "")) ((> comp 0) (command "_layer" "_off" "defpoints" "")) ) (setvar "clayer" la) (princ) ) И в свойствах кнопки macro (пользовательская команда): ^C^C(load "d:/tmp.lsp")^C^C1 |
|||
![]() |