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

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

Lisp. Как удалить лист, не используя объектную модель автокада?

Ответ
Поиск в этой теме
Непрочитано 27.01.2017, 18:25 #1
Lisp. Как удалить лист, не используя объектную модель автокада?
Composter
 
Отопление и вентиляция
 
Москва
Регистрация: 31.10.2008
Сообщений: 445

Добрый день. Скажите как удалить лист, не используя объектную модель автокада?
Просмотров: 2508
 
Непрочитано 27.01.2017, 18:59
#2
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,091


Командый метод сойдет?
Код:
[Выделить все]
(vl-cmdf "_-layout" "_delete" <имя листа>)
Или надо через (entdel)?
kp+ вне форума  
 
Автор темы   Непрочитано 30.01.2017, 10:36
#3
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


не думал как то про такой сопособ.я находил лейауты так
Код:
[Выделить все]
 
(setq zzz (entget (cdadr (member (cons 3 "ACAD_LAYOUT")(entget (namedobjdict))))))
(setq xxx(vl-remove-if-not '(lambda(x)(equal(car x) 350))zzz))
(setq ccc(mapcar  '(lambda(x)(cdr x)) xxx))
далее раз есть ename то можно же через entdel. но конструкция
Код:
[Выделить все]
 (entdel(nth 0 ccc))
ничего не делает
Composter вне форума  
 
Непрочитано 30.01.2017, 12:36
#4
frostmourn


 
Регистрация: 23.04.2015
Сообщений: 163


А так?..
Код:
[Выделить все]
(vla-delete (vlax-ename->vla-object (nth 1 ccc)))
frostmourn вне форума  
 
Автор темы   Непрочитано 30.01.2017, 12:44
#5
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


так это уже объектная модель, консоль ее не поймет

----- добавлено через ~17 мин. -----
Код:
[Выделить все]
 (vl-cmdf "_-layout" "_delete" <имя листа>)
консоль такого в цикле не понимает
Composter вне форума  
 
Непрочитано 30.01.2017, 13:35
#6
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,091


Цитата:
Сообщение от Composter Посмотреть сообщение
так это уже объектная модель, консоль ее не поймет...консоль такого в цикле не понимает
Я может отстал от жизни, но какая консоль имеется ввиду - ком. строка Акада? Скрипт (сценарий из файла SCR)? Или что за зверь? Как Вы с ним работаете? (vl-load-com) не помогает?
Насчет (vl-cmdf "_-layout" "_delete" <имя листа>) - попробуйте заменить vl-cmdf на command.
kp+ вне форума  
 
Непрочитано 30.01.2017, 13:45
#7
Кулик Алексей aka kpblc
Moderator

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


kp+, имеется в виду accoreconsole.exe
P.S. Можно вместо command использовать command-s
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.01.2017, 13:52
#8
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


консоль которая accoreconsole.exe она открывает файл не а автокаде а в консоле, и объектная модель не действует там.
дело в том что в цикле консоль понимает вот эту часть (vl-cmdf "_-layout"
а дальше начинает запрашивать информацию с клавиатуры.
если эту комманду сделать вот в таком виде
Код:
[Выделить все]
 -layout
delete
<имя листа>
тогда наверняка выполнится(хотя я не пробовал) , но в цикле консоль не воспринимает почему то эту информацию
Composter вне форума  
 
Непрочитано 30.01.2017, 13:56
#9
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


напиши на .net функцию удаления листа
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 30.01.2017, 14:00
#10
Кулик Алексей aka kpblc
Moderator

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


Дима_, .net-сборки, кажется, в консоль не загружаются.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.01.2017, 14:17
#11
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


даже если бы .net понимало, только как на .net написать не используя ообъектную модель?
Composter вне форума  
 
Непрочитано 30.01.2017, 14:27
#12
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Объектная модель, объектной модели рознь (ту что в .Net как раз частично можно использовать и по моему часть с листами входит в консоль - надо проверить).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 30.01.2017, 15:14
#13
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,091


Offtop:
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
имеется в виду accoreconsole.exe
Я безнадежно застрял в 2010
kp+ вне форума  
 
Автор темы   Непрочитано 31.01.2017, 11:00
#14
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


так получается нельзя удалист лист не используя объектную модель автокада?
Composter вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp. Как удалить лист, не используя объектную модель автокада?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите уменьшить размер файла DWG AndroiD AutoCAD 2367 16.03.2024 08:40
Помогите найти ошибку с Lisp "автонумерацией листов" tujn08 LISP 14 12.05.2015 17:20
Как удалить Excel-ссылки из автокада? Tsura AutoCAD 12 31.10.2014 12:59
Lisp. Не вставляет значения в базу access. Zaghim LISP 2 11.07.2012 14:29
Как отдать dwg файл (чертеж, лист) для обыкновенного автокада из АА или МЕР? xag Вертикальные решения на базе AutoCAD 21 25.07.2011 13:25