Hi Emily,
Try this:
- (defun c:pt2fld (/ *error* ENT I J LLST OBJ PT SPC SS STRLST TBLOBJ UFLAG) (vl-load-com) ;; Lee Mac ~ 09.02.10 (defun *error* (msg) (and uFlag (vla-EndUndoMark *doc)) (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n** Error: " msg " **"))) (princ)) (setq *doc (cond (*doc) ((vla-get-ActiveDocument (vlax-get-acad-object))))) (setq spc (if (zerop (vla-get-ActiveSpace *doc)) (vla-get-PaperSpace *doc) (vla-get-ModelSpace *doc))) (if (and (setq i -1 ss (ssget '((0 . "POINT")))) (setq pt (getpoint "\nPoint for Table: "))) (progn (setq uFlag (not (vla-StartUndoMark *doc))) (while (setq ent (ssname ss (setq i (1+ i)))) (setq StrLst (cons (list (itoa (1+ i)) (strcat "%%).Coordinates \\f "%lu2%pt1%pr2">%") (strcat "%%")) StrLst)) (setq lLst (append (mapcar (function (lambda (x) (strlen (rtos x 2 2)))) (cdr (assoc 10 (entget ent)))) lLst)) (vla-put-Alignment (setq tObj (vla-AddText spc (itoa (1+ i)) (vla-get-Coordinates obj) (getvar 'TEXTSIZE))) acAlignmentMiddleCenter) (vla-put-TextAlignmentPoint tObj (vla-get-Coordinates obj))) (setq tblObj (vla-AddTable spc (vlax-3D-point pt) (+ 2 (length StrLst)) 3 (* 1.2 (getvar 'TEXTSIZE)) (* (apply (function max) (append '( lLst)) 1.5 (getvar 'TEXTSIZE)))) (vla-SetText tblObj 0 0 "Emily's Points :-)") (setq i 1 j -1) (mapcar (function (lambda (x) (vla-SetText tblObj i (setq j (1+ j)) x))) '("POINT" "EASTING" "NORTHING")) (setq j 0) (mapcar (function (lambda (x) (setq i (1+ i) j -1) (mapcar (function (lambda (y) (vla-SetText tblObj i (setq j (1+ j)) y))) x))) (reverse StrLst)) (setq uFlag (vla-EndUndoMark *doc)))) (princ))
|