Тема: Нужна программа для подписывания координат точек

Нужно прогу для подписывание координат. Если есть у кого, буду рад получить на мыло.

Re: Нужна программа для подписывания координат точек

Координат каких объектов? Точек, отрезков, полилиний, дуг?

Re: Нужна программа для подписывания координат точек

Вот когда-то писал на лиспе:

;; Координата Z - техт возле всех вершин 3Dполилинии.
;;
(defun C:ZTEXT ()
  (setq h_text (getreal "\nВысота шрифта:<3> "))
  (if (= nil h_text) (setq h_text 3))
  (setq id_prim (car (entsel "\nВыберите 3D полилинию:")))
  (while (/= id_prim nil)
    (if    (= "POLYLINE" (cdr (assoc 0 (entget id_prim))))
      (while (/= "SEQEND" (cdr (assoc 0 (entget (entnext id_prim)))))
    (setq id_prim (entnext id_prim))
    (setq coor_v (cdr (assoc 10 (entget id_prim))))
    (setq coor_z (rtos (nth 3 (assoc 10 (entget id_prim))) 2 6))
    (command "_text" coor_v h_text "0" coor_z)
      );while
      (print "Выбранный объект не 3D полилиния")
    );if
    (setq id_prim (car (entsel "\nВыберите 3D полилинию:")))
  );while
)
;; Координата Z - техт возле выбранной вершины.
;;
(defun C:VTEXT ()
  (setq old_osmode (getvar "OSMODE"))
  (setvar "OSMODE" 1)
  (setq h_text (getreal "\nВысота шрифта:<3> "))
  (if (= nil h_text) (setq h_text 3))
  (setq set_sel1 nil)
  (setq coord_pt (getpoint "\nВыберите вершину полилинии: "))
  (while (/= coord_pt nil)
    (setq set_sel1 (ssget coord_pt '((0 . "POLYLINE"))))
    (if (/= nil set_sel1)
      (progn
        (setq id_prim (ssname set_sel1 0))
        (setq set_sel1 nil)
      ); end progn
      (print "\nЭто не 3D полилиния.")
    ); end if
    (while (/= id_prim nil)
      (setq coord_z (rtos (nth 2 coord_pt) 2 6))
      (setq id_prim (entnext id_prim))
      (while (/= "SEQEND" (cdr (assoc 0 (entget id_prim))))
        (setq coord_v (cdr (assoc 10 (entget id_prim))))
        (if (equal coord_v coord_pt)
          (progn
            (command "_text" coord_pt h_text "0" coord_z)
            (setq id_prim (entnext id_prim))
          )
          (setq id_prim (entnext id_prim))
        ); end if
      ); end while
      (setq id_prim nil)
    ); end while
    (setq coord_pt (getpoint "\nВыберите вершину полилинии:"))
  ); end while
  (setvar "OSMODE" old_osmode)
  (princ)
)

Re: Нужна программа для подписывания координат точек

Мне надо подписывать 2d координаты точек на плане.

Re: Нужна программа для подписывания координат точек

Максим. Ничего сложного в программе нет, пишется она путем компиляции примеров из хелп файлов самого автокада.
1. выбрать объект
2. Узнать необходимое свойство этого объекта(координаты)
3. Создать текст у которого точка вставки совпадала бы с найденными координатами и значение текста содержало координаты.
4. обновить чертеж
собственно и все.
Странно видеть на форуме по программированию просьбу дать программу, которая пишется на коленке минут за 5

Re: Нужна программа для подписывания координат точек

Вот без проверки, выбран объект, или нет. Подписывает там, где ткнули, но с включенной привязкой к точкам.
То, что было выложено ранее, как пример.
;;
;; Координаты XY - техт возле выбранной точки.
;;
(defun C:PTEXT ()
  (setq old_osmode (getvar "OSMODE"))
  (setvar "OSMODE" 8)
  (setq h_text (getreal "\nВысота шрифта:<3> "))
  (if (= nil h_text) (setq h_text 3))
  (setq coord_pt (getpoint "\nВыберите точку: "))
  (while (/= coord_pt nil)
    (setq coord_x (rtos (nth 0 coord_pt) 2 6))
    (setq coord_y (rtos (nth 1 coord_pt) 2 6))
    (setq coord_xy (strcat coord_x ", " coord_y))
    (command "_text" coord_pt h_text "0" coord_xy)
    (setq coord_pt (getpoint "\nВыберите точку: "))
  ); end while
  (setvar "OSMODE" old_osmode)
  (princ)
)