Тема: Как узнать площадь

Большая просьба, кто может сделать малюсенькую прогу Суть в том, что это будет как дополнение к команде Distance. То есть при активировании просит двумя кликами мышки обозначить измеряемый отрезок в метрах с точностью до 0,1, а потом умножает измеренную длину на заданную h и выводит результат.

обозначте длину отрезка

- 5.2

введите h

- 3.1

результат

- 16.1

Re: Как узнать площадь

Написал на email, все пояснения внутри файла (откройте как текстовый файл, например "блокнотом"). Только я не сделал округление, это усложнит программу.

Re: Как узнать площадь

(defun c:are (/ dis hx areax)
  (setvar "cmdecho" 0)
  (setq dis (getdist "Specify first point :"))
  (setq hx (getint "Enter H : "))
  (setq areax (* dis hx))
  (princ areax)
  (princ)
)

Re: Как узнать площадь

> Maxim T
Огромное спасибо, а возможно чтобы результат делился на 1000?

Re: Как узнать площадь

......и копировался в буфер обмена

Re: Как узнать площадь

musoчка, задание насчёт 1000 понял, пришлю новый вариант завтра (т.к. у меня инет только с 0.00 до 10.00), а для буфера обмена понадобится VBA, на Лиспе, по-моему, невозможно.

Re: Как узнать площадь

Лучше поздно, чем никогда.
(defun C:ar ( / p1 p2 h)
(setq p1 (getpoint "Введите первую точку: "))
(setq p2 (getpoint p1 "Введите вторую точку: "))
(setq h (getreal "Введите высоту h: "))
(alert (strcat "Площадь равна: " (rtos (/ (* (distance p1 p2) h) 1000) 2 2) " единиц АВтокада."))
(terpri) ;чтобы не мусорить в командную строку
)
Как видите, изменения только в той строке, где есть число 1000. А вообще купите книгу Н.Полещук "Visual LISP и секреты адаптации AutoCAD".

Re: Как узнать площадь

> Maxim
T
Интересная вырисовывается тема: "как средствами VisualLISP поместить в буфер обмена Windows значение переменной".
Кто силен?
Удачи.

Re: Как узнать площадь

> kos
Я бы, правда, не назвал это "средствами VisualLISP", и лучше делать по другому, но просто ради интереса:
(vl-cmdf "_.vbastmt"
    (strcat "Set MyData = New DataObject : MyData.Clear : MyData.SetText \"" string "\" : MyData.PutInClipboard"))

Re: Как узнать площадь

Лехе:
Да уж, термин "средствами LISP" здесь можно применить с бо-о-о-о-о-льшой натяжкой...
Удачи.

Re: Как узнать площадь

> всем
Что-то я не пойму зачем Вам нужно значение
переменной в буфере?

Re: Как узнать площадь

Текст в буфер и обратно можно поместить посредством
(dos_clipboard ...
из DOSLIB