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

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

Списки DXF кодов

Ответ
Поиск в этой теме
Непрочитано 04.09.2006, 10:50 #1
Списки DXF кодов
Джек
 
Строительство
 
Нижний Новгород
Регистрация: 03.09.2003
Сообщений: 81

всем привет!!!!
Вот надумал я сделать прожку для быстрого удаления прямых и лучей на чертеже. Вот код:
Код:
[Выделить все]
(defun c:deliteXLINE (/ SSXLINE SSRAY )
  (setq  SSXLINE (ssget "_X" (list '(0 . "XLINE") )))
  (setq SSRAY (ssget "_X" (list '(0 . "RAY") )))
    (command "_erase" SSXLINE "")
  (command "_erase" SSRAY "")
  (alert (strcat "\nУдалено " (itoa (sslength SSXLINE)) " прямых " " и "   (itoa (sslength SSRAY)) " лучей" ))
  (princ)
)
Но, как чайник в лиспе - есть некоторые вопросы:
1- как сделать после завершения программы - при нажатии отмена - возвращались все ранее удаленные примитивы
2 - если на чертеже нет луча - , почему программа не работает?
за ранее спасибо
Просмотров: 2873
 
Непрочитано 04.09.2006, 11:06
#2
VVA

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


Код:
[Выделить все]
(defun c:deliteXLINE (/ SSXLINE SSRAY )
  (vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
  (setq  SSXLINE (ssget "_X" '((0 . "XLINE"))))
  (setq SSRAY (ssget "_X" '((0 . "RAY"))))
  (if SSXLINE  (command "_erase" SSXLINE "")(setq SSXLINE (ssadd)))
  (if SSRAY (command "_erase" SSRAY "")(setq SSRAY (ssadd)))
  (vla-EndUndoMark (vla-get-activedocument (vlax-get-acad-object)))
  (alert (strcat "\nУдалено " (itoa (sslength SSXLINE)) " прямых " " и "   (itoa (sslength SSRAY)) " лучей" )) 
  (princ))
VVA вне форума  
 
Непрочитано 04.09.2006, 11:16
#3
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


1. Для вохврата служит команда "undo". Нажатие ESC должно прерывать выполненте программы, однако я не вижу в коде места, где такое нажатие можно сделать.
2. Сделай так
Код:
[Выделить все]
(alert (strcat "\nУдалено " (if SSXLINE (itoa (sslength SSXLINE)) "0") " прямых "
           " и " (if SSRAY (itoa (sslength SSRAY)) "0") " лучей" ))
и будет тебе щастя
Лентяй вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Списки DXF кодов