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

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

Laylckiso

Ответ
Поиск в этой теме
Непрочитано 28.12.2007, 13:38 #1
Laylckiso
ALFMario
 
Gomel
Регистрация: 11.10.2007
Сообщений: 68

Есть ли что нибудь подобное изолированию слоя, только что бы все слои становились блокированными, кроме одно выбранного. Ну и соответсвенно команда для отмены.
Просмотров: 2220
 
Непрочитано 28.12.2007, 14:25
#2
vadim_evg1


 
Регистрация: 08.01.2007
Рус
Сообщений: 398


Для какой цели? Если для изоляции или скрытия объектов на выбранных слоях, то есть другие способы
vadim_evg1 вне форума  
 
Непрочитано 28.12.2007, 14:42
#3
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


В диспетчере слоев делаешь текущим нужный слой. В контекстном меню по правой кнопке мыши выбираешь пункт "Выбрать все, кроме текущего" ("Select All bat Current") и нажимаешь на замок любого выделенного слоя. Точно так же блокировка снимается.
Profan вне форума  
 
Непрочитано 28.12.2007, 14:54
#4
Log_in

Инженер-электрик
 
Регистрация: 16.01.2007
Москва
Сообщений: 19


Можешь использовать _.laywalk из Express... но это только для просмотра объектов чертежа, лежащих в нужном тебе слое
Log_in вне форума  
 
Непрочитано 28.12.2007, 15:07
#5
Dym


 
Регистрация: 27.09.2005
Двинскъ
Сообщений: 586
Отправить сообщение для Dym с помощью Skype™


_layiso
Dym вне форума  
 
Автор темы   Непрочитано 29.12.2007, 12:37
#6
ALFMario


 
Регистрация: 11.10.2007
Gomel
Сообщений: 68


Для чего нужно- что бы стро выбрать какой то объект начерченный в одном слое, и переместить относительно других элементов, для этого они должны быть видны. Всё это нужно для повышения скорости вычерчивания. А заходить в диспетчер долго, если у меня большенство команд и функций на горячих кнопках, что бы не тратить время. Ну нет, значит нет.
Жаль что нельзя выбрать все сразу при блокировании типа laylck а потом select all ну потом тыркнуть на слой который разблокировать.
ALFMario вне форума  
 
Непрочитано 29.12.2007, 13:04
#7
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


А что, вы никогда не заходите в диспетчер слоев? Долго, видишь ли. Не дольше, чем в носе поковырять.
Profan вне форума  
 
