Тема: Нужна программа для подписывания координат точек
Нужно прогу для подписывание координат. Если есть у кого, буду рад получить на мыло.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Нужна программа для подписывания координат точек
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Нужно прогу для подписывание координат. Если есть у кого, буду рад получить на мыло.
Координат каких объектов? Точек, отрезков, полилиний, дуг?
Вот когда-то писал на лиспе:
;; Координата 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) )
Мне надо подписывать 2d координаты точек на плане.
Максим. Ничего сложного в программе нет, пишется она путем компиляции примеров из хелп файлов самого автокада.
1. выбрать объект
2. Узнать необходимое свойство этого объекта(координаты)
3. Создать текст у которого точка вставки совпадала бы с найденными координатами и значение текста содержало координаты.
4. обновить чертеж
собственно и все.
Странно видеть на форуме по программированию просьбу дать программу, которая пишется на коленке минут за 5
Вот без проверки, выбран объект, или нет. Подписывает там, где ткнули, но с включенной привязкой к точкам.
То, что было выложено ранее, как пример.
;;
;; Координаты 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)
)
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Нужна программа для подписывания координат точек
Форум работает на PunBB, при поддержке Informer Technologies, Inc