;---------------------------------------------------------------------------- ; DOFF.LSP ; Offset a line from Picked Line equally each side ; Copyright: TOWNSCAPE SUPPORT SYSTEMS - 1989 ;---------------------------------------------------------------------------- (setq oldwidth 6) ; Degrees to Radians conversion. (defun dtr(a) (* pi (/ a 180.0))) ;---------------------------------------------------------------------------- ; MAIN CALLING FUNCTION ;---------------------------------------------------------------------------- (defun c:DOFF() (setq olderr *error* *error* myerr) (setvar "cmdecho" 0) (setq ang90 (dtr 90)) ;---------------------------------------------------------------------------- ;get new offset distance or accept default. (setq width (getdist (strcat "\nEnter width of finished offsets: <" (rtos oldwidth) ">"))) (if (= width nil) (setq width oldwidth) (setq oldwidth width)) (setq width (/ width 2)) ;---------------------------------------------------------------------------- ;start a loop for successive calls to main program. (while (setq ent (entsel "\nSelect line: ")) (setq elist (entget (car ent))) (setq angent (angle (cdr (assoc 11 elist)) (cdr (assoc 10 elist)))) ;---------------------------------------------------------------------------- ;do calculations for offsetting lines. (setq pt1 (cadr ent)) (setq ang1 (+ angent ang90)) (setq ang2 (- angent ang90)) (setq dir1 (polar pt1 ang1 width)) (setq dir2 (polar pt1 ang2 width)) ;---------------------------------------------------------------------------- ;do the offsetting and erase original line. (command "offset" width ent dir1 ent dir2 "") (setvar "cmdecho" 1) ) ;---------------------------------------------------------------------------- ;end of the while loop for successive calls to main function ;---------------------------------------------------------------------------- ) ;---------------------------------------------------------------------------- ;end of DOFF.LSP