home *** CD-ROM | disk | FTP | other *** search
- (defun plverr(s)
- (if (/= s "Function cancelled")
- (princ (strcat "\nError:" s))
- )
- (command "layer" "s" "0" "")
- (setvar "cmdecho" 1)
- (setq *error* oer)
- (princ)
- )
- (defun C:PLV(/ oer x insp insn ss wl hl ssl sn en sn1 en1 ins hgt n n1 xx ymin base insh)
- (setvar "CMDECHO" 0)
- (setq oer *error* *error* plverr)
- (initget "Right Left")
- (setq fg (getkword "\n╤í╘±▒Ω╘┌╫≤▒▀,╙╥▒▀ (Left or Right):"))
- (if (= fg "Right") (setq fg "R") (setq fg "L"))
- (princ "\n╡┌╥╗╕÷┤░╠¿╕▀╢╚ <")
- (princ 900)
- (setq wdh (if (setq x (getreal ">:")) x 900.0))
- (setq insp (getpoint "\n▒Ω╕▀╖√║┼▓σ╚δ╡π:"))
- (command "layer" "m" "sdim" "")
- (setq ss (ssget) wl nil hl nil)
- (if ss (progn
- (setq ssl (sslength ss) n 0 n1 0)
- (repeat ssl
- (setq sn (ssname ss n) en (entget sn))
- (if (and (= "INSERT" (cdr (assoc 0 en))) (= "SWINDOW" (cdr (assoc 8 en))))
- (progn
- (setq sn1 (entnext sn) en1 (entget sn1))
- (setq rn (cdr (assoc 1 en1)) ww nil)
- (setq loop t)
- (while loop
- (setq ll (instr 1 rn " "))
- (if (= ll 0) (setq ww (cons rn ww) loop nil)
- (progn ;else
- (setq r1 (substr rn 1 (1- ll)))
- (setq ww (cons r1 ww))
- (setq rn (substr rn (1+ ll) (- (strlen rn) ll)))
- (setq loop t)
- )
- )
- )
- (setq hgt (atoi (nth 1 ww)) wh (atoi (nth 0 ww)))
- (setq ins (cdr (assoc 10 en)))
- (setq wl (cons (list (- (cadr ins) (/ hgt 2)) n1) wl) hl (cons hgt hl))
- (setq n1 (1+ n1))
- )) ;if
- (setq n (1+ n))
- )
- (setq n 0)
- (repeat (length wl)
- (setq ymin (apply 'min (mapcar 'car wl)))
- (setq x (assoc ymin wl) xx (cadr x) hgt (nth xx hl))
- (if (= n 0) (setq base (- ymin wdh)))
- (setq wl (subst (list 1000000.0 0) x wl))
- (setq ins (list (car insp) ymin) insh (list (car ins) (+ (cadr ins) hgt)))
- (command "insert" (strcat "ELU" fg) ins (/ (getvar "USERR1") 100.0) "" "0" (rtos (/ (fix (+ 0.005 (- (cadr ins) base))) 1000.0) 2 3))
- (command "insert" (strcat "ELD" fg) insh (/ (getvar "USERR1") 100.0) "" "0" (rtos (/ (fix (+ 0.005 (- (cadr insh) base))) 1000.0) 2 3))
- (setq n (1+ n))
- )
- ))
- (command "layer" "s" "0" "")
- (setvar "CMDECHO" 1)
- (setq *error* oer)
- (princ)
- )