Тема: Как на кнопку повесить несколько операций?

Подскажите, плиз, как создать програмку : при нажатии на кнопку идет запрос на размер X, размер Y. Далее программа отрисовывает параллелепипед с длиной X, шириной Y, и постоянной высотой 16 на слое "Основная" с точкой вставки на одном из нижних углов и на 4 нижних угла вставляются блоки  C:/Master/Zahvat1 ,C:/Master/Zahvat2 ,C:/Master/Zahvat3 ,C:/Master/Zahvat4. Реально ли?

Re: Как на кнопку повесить несколько операций?

> septima
Всё можно сделать! Но чем так извращаться, напиши это на ЛИСПе, да повесь на кнопку.
Сразу появиться дополнительная многовариантность и простота написания.

Re: Как на кнопку повесить несколько операций?

> septima
Например, такая программа:

(defun C:P4BLK ( / pt1 pt2 pt3 pt4 )
(setq pt1 (getpoint "\n Укажите точку (ENTER-Отказ): "))
(if pt1
(progn
(initget 7)
(setq dx (getreal "\n Размер по X: "))
(initget 7)
(setq dy (getreal "\n Размер по Y: "))
(setq pt2 (list (car pt1) (+ (cadr pt1) dy))
      pt3 (list (+ (car pt1) dx) (+ (cadr pt1) dy))
      pt4 (list (+ (car pt1) dx) (cadr pt1))
)
(command "_-LAYER" "_M" "Основная" "")
(command "_PLINE" pt1 pt2 pt3 pt4 "_C")
(command "_EXTRUDE" "_L" "" "16" "0")
(command "_-INSERT" "C:\\Master\\Zahvat1" pt1 "" "" "")
(command "_-INSERT" "C:\\Master\\Zahvat2" pt2 "" "" "")
(command "_-INSERT" "C:\\Master\\Zahvat3" pt3 "" "" "")
(command "_-INSERT" "C:\\Master\\Zahvat4" pt4 "" "" "")
))
(princ)
)

Re: Как на кнопку повесить несколько операций?

Вариант с центральной точкой вставки:

(defun C:P4BLK ( / pt pt1 pt2 pt3 pt4 )
(setq pt (getpoint "\n Укажите точку (ENTER-Отказ): "))
(if pt
(progn
(initget 7)
(setq dx (/ (getreal "\n Размер по X: ") 2))
(initget 7)
(setq dy (/ (getreal "\n Размер по Y: ") 2))
(setq pt1 (list (- (car pt) dx) (- (cadr pt) dy))
      pt2 (list (- (car pt) dx) (+ (cadr pt) dy))
      pt3 (list (+ (car pt) dx) (+ (cadr pt) dy))
      pt4 (list (+ (car pt) dx) (- (cadr pt) dy))
)
(command "_-LAYER" "_M" "Основная" "")
(command "_PLINE" pt1 pt2 pt3 pt4 "_C")
(command "_EXTRUDE" "_L" "" "16" "0")
(command "_-INSERT" "C:\\Master\\Zahvat1" pt1 "" "" "")
(command "_-INSERT" "C:\\Master\\Zahvat2" pt2 "" "" "")
(command "_-INSERT" "C:\\Master\\Zahvat3" pt3 "" "" "")
(command "_-INSERT" "C:\\Master\\Zahvat4" pt4 "" "" "")
))
(princ)
)

Re: Как на кнопку повесить несколько операций?

Владимир, а подскажите,пожалуйста, макрос на кнопку для этой програмки.

Re: Как на кнопку повесить несколько операций?

> septima
Если код будет сохранен в файле с именем p4blk.lsp и будет находиться на пути доступа AutoCAD к файлам поддержки, то макрос для кнопки может иметь вид:

^C^C^P(if (not C:P4BLK) (load "p4blk")) P4BLK

Re: Как на кнопку повесить несколько операций?

Просто блеск! Владимир, огромное спасибо! Все работает! А еще 2 вопроса: Возможно ли, чтобы этот прямоугольник с блоками по углам после отрисовки еще и в единый блок закрывался с именем P16? и второй: Подскажите, плиз, как сделать, чтобы рисуя в проекции, этот блок P16 при произвольном перемещении по осям X и Z всегда по оси Y был равен 0?

Re: Как на кнопку повесить несколько операций?

Лень заела.