Okay, so here is my end result I came up with.
This program is for our team to use in coordination with another program that allows a user to select their ceiling with all of their custom ceiling panels in blocks and will put the block into a table as well as the name and the qty similar to a data extract.
(DEFUN C:TEST (/ *ERROR* ENT LAYER VALUE OBJ DATA ROW COL E X)
(DEFUN *ERROR* (MSG)
(SB:RESET_VARS)
(IF
(NOT
(WCMATCH
(STRCASE MSG)
"*BREAK,*CANCEL*,*EXIT*"
)
)
(PRINC
(STRCAT "\nERROR: " MSG)
)
(SB:RESET_VARS)
)
(COMMAND "UNDO" "_END")
(PRINC)
)
(SB:GET_VARS)
(setvar "OSMODE" 0)
(SETQ LAYER "VIEW_BOUNDRY")
(SETQ ENT (CAR (ENTSEL)))
(SETQ OBJ (VLAX-ENAME->VLA-OBJECT ENT))
(WHILE T
(PRINC "\nPRESS ESC TO EXIT...")
(SETQ DATA (_HIT-TEST (GETPOINT) OBJ))
(IF
(SETQ VALUE
(VLA-GETTEXT (CAR DATA) (CADR DATA) (CADDR DATA))
COL (1- (CADDR DATA))
ROW (CADR DATA)
)
(PROGN
(SETQ X (CADR (CELLEXTENTS OBJ ROW COL))
Y (CADDR (CELLEXTENTS OBJ ROW COL))
)
(TEST_LAYER LAYER)
(COMMAND "RECTANGLE" X Y)
(COMMAND "-VIEW" "_WINDOW" VALUE X Y)
)
)
)
(SB:RESET_VARS)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(DEFUN _HIT-TEST (PT OBJ /) ;VD)
(SETQ PT (VLAX-3D-POINT (TRANS PT 1 0))
VD (VLAX-3D-POINT (TRANS (GETVAR 'VIEWDIR) 1 0))
)
(IF (EQ :VLAX-TRUE (VLA-HITTEST OBJ PT VD 'ROW 'COL))
(LIST OBJ ROW COL)
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;<------GET TABLE CELL COORDINATES --------->;;;
(DEFUN CELLEXTENTS (OBJ ROW COL / LST RTN)
(SETQ LST (VLAX-INVOKE OBJ 'GETCELLEXTENTS ROW COL :VLAX-TRUE))
(REPEAT 4
(SETQ RTN (CONS (LIST (CAR LST) (CADR LST) (CADDR LST)) RTN)
LST (CDDDR LST)
)
)
RTN
)
;;;(DEFUN CELLEXTENTS ( OBJ ROW COL / A B C D LST RTN );USE FOR MERGED CELLS IF SOMETHING GOES SOUTH
;;; (IF (= :VLAX-TRUE (VLA-ISMERGEDCELL OBJ ROW COL 'A 'B 'C 'D))
;;; (SETQ ROW A COL C)
;;; )
;;; (SETQ LST (VLAX-INVOKE OBJ 'GETCELLEXTENTS ROW COL :VLAX-TRUE))
;;; (REPEAT 4 (SETQ RTN (CONS (LIST (CAR LST) (CADR LST) (CADDR LST)) RTN) LST (CDDDR LST)))
;;; (REVERSE RTN)
;;;)
(DEFUN TEST_LAYER (LAYER)
(IF
(TBLSEARCH "LAYER" LAYER)
(SETVAR "CLAYER" LAYER)
(COMMAND "_.-LAYER" "_N" LAYER "_COLOR" 16 LAYER "PLOT" "_N" LAYER
"")
)
(SETVAR "CLAYER" LAYER)
)
(DEFUN SB:GET_VARS ()
(SETQ HIGHLIGHT (GETVAR "HIGHLIGHT")
CMDDIA (GETVAR "CMDDIA")
FILEDIA (GETVAR "FILEDIA")
MIRRTEXT (GETVAR "MIRRTEXT")
PICKADD (GETVAR "PICKADD")
PICKAUTO (GETVAR "PICKAUTO")
PICKFIRST (GETVAR "PICKFIRST")
SELECTIONPREVIEW (GETVAR "SELECTIONPREVIEW")
CMDECHO (GETVAR "CMDECHO")
OSMODE (GETVAR "OSMODE")
)
(PRINC)
)
(DEFUN SB:RESET_VARS ()
(SETVAR "HIGHLIGHT" HIGHLIGHT)
(SETVAR "CMDDIA" CMDDIA)
(SETVAR "FILEDIA" FILEDIA)
(SETVAR "MIRRTEXT" MIRRTEXT)
(SETVAR "PICKADD" PICKADD)
(SETVAR "PICKAUTO" PICKAUTO)
(SETVAR "PICKFIRST" PICKFIRST)
(SETVAR "SELECTIONPREVIEW" SELECTIONPREVIEW)
(SETVAR "CMDECHO" CMDECHO)
(SETVAR "OSMODE" OSMODE)
)
This one will let the user select that table then uses the get point to pick inside of the name column, it sets the value of the name and sets the min and max point of the cell containing the block, then it creates a new view with those points that can then be inserted into paper space.
Thanks for helping me get here!