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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Можно ли удалить несколько LAYOUT'ов одной командой?

Можно ли удалить несколько LAYOUT'ов одной командой?

Ответ
Поиск в этой теме
Непрочитано 16.05.2019, 18:08 #1
Можно ли удалить несколько LAYOUT'ов одной командой?
===AAA===
 
г. Норильск
Регистрация: 15.08.2005
Сообщений: 451

Всем привет!

Есть чертёж с кучей Layout'ов.
Нужно удалить часть из них.

Построить список "ненужных" и пробежаться по нему,
по очереди, удаляя их поодиночке - не проблема.

А вот одной командой несколько штук за раз удалить
можно?

По типу, как команда "сотри" одновременно удаляет
набор примитивов.

Подозреваю, что это несколько повысит скорость
выполнения.

Если да - то как? Только Лиспом, а не дотнетом. :-)
__________________
Счастливо, Алексей!
Просмотров: 2280
 
Непрочитано 16.05.2019, 22:30
#2
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Тут с лиспом и без меня помогут, но почему Вы не хотите объединить все ненужные Вам слои в один слой (_LAYMRG) и этот один слой удалить? Пара кликов мышки все готово...
Boxa вне форума  
 
Непрочитано 16.05.2019, 23:17
#3
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Boxa Посмотреть сообщение
Тут с лиспом и без меня помогут, но почему Вы не хотите объединить все ненужные Вам слои в один слой (_LAYMRG) и этот один слой удалить? Пара кликов мышки все готово...
Layer и Layout - это разные вещи. Думаю, что ты просто не понял вопрос.
Александр Ривилис вне форума  
 
Непрочитано 17.05.2019, 00:49
1 | 1 #4
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,005


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
А вот одной командой несколько штук за раз удалить можно?
По типу, как команда "сотри" одновременно удаляет набор примитивов.
1. Ручками: Выделяете с зажатым шифтом (если непрерывный ряд вкладок листов) или контролом (произвольно) листы для удаления и вызываете контекстное меню -> удалить.
2. Lisp: Командным методом (vl-cmdf "_.-LAYOUT" "_d" "%Имя листа%").
3. Lisp: Используя объектную модель -> vla-delete.
Сергей812 вне форума  
 
Автор темы   Непрочитано 17.05.2019, 05:23
#5
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 451


Давайте всё же ещё раз акцентирую вопрос.

Хотелось бы не просто удалить (это легко), а сделать это одной командой,
передав ей или список или некий "предварительный набор". Т.е. не:

(vl-cmdf "_.-LAYOUT" "_d" "%Имя листа%")

а что-то типа:

(неизвестная-команда "_d" (список-имён-листов))

vla-delete ?

возможно, но как передать ей сразу же несколько имён лайоутов?
__________________
Счастливо, Алексей!

Последний раз редактировалось ===AAA===, 17.05.2019 в 05:40.
===AAA=== вне форума  
 
Непрочитано 17.05.2019, 06:19
#6
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Layer и Layout - это разные вещи. Думаю, что ты просто не понял вопрос.
Блин, что-то заработался, "смотрю в книгу, вижу фигу".
Boxa вне форума  
 
Непрочитано 17.05.2019, 10:24
#7
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,005


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
vla-delete ?
возможно, но как передать ей сразу же несколько имён лайоутов?
В цикле, как еще. Названия листов для удаления где-то хранятся же.
Сергей812 вне форума  
 
Непрочитано 17.05.2019, 13:11
#8
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,458


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
А вот одной командой несколько штук за раз удалить
можно?
Можно
http://www.lee-mac.com/tabsort.html
Offtop: В брикскаде можно стандартными средствами 2-мя способами
Oleg T вне форума  
 
Непрочитано 17.05.2019, 19:44
1 | #9
VVA

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


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
la-delete ?

возможно, но как передать ей сразу же несколько имён лайоутов?
Код:
[Выделить все]
(mapcar
  '(lambda (x)
     (vla-delete
       (vla-item (vla-get-layouts
                   (vla-get-activedocument (vlax-get-acad-object))
                 ) ;_ end of vla-get-Layouts
                 x
       ) ;_ end of vla-item
     ) ;_ end of vla-delete
   ) ;_ end of lambda
  (list "Лист2." "Лист3.")
) ;_ end of mapcar
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Можно ли удалить несколько LAYOUT'ов одной командой?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли прокладывать совместно кабель питания и провод заземления в одной ПВХ трубе? will0812 Электроснабжение 1 21.02.2014 07:37
Можно ли задать текстуру одной из граней солида? Малюк AutoCAD 3 24.06.2013 13:32
Можно ли эвакуироваться по одной лестничной клетке с подземной автостоянки через тех этаж и на улицу Olga88 Архитектура 4 27.12.2012 16:07
Можно ли программно добавить в несколько сот файлов dwg модуль VBA? andrew_cool Программирование 4 20.07.2009 14:59
Можно ли детали одной сборки отобразить или сделать деталями другой? olamot Другие CAD системы 18 23.11.2008 16:13