;;; FILENAME: fline.lsp ;;; Copyright (C) 1999 by John Atkinson ;;; ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED. ;;; ;;; By: John Atkinson - Senior CAD Technician ;;; Date: 29/01/00 ;;;---------------------------------------------------------------------------; ;;; MODIFICATION HISTORY ;;; V1.0 ;;;---------------------------------------------------------------------------; ;;; DESCRIPTION ;;; Routine to draw fence line to current dimscale value ;;; ;;; ;;;---------------------------------------------------------------------------; ;;; GLOBAL VARIABLES ;;; ;;;---------------------------------------------------------------------------; ;;; LOCAL VARIABLES ;;; ;;;---------------------------------------------------------------------------; (defun C:FLINE ( / fpt spt dist1 ang dasang daslen tpt npt dp1 dp2 ln #lay) (setq #lay (getvar "CLAYER")) (setq ln (cdr (assoc 2 (tblsearch "layer" "fenceline")))) (if (= ln "FENCELINE")(command "-layer" "s" "fenceline" "")(command "-layer" "n" "fenceline" "s" "fenceline" "")) (setq fpt (getpoint "\nFirst point of fence line...")) (while (setq spt (getpoint fpt "\nSecond point of fence line...")) (setq dist1 (distance fpt spt)) (setq sfact (getvar "DIMSCALE")) (if (> dist1 (* (+ 30 3 3 15) sfact)) (progn (setq ang (angle fpt spt)) (setq dasang (atan (/ 2.5 3.0))) (setq daslen (* (sqrt (+ (* 2.5 2.5) (* 3.0 3.0))) sfact)) (setq tpt fpt) (while (< (distance fpt tpt) (- dist1 (* (+ 30 3 3) sfact))) (setq npt (polar tpt ang (* 30 sfact))) (command "LINE" tpt npt "") (setq dp1 (polar npt (- ang dasang) daslen)) (setq dp2 (polar dp1 (+ ang (/ pi 2)) (* 5 sfact))) (command "LINE" dp1 dp2 "") (setq tpt (polar dp2 (- ang dasang) daslen)) ) (command "LINE" tpt spt "") ) (command "LINE" fpt spt "") ) (setq fpt spt) ) (setvar "CLAYER" #lay) (princ) )