Ok, here is the code. I know it's not pretty but it does work. Any suggestions welcome of course.
(defun c:col ( / savosmode savortho pt xcol ycol divx divy newx newy x1 x3 x4 dir1 dir2 newans newans1)
(setq savosmode (getvar "osmode"))
(setq savortho (getvar "orthomode"))
(setvar "osmode" 32)
(setq pt (getpoint "\nSelect column intersection point:"))
(setq XCOL (getdist "\nEnter the X direction size: "))
(setq YCOL (getdist "\nEnter the Y direction size: "))
(setq divx (/ xcol 2))
(setq divy (/ ycol 2))
(setq newx (rtos divx))
(setq newy (rtos divy))
(setq newans (strcat "@" newx "<" "180"))
(setq newans1 (strcat "@" newy "<" "270"))
(setq xans (strcat "@" (rtos xcol) "," (rtos ycol)))
(command "rectangle" pt xans)
(setvar "osmode" 0)
(setvar "orthomode" 1)
(command "move" (entlast) "" "0,0" newans)
(command "move" (entlast) "" "0,0" newans1)
(setvar "osmode" savosmode)
(setvar "orthomode" savortho)
(princ)
)