;TIPXXXX.LSP: QW.LSP Loop Leader (c) 1997, Yuqun Lian ;;; This routine draws a loop leader constructed with a polyline on the ;;; current layer. You can pick a middle point to adjust the shape of ;;; the loop, or change the DIMSCALE to adjust its size. It's very handy ;;; to label the size and name of pipe lines for engineering drawings. ;;; Yuqun Lian - SimpleCAD, http://www.simplecad.com 3/19/97 ;;; ----------------------------------------------------------------------- (defun C:QW (/ tempcmd templt tempplw temportho tempblip u pt1 pt2 ptm gama beta arfa tanangle angif ang pta ptb ptc ptd pte) (setq tempcmd (getvar "cmdecho")) (setq templt (getvar "celtype")) (setq tempplw (getvar "plinewid")) (setq temportho (getvar "orthomode")) (setq tempblip (getvar "blipmode")) (setvar "cmdecho" 0) (setvar "blipmode" 0) (setvar "celtype" "bylayer") (setvar "orthomode" 0) ; set loop unit (setq u (* (getvar "dimscale") 0.026)) (if (setq pt1 (getpoint "\nStart point: ")) (progn (initget 1 "Middle") (setq pt2 (getpoint pt1 "\nMiddle/: ")) (if (= pt2 "Middle") (progn (initget 1) (setq ptm (getpoint pt1 "\nMiddle point: ")) (initget 1) (setq pt2 (getpoint pt1 "\nEnd point: ")) ) ;end progn (setq ptm pt1) ) ;end if (command "arc" pt1 "e" pt2 "d" pause) (setq gama (getvar "lastangle")) ;arc endpoint tan angle (setq beta (angle pt1 pt2)) (setq arfa (- beta gama)) (setq tanangle (+ arfa beta)) ;arc startpoint tan angle (setq ptm (polar pt1 tanangle (distance pt1 ptm))) (setq angdif (- tanangle beta)) (if (or (> angdif 6.28) (and (> angdif 0) (< angdif 3.14))) (progn (setq pta (polar pt1 (+ tanangle 1.6) u)) (setq ptb (polar pt1 (+ tanangle 2.8) (* u 2.1))) (setq ptc (polar pt1 (+ tanangle 3.2) (* u 2.1))) (setq ptd (polar ptm (+ tanangle 4.6) u)) (setq pte (polar ptm (+ tanangle 6.8) (* u 3))) ) ;end progn (progn (setq pta (polar pt1 (- tanangle 1.6) u)) (setq ptb (polar pt1 (- tanangle 2.8) (* u 2.1))) (setq ptc (polar pt1 (- tanangle 3.2) (* u 2.1))) (setq ptd (polar ptm (- tanangle 4.6) u)) (setq pte (polar ptm (- tanangle 6.8) (* u 3))) ) ;end progn ) ;end if (command "erase" "l" "") (setq ang (* 57.2958 (+ 3.14159 gama))) ;pline start angle (setvar "fillmode" 1) (command "pline" pt2 "w" "0" "0" "arc" "d" ang pta ptb ptc ptd pte "") ); progn ); if pt1 (setvar "orthomode" temportho) (setvar "celtype" templt) (setvar "plinewid" tempplw) (setvar "blipmode" tempblip) (setvar "cmdecho" tempcmd) (princ) ) ;end QW (prompt "\nType QW to draw loop leader") (princ)