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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp: удалить "ножницы".

Lisp: удалить "ножницы".

Ответ
Поиск в этой теме
Непрочитано 29.05.2013, 17:07 #1
Lisp: удалить "ножницы".
hwd
 
C, C++, C#
 
С-Пб.
Регистрация: 07.10.2009
Сообщений: 2,762

Доброго времени суток.

Пользователю нужно, чтобы по завершению команды _.trim, автоматически удалялись примитивы, использовавшиеся в качестве "ножниц", т.е. те, относительно которых выполнялась обрезка.

Первое, что пришло на ум:
Код:
[Выделить все]
 
;; hwd-trim-with-erasing - обрезка примитивов с последующим удалением вспомогательных "ножниц".
(defun c:hwd-trim-with-erasing()
	(setq items (ssget)) ;; запоминаем вспомогательные объекты
	(command "_.trim" items "" pause) ;; выполняем основную команду	
	(command "_.erase" items "") ;; удаляем вспомогательные объекты
);; defun
Проблема в том, что pause позволяет пользователю выполнить только одно действие, т.е. выбрать только один обрезаемый объект. Из-за этого возникает ошибка. Чтобы код заработал, приходится писать такой вариант:
Код:
[Выделить все]
 
;; hwd-trim-with-erasing - обрезка примитивов с последующим удалением вспомогательных "ножниц".
(defun c:hwd-trim-with-erasing()
	(setq items (ssget)) ;; запоминаем вспомогательные объекты
	(command "_.trim" items "" pause) ;; выполняем основную команду
        (command)
	(command "_.erase" items "") ;; удаляем вспомогательные объекты
);; defun
Этот код работает, обрезая примитив и удаляя ножницы, но проблема в том, что пользователю предоставляется возможность выбрать обрезаемые объекты только один раз, не позволяя добавить примитивы в набор или удалить лишние.

Как решается проблема с pause?

Спасибо
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
Просмотров: 1516
 
Непрочитано 29.05.2013, 17:48
#2
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


первое что пришло на ум...
Код:
[Выделить все]
 ((lambda (ss)
   (cond (ss
	  (command "_.trim" ss "")
	  (while (= (getvar "CMDACTIVE") 1)
	    (vl-cmdf pause)
	  )
	  (command "_.erase" ss "")
	 )
   )
 )
  (ssget)
)
gomer вне форума  
 
Автор темы   Непрочитано 29.05.2013, 19:10
#3
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


@gomer,
Спасибо!
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp: удалить "ножницы".



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP удалить связи все связи словаря "Datalink" gizmo_zx LISP 16 05.08.2022 02:00
Как с командами LISP или VBA удалить видовой экран с листа? Leo_fmf Программирование 13 18.11.2016 23:40
Lisp. Не вставляет значения в базу access. Zaghim LISP 2 11.07.2012 14:29
{Конкурс} Lisp. Задачки для студентов gomer LISP 10 05.01.2011 16:33
загрузка DOS прог через LISP Gaa LISP 15 12.08.2005 19:19