I have limited vlisp experience but took a stab at creating the program.
The following is a work-in-progress but it does create an ASCII file of 1's, and 0's for one pass in the x direction.
To use it create a box of desired size (e.g., one unit square) and an object to analyze . Place the box outside of the object being analyzed such that when it moves in the x direction it will pass through the object. The program runs one pass in x. It could be expanded with additional loops to index in the y and z direction. I stopped here to see if this is on the right track.
Here's a sample output of one row for passing the red box through the white shape.

(defun c:bin (/ fname s i n v c cx cy cz)
; lrm version 1.0 1/18/2020
; steps a box sequentially through a solid and creates a file
; noting when the box and solid overlap
; - limited to one row in x
(vl-load-com)
(setq fname (getfiled "Filename" "" "txt" 1))
(setq fname (open fname "w"))
(write-line "row 1" fname)
(setq obj (car (entsel "\nSelect object for analysis.")))
(setq box (car (entsel "\nSelect box.")))
(setq delta (getreal "\nEnter step size."))
(setq nstepsx (getint "\nEnter number of steps in x"))
(setq aline "")
(setq obj1 (vlax-ename->vla-object obj)
box1 (vlax-ename->vla-object box)
)
(setq i 0)
(setq p1 '(0 0 0)
p2 (list delta 0 0)
)
(while (< i nstepsx)
(setq
solidObj
(vla-CheckInterference obj1 box1 :vlax-false :vlax-false)
)
(if solidObj
(setq aline (strcat aline "1")) ; yes, intersection
(setq aline (strcat aline "0")) ; no intersection
)
(setq i (+ i 1))
(vla-move box1 (vlax-3D-point p1) (vlax-3D-point p2))
) ; end while
(write-line aline fname)
(close fname)
(princ)
)
The program creates solids for each of the checks which you probably don't want.
lee.minardi