; BLOCK ANNOTATION PROGRAM
(defun C:x()
(setvar “cmdecho” 0)
(setvar “osmode” 1)
(setq pt1 (getpoint “nPick xy Point: “))
(setvar “osmode” 0)
(setq pt2 (getpoint “nPick 1st flag point: “))
(command “line” pt1 pt2 “”)
(setq pt3 (getpoint “nPick left or right point: “))
(setq x1 (car pt1))
(setq y1 (cadr pt1))
(setq ax (rtos x1 2 4))
(setq ay (rtos y1 2 4))
(setq x2 (car pt2))
(setq y2 (cadr pt2))
(setq x3 (car pt3))
(setq y3 (cadr pt3))
(if (< x3 x2) (setq x4 (- x2 15)))
(if (> x3 x2) (setq x4 (+ x2 15)))
(setq y4 y2)
(setq pt4 ( list x4 y4 ))
(command “line” pt2 pt4 “”)
(setq x1 (/ (+ x2 x4) 2))
(setq y1 (+ y2 0.5))
(setq pt1 (list x1 y1))
(command “text” “c” pt1 1.2 0 ay)
(setq y1 (- y2 2.0))
(setq pt1 (list x1 y1))
(command “text” “c” pt1 1.2 0 ax)
)
;block calculation
;
(defun C:b()
(setvar “osmode” 1)
(setq pi 3.1415926)
(setq p1 (getpoint “nPick Left Point: “))
(setq p2 (getpoint “nPick Right Point: “))
(setvar “osmode” 0)
(setq rot (angle p1 p2))
(setq ang (angtos rot 1 0))
(setq l1 (strlen ang))
(setq dd (substr ang 1 (- l1 1)))
(setq ang (angtos rot 1 2))
(setq l2 (strlen ang))
(setq mm (substr ang (+ l1 1) (- l2 l1 1)))
(if (= 1 (strlen mm)) (setq mm (strcat “0” mm)))
(setq ang (angtos rot 1 4))
(setq l3 (strlen ang))
(setq ss (substr ang (+ l2 1) (- l3 l2 1)))
(if (= 1 (strlen ss)) (setq ss (strcat “0” ss)))
(setq br (strcat dd “-” mm “-” ss))
(setq rot (+ rot (/ pi 2)))
(if (> rot (* pi 2)) (setq rot (- rot (* pi 2))))
(if (> rot pi) (setq rot (- rot pi)))
(setq b1 (getpoint “nPick Bearing Location: “))
(command “text” b1 ts ang br)
)
(defun c:ts()
(setq ts (getreal “nEnter Text Size: “))
)
(defun C:d()
(setvar “osmode” 1)
(setq pi 3.1415926)
(setq p1 (getpoint “nPick Left Point: “))
(setq p2 (getpoint “nPick Right Point: “))
(setvar “osmode” 0)
(setq rot (angle p1 p2))
(setq ang (angtos rot 1 0))
(setq l1 (strlen ang))
(setq dd (substr ang 1 (- l1 1)))
(setq ang (angtos rot 1 2))
(setq l2 (strlen ang))
(setq mm (substr ang (+ l1 1) (- l2 l1 1)))
(if (= 1 (strlen mm)) (setq mm (strcat “0” mm)))
(setq ang (angtos rot 1 4))
(setq l3 (strlen ang))
(setq ss (substr ang (+ l2 1) (- l3 l2 1)))
(if (= 1 (strlen ss)) (setq ss (strcat “0” ss)))
(setq br (strcat dd “-” mm “-” ss))
(setq rot (+ rot (/ pi 2)))
(if (> rot (* pi 2)) (setq rot (- rot (* pi 2))))
(if (> rot pi) (setq rot (- rot pi)))
(setq b2 (getpoint “nPick Distance Location: “))
(setq dis (rtos (distance p1 p2) 2 3))
(command “text” b2 ts ang dis)
)