home *** CD-ROM | disk | FTP | other *** search
- (vmon)
-
- (defun txherr(s)
- (if (/= s "Function cancelled")
- (princ (strcat "\nError:" s))
- )
- (command "layer" "s" "0" "")
- (command "text" "s" "hz")
- (command)
- (setvar "cmdecho" 1)
- (setvar "orthomode" 0)
- (setq *error* oer)
- (princ)
- )
-
- (defun C:TXH(/ loop hgt oer sn ss ssl en sn1 d1 d2 sp sp1 sp2 iang ang a dang ename elay n insp xh rn wlist)
- (setvar "cmdecho" 0)
- (setq loop t hgt (* 3 (getvar "userr1")))
- (setq oer *error* *error* txherr)
- (command "text" "s" "standard")
- (command)
- (while loop
- (setq sn (entsel "\n╤í╘±▓╬╒╒├┼┤░:"))
- (setq en (entget (car sn)) ename (cdr (assoc 0 en)) elay (cdr (assoc 8 en)))
- (if (and (= "INSERT" ename) (= "PWINDOW" elay)) (progn
- (setq insp (cdr (assoc 10 en)) iang (cdr (assoc 50 en)) sn1 (entnext (car sn)))
- (setq a (/ (* 180.0 iang) pi) rn (cdr (assoc 1 (entget sn1))))
- (strdv rn)
- (setq xh (nth 0 wlist))
- (setvar "orthomode" 1)
- (setq sp (getpoint insp "\n├┼┤░╨═║┼▒Ω╫ó╡π:"))
- (setq d1 (distance insp sp) ang (angle insp sp) dang (- ang iang))
- (if (and (> a 90) (<= a 270)) (setq ang1 iang ang2 (+ pi iang) a (+ 180 a)) (setq ang1 (+ pi iang) ang2 iang))
- (command "layer" "m" "pwindow" "")
- (if (> (strlen xh) 3) (progn
- (setq d2 (/ (* 3 hgt) 2.0))
- (setq sp1 (polar sp ang1 d2) sp2 (polar sp ang2 d2))
- (command "text" "f" sp1 sp2 hgt xh)
- )
- (command "text" "c" sp hgt a xh))
- (setq loop nil)
- ))
- )
- (setq ss (ssget))
- (if ss (progn
- (setq ssl (sslength ss) n 0)
- (repeat ssl
- (setq sn (ssname ss n) en (entget sn) ename (cdr (assoc 0 en)) elay (cdr (assoc 8 en)))
- (if (and (= "INSERT" ename) (= "PWINDOW" elay)) (progn
- (setq insp (cdr (assoc 10 en)) iang (cdr (assoc 50 en)))
- (setq sp (polar insp (+ iang dang) d1) a (/ (* 180.0 iang) pi))
- (setq rn (cdr (assoc 1 (entget (entnext sn)))))
- (strdv rn)
- (setq xh (nth 0 wlist))
- (if (and (> a 90) (<= a 270)) (setq ang1 iang ang2 (+ pi iang) a (+ a 180)) (setq ang1 (+ pi iang) ang2 iang))
- (if (> (strlen xh) 4) (progn
- (setq sp1 (polar sp ang1 d2) sp2 (polar sp ang2 d2))
- (command "text" "f" sp1 sp2 hgt xh)
- )
- (command "text" "c" sp hgt a xh))
- )) ;endif
- (setq n (1+ n))
- )
- )) ;endif ss
- (command "text" "s" "hz")
- (command)
- (command "layer" "s" "0" "")
- (setvar "cmdecho" 1)
- (setvar "orthomode" 0)
- (setq *error* oer)
- (princ)
- )
-
- (defun strdv(rn / loop l x)
- (setq wlist nil loop t)
- (while loop
- (setq l (instr 1 rn " "))
- (if (= l 0) (setq wlist (cons rn wlist) loop nil)
- (progn ;else
- (setq x (substr rn 1 (1- l)))
- (setq wlist (cons x wlist))
- (setq rn (substr rn (1+ l) (- (strlen rn) l)))
- (setq loop t)
- )
- )
- )
- (setq wlist (reverse wlist))
- )
- (defun instr(st s0 s00 / l n loop x n0 l0)
- (setq l (+ (- (strlen s0) st) 1) l0 0 n0 st n 1 loop t)
- (while (and (<= n l) loop)
- (setq x (substr s0 n0 1))
- (if (eq x s00) (setq loop nil l0 n0) (setq n0 (1+ n0) n (1+ n)))
- )
- (eval l0)
- )