I have a LISP routine written several years ago. The idea is to pick a distance and enter a maximum spacing. The result arrays the entity with spaces not to exceed the maximum spacing. The problem we are seeing is if the distance is exactly divisable by the spacing the routine adds one additional space. Example: dist=30'-0 max. spa. = 3'-0 should give 10 spaces at 3'-0 but the program gives me 11 spaces at 2'-8 3/4. I'm guessing that this has something to do with rounding the numbers. The routine is included here, any help would be appreciated (I have 4 of these - up, down, right, left). I know that someone probably has one routine that does this in any direction, not just orthogonal, if you want to send me that I would appreciate it. (defun c:arrup(/ dist1 xx num1 disp1 num2 obj dist2 dist3) (setq DIST1 (getdist "Length of Array: ")) (setq XX (getstring "Maximum Spacing: ")) (setq NUM1 (distof XX 4)) (setq DISP1 (/ DIST1 NUM1)) (setq NUM2 (- DISP1 (fix DISP1))) (if (> 0 NUM)(setq NUM2 (+ (fix DISP1) 1))) (prompt "Objects to Array: ")(terpri) (setq OBJ (ssget))(terpri) (setq DIST2 (/ DIST1 NUM2)) (command "ARRAY" OBJ "" "R" NUM2 "" DIST2) (princ) ) Thanks, Jon Brazier [email][/email]