Тема: Определение площади в Га
Это не вопрос-это проба пера :)
Родилось сие после того как меня попросили вписать на план местности площади 125 отдельных участков...
Собственно оно:
(defun C:ahap() ;Частично сохраняем окружение и устанавливаем обработчик ашипок :) (setq om (getvar "orthomode") osm (getvar "osmode") TS (getvar "textstyle") olderr *error* *error* ashipka );setq ;Устанавливаем свои (setvar "orthomode" 0);Выключаем режим ортогональности (setvar"osmode" 0);Выключаем все привязки (command "_.style" "aha" "arial.ttf" "0" "1" "0" "N" "N");Устанавливаем новый стиль текста (while ;Начинаем цикл определения и вставки в чертеж значений площади в Га (setq a (getpoint "\nВыберите внутреннюю точку: ")) (command "_.-Boundary" a "");Получаем замкнутый контур (setq b (entlast)) (redraw b 3);Подсвечиваем его(отсутствие подсветки в комманде AREA меня бесит) (command "_.area" "O" "L") (setq PLO (rtos (/ (getvar "area") 10000.0) 2 2));Полученное значение площади переводим в Га (setq TI (getpoint "\nУкажите точку вставки текста <auto>")) (if (= TI nil)(setq TI a)) (command "_.text" TI "8" "0" (strcat PLO "Ha"));Вставляем его в чертеж (redraw b 2);Стираем, уже ненужный контур (entdel b);Удаляем, уже ненужный контур );while ;Возвращаемся к исходным настройкам (command "_.style" TS) (while (= 1 (logand (getvar "CMDACTIVE") 1)) (command ""));Цикл вставлен для подавления вопросов комманды TEXT (setvar "orthomode" om) (setvar "osmode" osm) (setq TL nil TI nil TS nil) (princ) );defun C:ahap() ;Обработка ошибок (defun ashipka (s) (if (/= s "Function cancelled") (princ (strcat "\nError: " s)) );if (command "_.style" TS) (while (= 1 (logand (getvar "CMDACTIVE") 1)) (command "")) (setq *error* olderr) (setvar "orthomode" om) (setvar "osmode" osm) (command "redrawall" );command );defun ashipka (s) (princ)
ЗЫ. Ногами не бить. За замечания буду искренне благодарен.