(defun C:cne() (setq tn "N ") (setq te "E ") (setq p1 (getpoint "Primer punto en diagonal:")) (setq p2 (getpoint "Segundo punto en diagonal:")) (setq p3 (getpoint "Tercer punto en esquina:")) (setq esp (getreal "Espaciado:")) (setq ht (getreal "Altura del texto:")) (initget "Si No") (setq angtn (getkword "Rotar texto Norte 180 Si/No :")) (initget "Si No") (setq angte (getkword "Rotar texto Este 180 Si/No :")) (setq lt (* 10.0 ht)) (setq angl (angle p3 p1)) (setq distl (distance p3 p1)) (setq p4 (polar p2 angl distl)) (command "pline" p1 p3 p2 p4 "c") (setq sn (entlast)) (command "hatch" "u" 0 esp "y" sn "") (setq snh (entlast)) (command "explode" snh) (setq ssh (ssget "P")) (command "change" ssh "" "P" "c" 8 "") (setq sshl (sslength ssh)) (setq cont 0) (while (< cont sshl) (setq sn (ssname ssh cont)) (setq sl (entget sn)) (setq p1 (cdr (assoc 10 sl))) (setq p2 (cdr (assoc 11 sl))) (setq angc (angle p2 p1)) (setq distc (distance p1 p2)) (setq p1x (nth 0 p1)) (setq p1y (nth 1 p1)) (setq p2x (nth 0 p2)) (setq p2y (nth 1 p2)) (if (= 0.0 (angle p1 p2)) (progn (setq texcne (rtos (nth 1 p1) 2 0)) (setq texcne (strcat tn texcne)) (setq pt1x (+ p1x lt)) (setq pt1y (+ p1y ht)) (setq pt2x (- p2x (* 2.5 lt))) (setq pt2y (+ p2y ht)) (if (= "Si" angtn) (progn (setq pt1 (list (+ pt1x lt) (+ pt1y ht))) (setq pt2 (list (+ pt2x lt) (+ pt2y ht))) (setq angt 180) ) (progn (setq pt1 (list pt1x pt1y)) (setq pt2 (list pt2x pt2y)) (setq angt 0) ) ) ) (progn (setq texcne (rtos (nth 0 p1) 2 0)) (setq texcne (strcat te texcne)) (setq pt1x (- p1x ht)) (setq pt1y (+ p1y (* 3.0 ht))) (setq pt2x (- p2x ht)) (setq pt2y (- p2y (+ ht lt))) (if (= "Si" angte) (progn (setq pt1 (list (- pt1x ht) (+ pt1y lt))) (setq pt2 (list (- pt2x ht) (+ pt2y lt))) (setq angt 270) ) (progn (setq pt1 (list pt1x pt1y)) (setq pt2 (list pt2x pt2y)) (setq angt 90) ) ) ) ) (if (>= distc (* 3.0 lt)) (progn (command "text" pt1 ht angt texcne) (command "text" pt2 ht angt texcne) ) ) (setq cont (1+ cont)) ) )