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

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

Функция изоляция выделнного

Ответ
Поиск в этой теме
Непрочитано 18.10.2007, 15:45 #1
Функция изоляция выделнного
dextron3
 
проектировшик
 
СССР
Регистрация: 01.01.2007
Сообщений: 5,149

Существует ли в автокаде такая команда, чтобы выделил объекты нажал кнопку и они остались только на экране остальные стали невидимые, но при этом выделенные объекты находились в разных слоях
__________________
инженер проектировшик с опттом программа авто гад образование высшие
Просмотров: 2314
 
Непрочитано 18.10.2007, 16:44
#2
Кулик Алексей aka kpblc
Moderator

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


В acade такой функции нет. На autocad.ru (э-эх, когда ж его поднимут-то?) был аналог ADT-шного Isolate Objects.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 18.10.2007, 17:09
#3
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


А ты на этот сайт архив форума закинь, чтоб далеко не ходить
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 18.10.2007, 17:52
#4
Кулик Алексей aka kpblc
Moderator

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


Хорошая шутка... Если б он у меня был - закинул бы.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 18.10.2007, 18:00
#5
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Kpblc темнит, он уже эту функцию на лиспе давно написал. Там конечно еще много всего можно дописать, но оставить выделенное есть, как и скрыть выделенное и включить все.
Supermax вне форума  
 
Непрочитано 18.10.2007, 19:17
#6
Profan


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


[Re:] Кулик Алексей aka kpblc (2005-11-15 10:54:20)

