Тема: Как сделать в AutoCAD 2006 программную утилиту с диалогом ?

Надо сделать утилиту или что-то еще, чтобы при помещении курсора с последующим нажатием кнопки мыши внутри прямоугольника появлялось диалоговое окно с заполненными полями: ширина, высота прямоуголника, порядковый номер этого прямоуголника (уникальный)? Помогите пожалуйста, прямоугольников много, они разные и каждому надо присвоить номер и еще несколько других аттрибутов.

Re: Как сделать в AutoCAD 2006 программную утилиту с диалогом ?

> dDr
Не обязательно указывать именно внутри,
можно просто выбирать примитивы, чтобы получить
те же свойства:

;; written by Fatty T.O.H (c)2006
;; all rights removed
(defun group-by-num (lst num / ls ret)
  (if (= (rem (length lst) num ) 0)
    (progn
      (setq ls nil)
      (repeat (/ (length lst) num)
    (repeat num (setq ls
            (cons (car lst) ls)
          lst (cdr lst)))
    (setq ret (append ret (list (reverse ls)))
          ls nil)))
    )
ret
  )
(defun c:demo (/ acsp adoc ar coors len per rec_obj util wid)
 (vl-load-com)
  (or adoc
      (setq adoc
         (vla-get-activedocument
           (vlax-get-acad-object)
         )
      )
  )
(if (and
    (= (getvar "tilemode") 0)
    (= (getvar "cvport") 1)
      )
    (setq acsp (vla-get-paperspace adoc))
    (setq acsp (vla-get-modelspace adoc))
  )
(or util
    (setq util (vla-get-utility    adoc))
    )
(while (not
(vl-catch-all-error-p
       (vl-catch-all-apply (function (lambda()
(vla-getentity util 'rec_obj 'pt
  "\n\t\t >> Select rectangle (Enter to exit)  >>\n"))))))
(setq ar (vlax-get rec_obj 'Area)) ; obtain the area
(setq coors (vlax-get rec_obj 'Coordinates) ; obtain the coordinates
      coors (group-by-num coors 2))
(setq per (vlax-get rec_obj 'Length)); obtain the perimeter
(setq len (distance (car coors)(cadr coors)); obtain the width and length
      wid (distance (cadr coors)(caddr coors)))
(if (> wid len)
    (setq len (distance (cadr coors)(caddr coors))
     wid (distance (car coors)(cadr coors))))
 (alert (strcat "Длина:"  (rtos len 2 3) "\n"
        "Ширина:"  (rtos wid 2 3) "\n"
        "Периметр:"  (rtos per 2 3) "\n"
        "Площадь:"  (rtos ar 2 3) "\n"))
  (vlax-release-object rec_obj)
  )
  (princ)
)        
(c:demo)

~'J'~

Re: Как сделать в AutoCAD 2006 программную утилиту с диалогом ?

А что делать если надо на чертеже вывести таблицу этих прямоуголных участков. Прямоуголник получается путем пересечения линий, что-то вроде сетки.