; TIP505.LSP Complex Line Types (c)1990, Glenn Frank (defun rtd (a) (/ (* a 180.0) pi) ) (defun C:PIPE (/ TXTHT SYM DD ENT PICK PT1 PT2 ANG TXTANG TDST N DST LEN BRKDST PT PT3 PT4) (prompt "Text height must be preset to zero.") (setq TXTHT (getdist "\nText height? ") SYM (getstring 1 "Text: ") DD (getdist "Distance between text: ") ENT (entsel "Pick line for text: ") PICK (entget (car ENT)) PT1 (cdr (assoc 10 PICK)) PT2 (cdr (assoc 11 PICK)) ANG (angle PT1 PT2) TXTANG ANG TDST (distance PT1 PT2) N (fix (/ TDST DD)) DST (/ (- TDST (* N DD)) 2.0) LEN (strlen SYM) BRKDST (* (* LEN 0.5) TXTHT) ) (if (and (> and (* PI 0.5)) (< and (* PI 1.5))) (setq TXTANG (+ ANG PI))) (if (= 1 LEN) (setq BRKDST (* BRKDST 2.0))) (if (< DST (* 2.0 BRKDST)) (setq DST (/ (- TDST (* (- N 1) DD)) 2.0))) (while (< DST TDST) (setq PT (polar PT1 ANG DST) PT3 (polar PT ANG BRKDST) PT4 (polar PT(+ ANG PI)BRKDST)) (command "BREAK" PT3 PT4 "TEXT" "M" PT TXTHT (RTD TXTANG) SYM) (setq DST (+ DST DD))) (princ) )