Код:
[Выделить все]
;|=============================================================================
*    Скрытие выбранных объектов / невыбранных объектов / показ всех объектов.
* Сделано в качестве попытки создания аналога ADT-шной команды Isolate objects.
* Работает только в активном пространстве.
*    Параметры вызова:
*  bit  что делать. 0 — показать все; 1 — скрыть выделенные; 2 — скрыть
*    все, кроме выделенных
*    Примеры вызова:
(kpblc-objects-hide 0)  ; Показать все объекты
(kpblc-objects-hide 1)  ; Скрыть выделенные объекты
(kpblc-objects-hide 2)  ; Скрыть все, кроме выделенных
=============================================================================|;
(defun kpblc-objects-hide (bit / selset selset_all msg item _regenmode_)
  ;; Локальные функции
  (defun loc:put_visible(vla-ent vis / layer layer_lock)
    (setq layer (vlax-ename->vla-object (tblobjname "layer" (vla-get-layer item)))
          layer_lock (vla-get-lock layer))
    (vla-put-Lock layer :vlax-false)
    (vla-put-Visible vla-ent vis)
    (vla-put-lock layer layer_lock)
    )
  ;; Конец локальных функций
  (vl-load-com)
  (if (not *kpblc-activedoc*)
    (setq *kpblc-activedoc* (vla-get-activedocument (vlax-get-acad-object)))
    ) ;_ end of if
  (vla-startundomark *kpblc-activedoc*)
  (setq _regenmode_ (getvar "regenmode"))
  (cond
    ((= bit 1) (setq msg "Скрыть выделенные объекты"))
    ((= bit 2) (setq msg "Скрыть кроме выделенных"))
    ) ;_ end of cond
  (if (= bit 0)
    (progn
      (setq selset (ssget "_A"))
      (while (and selset (> (sslength selset) 0))
        (setq item (ssname selset 0))
        (ssdel item selset)
        (setq item (vlax-ename->vla-object item)              )
        (if (vlax-property-available-p item 'visible)
          (loc:put_visible item :vlax-true)
          ) ;_ end of if
        ) ;_ end of while
      ) ;_ end of progn
    (progn
      (setq selset (ssget "_I"))
      (while (not selset)
        (prompt msg)
        (setq selset (ssget))
        ) ;_ end of while
      (cond
        ((= bit 1)                      ; Скрывать выделенные
         (while (and selset (> (sslength selset) 0))
           (setq item (ssname selset 0))
           (ssdel item selset)
           (setq item (vlax-ename->vla-object item))
           (if (vlax-property-available-p item 'visible)
             (loc:put_visible item :vlax-false)
             ) ;_ end of if
           ) ;_ end of while
         )
        ((= bit 2)                      ; Скрывать кроме выделенных
         (setq selset_all (ssget "_A"))
         (while (and selset_all (> (sslength selset_all) 0))
           (setq item (ssname selset_all 0))
           (ssdel item selset_all)
           (if (not (ssmemb item selset))
             (progn
               (setq item (vlax-ename->vla-object item))
               (if (vlax-property-available-p item 'visible)
                 (loc:put_visible item :vlax-false)
                 ) ;_ end of if
               ) ;_ end of progn
             ) ;_ end of if
           ) ;_ end of while
         )
        ) ;_ end of cond
      ) ;_ end of progn
    ) ;_ end of if
  (setvar "regenmode" 1)
  (vla-regen *kpblc-activedoc* acallviewports)
  (setvar "regenmode" _regenmode_)
  (vla-endundomark *kpblc-activedoc*)
  ) ;_ end of defun
Profan вне форума  
 
Автор темы   Непрочитано 18.10.2007, 19:18
#7
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Profan

попробуем

это ты из мертвого форума достал?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 18.10.2007, 19:23
#8
Profan


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


Да, из полудохлого форума.

Последний раз редактировалось Profan, 18.10.2007 в 19:33.
Profan вне форума  
 
Непрочитано 18.10.2007, 19:28
#9
Profan


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


{Smirnoff} (2005-11-15 14:28:39)
Я поступил вот так:
Код:
[Выделить все]
 
(defun c:unvis(/ errCount wMode objSet actDoc)
  (vl-load-com)
  (defun put_Visible_Prop(Object Flag)
    (if
      (vl-catch-all-error-p
  (vl-catch-all-apply
    'vla-put-visible (list Object Flag)))
          (setq errCount(1+ errCount))
    ); end if
  (princ)
  ); end of put_Visible_Prop
  (defun Set_to_List(SelSet)
    (mapcar 'vlax-ename->vla-object
                    (vl-remove-if 'listp
                     (mapcar 'cadr(ssnamex SelSet))))
  ); end of Set_to_List
  (defun errMsg()
    (if(/= 0 errCount)
  (princ(strcat ", " (itoa errCount)
    " were on locked layer."))
      "."
  ); end if
    ); end of errMsg
(setq actDoc(vla-get-ActiveDocument
        (vlax-get-Acad-object))
      errCount 0); end setq
(vla-StartUndoMark actDoc)
(initget "Visible Unvisible" 1)
  (setq wMode
    (getkword "\nMake objects [Visible/Unvisible]: "))      
  (if(and
       (= wMode "Visible")
       (setq objSet(ssget "_X" '((60 . 1))))
       ); end and
    (progn
      (setq objSet(Set_to_List objSet))
   (mapcar
    '(lambda(x)(put_Visible_Prop x :vlax-true))objSet)
    (princ
      (strcat "\n<< "
        (itoa(-(length objSet)errCount))
       " now visible" (errMsg) " >>"))
      ); end progn
    (progn
      (if(not(setq objSet(ssget "_I")))
  (setq objSet(ssget))
  ); end if
      (if objSet
  (progn
    (setq objSet(Set_to_List objSet))
  (mapcar
    '(lambda(x)(put_Visible_Prop x :vlax-false))objSet)
    (princ
      (strcat "\n<< "
        (itoa(-(length objSet)errCount))
       " now unvisible" (errMsg) " >>"))
    ; end if
   ); end progn
  ); end if
       ); end progn
      ); end if
  (vla-EndUndoMark actDoc)
(princ)
); end of c:unvis
Profan вне форума  
 
Непрочитано 18.10.2007, 19:34
#10
Profan


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


Как-то ненадежно и муторно вставляются коды. Не могу пока описать, что происходит.
Profan вне форума  
 
Непрочитано 18.10.2007, 22:17
#11
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Можно здесь посмотреть http://ad-cad.narod.ru/AD-Profil.htm Команда "AD-Viz"
Евгений А. вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Функция изоляция выделнного



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
структурированный список Holon Программирование 22 11.09.2007 14:09
функция autoload не работает paha Программирование 5 09.02.2007 12:58
функция vla-getInterfaceObject и что оно такое Apelsinov Программирование 14 05.08.2006 01:29
Функция rem Владимир М Программирование 5 20.12.2005 17:13