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

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

Как удалить программно все layout?

Ответ
Поиск в этой теме
Непрочитано 14.04.2010, 13:27 #1
Как удалить программно все layout?
Savuk
 
Конструктор
 
Киев
Регистрация: 04.08.2007
Сообщений: 22

Подскажите пож. как можно программно удалить все layout в открытом чертеже?
Просмотров: 3087
 
Непрочитано 14.04.2010, 14:02
#2
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Код:
[Выделить все]
(progn
  (vl-load-com)
  (vla-Startundomark (vla-get-ActiveDocument (vlax-get-acad-object)))
  (vlax-for s (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object)))
    (if	(not (= (vla-get-Name s) "Model"))
      (vla-Delete s)
    )
  )
  (vla-Endundomark (vla-get-ActiveDocument (vlax-get-acad-object)))
  (princ)
)
Makswell вне форума  
 
Автор темы   Непрочитано 14.04.2010, 14:56
#3
Savuk

Конструктор
 
Регистрация: 04.08.2007
Киев
Сообщений: 22


Большое спасиба!
А то я себе уже все мозги изсушил а ничего не получалось!
Savuk вне форума  
 
Непрочитано 14.04.2010, 15:32
#4
VVA

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


Без использования vla методов
Код:
[Выделить все]
(command "_UNDO" "_Begin")
(foreach layout (LAYOUTLIST)
  (command "_layout" "_D" layout)
  )
(command "_UNDO" "_End")
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.04.2010, 02:37
#5
Chapter

Инженер-проектировщик автомобильных дорог
 
Регистрация: 21.10.2009
Южно-Сахалинск
Сообщений: 245
<phrase 1=


А удалить все кроме текущего? так можно сделать?

Или все кроме выделенных? а так можно сделать?
Chapter вне форума  
 
Непрочитано 16.04.2010, 02:54
#6
Кулик Алексей aka kpblc
Moderator

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


Все кроме текущего можно удалить и так:
Код:
[Выделить все]
(defun test (/ adoc)
  (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
  (vlax-for s (vla-get-layouts adoc)
    (if (not (equal (vla-get-activelayout adoc) s))
      (vl-catch-all-apply
        (function
          (lambda ()
            (vla-delete s)
            ) ;_ end of lambda
          ) ;_ end of function
        ) ;_ end of vl-catch-all-apply
      ) ;_ end of if
    ) ;_ end of vlax-for
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.04.2010, 06:57
#7
Chapter

Инженер-проектировщик автомобильных дорог
 
Регистрация: 21.10.2009
Южно-Сахалинск
Сообщений: 245
<phrase 1=


Супер! Работает.
Chapter вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как удалить программно все layout?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
...как удалить все не используемые блоки krendel-r AutoCAD 17 23.03.2015 16:08
Мониторы LCD CRT Разное 94 17.06.2008 10:51
Как программно узнать масштабный коэфф. размерного стиля? kp+ Программирование 1 18.07.2006 12:37
Как программно удалить Стиль Текста Led AutoCAD 2 12.01.2004 14:35