(Defun UPDATESET (/ mod sset2 sset2ct) (setq mod nil) (initget 1 "Y N") (setq mod (getkword "\nSelect more? ")) (if (= mod "Y") (setq sset2 (ssget))) (if (ssname sset2 0) (progn (setq sset2ct 0) (while (<= sset2ct (sslength sset2)) (if (ssname sset2 sset2ct) (ssadd (ssname sset2 sset2ct) sset1)) (setq sset2ct (1+ sset2ct)) ) ) ) ) (defun BREAKUP (/ counter brk frst scnd) (setq counter 0) (while (< counter (sslength sset1)) (redraw (ssname sset1 counter) 3) (setq counter (1+ counter)) ) (initget 1 "Y N") (setq brk (getkword "\Need to Break any lines? ")) (if (= brk "Y") (progn (while brk (setq brk (entsel "\nSelect line/arc to break: ")) (if brk (progn (if (ssmemb (car brk) sset1) (setq sset1 (ssdel (car brk) sset1))) (redraw (car brk) 1) (setq frst (getpoint "\nSelect point to break at: ") secnd (getpoint "\nSelect point to break to: ")) (command "break" (cadr brk) "f" frst secnd) ) ) ) (updateset) ) ) ) (defun GETSET (/ reuse) (if sset1 (progn (setq sset2 sset1) (initget 1 "Y N") (setq reuse (getkword "\nRe-use selection set? ")) (if (= reuse "N") (setq sset1 (ssget))) ) (setq sset1 (ssget)) ) ) (setq sset1 nil) (Defun C:HTCH (/ layersav) (setvar "cmdecho" 0) (if (not pat) (setq pat "ANSI31")) (if (not sc) (setq sc 1.0)) (if (not an) (setq an 0.0)) (setq pat (input_txt "\nHatch Pattern: " pat) sc (input_real "\nHatch Scale: " sc) an (input_real "\nHatch Angle: " an) layersav (getvar "clayer")) (getset) (breakup) (command "layer" "S" "0" "") (if sset1 (command "hatch" pat sc an sset1 "")) (command "layer" "S" layersav "") (princ) ) (Defun INPUT_REAL (A B / C) (setq A (strcat A " <" (rtos B 2 3) ">: ")) (setq C (getdist A)) (if (/= C nil) (setq B C) (setq B B) ) ) (Defun INPUT_TXT (A B / C) (setq A (strcat A " <" B ">: ")) (setq C (getstring A)) (if (/= C "") (setq B C) (setq B B) ) )