AARAY
AARAY
; AARAY.LSP
;
; To Array objects in rectangular fashion at any angle.
; *****************************************************************
;
(defun myerr (s)
(if (/= s "Function cancelled")
(princ (strcat "\nError: " s))
)
(setvar "cmdecho" cm)
(setvar "osmode" os)
(setvar "snapang" sa)
(setq *error* oler)
(princ)
)
(defun c:AAray (/ sa1 a nr nc rd cd)
(setq oler *error*
*error* myerr)
(setq cm (getvar "cmdecho")) (setvar "cmdecho" 0)
(setq os (getvar "osmode")) (setvar "osmode" 32)
(setq sa (getvar "snapang"))
(prompt "\nSelect objects to Angled Array: ")
(setq a (ssget))
(initget 1)
(setq sa1 (getangle "\nAngle of Array: "))
(setvar "osmode" 0)
(setvar "snapang" sa1)
(setq nr (getint "\nNo of Rows <1>: "))
(if (= nr nil) (setq nr 1))
(setq nc (getint (strcat "\nNo of Columns <"(itoa nr)">: ")))
(if (= nc nil) (setq nc nr))
(setvar "osmode" 32)
(if (> nr 1)
(setq rd (getdist "\nDistance between Rows: "))
(setq rd nil)
)
(if (> nc 1)
(progn
(cond ((> nr 1)
(setq cd (getdist (strcat"\nDistance between Columns <"(rtos rd)">: ")))
(if (= cd nil) (setq cd rd))
)
((= nr 1)
(setq cd (getdist "\nDistance between Columns: "))
)
)
)
)
(cond ((and (= nr 1) (> nc 1))
(command "array" a "" "r" nr nc cd)
)
((and (> nr 1) (> nc 1))
(command "array" a "" "r" nr nc rd cd)
)
((and (> nr 1) (= nc 1))
(command "array" a "" "r" nr nc rd)
)
)
(setvar "snapang" sa)
(setvar "cmdecho" cm)
(setvar "osmode" os)
(princ)
)