下面这个程序在网上找的,怎么能修改成标注的角度显示成度分秒然后标注在图上啊
;;;========================================================================= ;;; ;;; Program name: cpjlxjj.lsp ;;; ;;; Description: ;;; 在AutoCAD屏幕上测量任意两条直线夹角 ;;; ;;;========================================================================= (Defun *error* (msg) (princ "错误:") (princ msg) (terpri) )
(Defun C:jj (/ cmde ent_1 ent_2 ent_1_name ent_2_name ang_1 ang_2 ang ang_yj ang_min ang_max ) (Defun TQ_ENT_NAME (ent) (eval '(cdr (assoc '0 (entget (car ent))))) ) (Defun TQ_ANG (ent) (setq ang (angle (cdr (assoc 10 (entget (car ent)))) (cdr (assoc 11 (entget (car ent)))) ) ) )
(setq cmde (getvar "cmdecho")) (setvar "cmdecho" 0) (setq ent_1 (entsel "\n测量两线夹角,选第一条直线:")) (if ent_1 (progn (princ "OK!") (setq ent_1_name (TQ_ENT_NAME ent_1)) (if (= ent_1_name "LINE") (progn (setq ang_1 (TQ_ANG ent_1)) (redraw (car ent_1) 3) ) ) (if ang_1 (progn (setq ent_2 (entsel "\n选第二条直线:")) (if ent_2 (progn (princ "OK!") (princ) (setq ent_2_name (TQ_ENT_NAME ent_2)) (if (= ent_2_name "LINE") (progn (setq ang_2 (TQ_ANG ent_2)) (redraw (car ent_2) 3) (princ) ) ) (if (and ang_1 ang_2) (progn (setq ang (abs (- ang_1 ang_2))) (if (> ang pi) (setq ang (- ang pi)) ) (setq ang (* ang (/ 180 pi)) ang_yj (- 180 ang) ang_min (min ang ang_yj) ang_max (max ang ang_yj) ) (setq ang_min (rtos ang_min 2 4) ang_max (rtos ang_max 2 4) ) (alert (strcat "\n 夹 角α = " ang_min "° \n\n 180°- α = " ang_max "°" ) ) (princ "\n所求夹角=") (princ ang_min) (princ "\° 180°- 夹角=") (princ ang_max) (princ "°") (redraw (car ent_1) 4) (redraw (car ent_2) 4) ) ) ) (progn (princ "\n未选中第二条直线!") (redraw (car ent_1) 4) ) ) ) ) ) (princ "\n未选中第一条直线!") ) (setvar "cmdecho" cmde) (princ) )
|