Непрочитано 29.12.2007, 14:45
1 | #8
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Код:
[Выделить все]
  (defun mip:layer-status-restore () 
    (foreach item *MIP_LAYER_LST*
      (if (not (vlax-erased-p (car item))) 
        (vl-catch-all-apply 
          '(lambda () 
             (vla-put-lock (car item) (cdr (assoc "lock" (cdr item))))
             (vla-put-freeze (car item) (cdr (assoc "freeze" (cdr item))))
             ) ;_ end of lambda 
          ) ;_ end of vl-catch-all-apply 
        ) ;_ end of if 
      ) ;_ end of foreach
    (setq *MIP_LAYER_LST* nil)
    ) ;_ end of defun 
  (defun mip:layer-status-save ()
    (setq *MIP_LAYER_LST* nil)
    (vlax-for item (vla-get-layers (vla-get-activedocument (vlax-get-acad-object))) 
      (setq *MIP_LAYER_LST* (cons (list item 
                                  (cons "freeze" (vla-get-freeze item)) 
                                  (cons "lock" (vla-get-lock item)) 
                                  ) ;_ end of cons 
                            *MIP_LAYER_LST* 
                            ) ;_ end of cons 
            ) ;_ end of setq 
      (vla-put-lock item :vlax-false) 
      (vl-catch-all-apply '(lambda () (vla-put-freeze item :vlax-false))) 
      ) ;_ end of vlax-for 
    ) ;_ end of defun

(defun C:LayUnLKiso()
  (vl-load-com)
  (mip:layer-status-restore)
  (princ)
  )
(defun C:LayLKiso( / SSET EN LANAME SSETON i)
  (vl-load-com)
  (mip:layer-status-save)
  (setvar "cmdecho" 0)
  (princ "\nКоманда блокирует все слои, кроме слоев выбранных объектов")
  (command "_.UNDO" "_M")
  (setq SSET nil)
  (setq EN (tblnext "layer" 1))
  (while EN
    (setq LANAME (cdr (assoc 2 EN)))
    (setq SSET (cons LANAME SSET))
    (setq EN (tblnext "layer"))
  );while EN
 (princ "\nВыберите видимые объекты")
  (setq PICK1 (ssget))
  (setq SSETON nil i 0)
  (while (and PICK1 (< i (sslength PICK1)))
      (setq EN (ssname PICK1 i))
      (setq EN (entget EN))
      (setq LANAME (cdr (assoc 8 EN)))
      (if (not (member LANAME SSETON))
           (setq SSETON (cons LANAME SSETON))
      );_if 
      (setq i (1+ i))
  );_while
  (setq PICK1 nil)
  (setq LANAME nil)
  (if (and SSET SSETON)
    (progn
      (foreach N SSET
       (if (NOT (member N SSETON))
         (progn
             ;;;Не слой выбранных объектов
           (setq LANAME (cons N LANAME))
         )
       );_if
      );_foreach
     );_progn
   );_if
  (if LANAME
    (progn
      (princ "\nБлокирую слои...")
      (command "_.layer" )
      (foreach N SSETON (command "_unLock" N))
      (command "_Set" (car SSETON))
      (foreach N LANAME (command "_Lock" N))
      (command "")
      (princ "\nКоманда LayUnLKiso")
    );progn
    (princ "\nНечего делать!")
  )
(princ)
)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 03.01.2008, 14:07
#9
ALFMario


 
Регистрация: 11.10.2007
Gomel
Сообщений: 68


to Profan а зачем мне туда заходить ???? да еще и часто ???
чем меньше делаем операций для достижения цели тем лучше в идеал ничего не делаем система работает сама.

Спасибо за LISP
я еще нашел подобные команды в VETCad++
ALFMario вне форума  
 
Непрочитано 03.01.2008, 14:17
#10
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


На этом форуме есть товарищи, которые не признают разные примочки, если что-то можно сделать стандартными средствами AutoCAD'а. Эти примочки, видишь ли, мешают юзеру профессионально освоить AutoCAD.
Profan вне форума  
 
Непрочитано 03.01.2008, 15:41
#11
skif58

Наше дело труба
 
Регистрация: 19.11.2006
Томск_Комсомольск-на-Амуре
Сообщений: 1,736
<phrase 1= Отправить сообщение для skif58 с помощью Yahoo Отправить сообщение для skif58 с помощью Skype™


Может быть они и правы...? Примочки, - при отсутствии боевых синяков, - только подмачивают репутацию "героя"...
__________________
*...И Случай, бог изобретатель. *
skif58 вне форума  
 
Автор темы   Непрочитано 03.01.2008, 16:39
#12
ALFMario


 
Регистрация: 11.10.2007
Gomel
Сообщений: 68


да что вы товарисч Profan вы мне предлагаете вручную включать и выключать слои если мне вдруг надо? только потому что "бибилия" против этого, тобишь в автокаде не предусмотрено этой функции? Если программа АВТОКАД позволяет использовать эти примочки, значит их можно использовать, а может даже и нужно. Не использовать весь потенциал программы можно назвать расточительством. Это как ездить на грузовом авто в булошную.
ЗЫ Я чесно говоря не могу запустить lisp потому что не понял как это делать обычно есть так defun C:<имя> и после загрузки делаю кнопку типа ^C^С<имя>
а с этим что делать не могу разобраться.
ALFMario вне форума  
 
Непрочитано 03.01.2008, 16:55
#13
Кулик Алексей aka kpblc
Moderator

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


ALFMario, в коде (внимательно если посмотреть) определены как минимум 2 команды: LayUnLKiso и LayLKiso.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.01.2008, 17:11
#14
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


ДляALFMario.
А мне, честно говоря, было не трудно сделать программу с диалоговым окном выбора слоёв для инверсной блокировки, однако лень... тем более, что VVA уже выложил свою программу.
А делать с ней вот что надо:
1. Сохранить весь код в файле с именем, например, laylkunlkiso.lsp и расположить этот файл на пути доступа AutoCAD к файлам поддержки.
2. Создать две кнопки с такими макросами:
Для блокирования
Код:
[Выделить все]
^C^C(if (not C:LayLKiso) (load "laylkunlkiso")) LayLKiso
Для разблокирования
Код:
[Выделить все]
 
^C^C(if (not C:LayUnLKiso) (load "laylkunlkiso")) LayUnLKiso
И не мешало бы еще раз прочитать то, что написано в ссылке, данной VVA в его подписи.
Profan вне форума  
 
Автор темы   Непрочитано 03.01.2008, 17:16
#15
ALFMario


 
Регистрация: 11.10.2007
Gomel
Сообщений: 68


Ой как стыдно, всё нашел, всё работает, даже лучше чем ожидал ГЫ
ALFMario вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Laylckiso