Hello everyone, I am trying to write a LISP routine that will zoom to each text object and run TXTEXP on them individually.
I have managed to get to a point where it will zoom to each text object and call TXTEXP, but I am having trouble passing coordinates to TXTEXP, or selecting the text object before the call to TXTEXP.
The following code is "complete" except for the need for the user to click the text object and press enter.
Code:
(DEFUN C:EMT () (LOAD "TXTEXP.LSP")
(PROMPT "\n*EXPLODE TEXT* ")
(SETQ SS (SSGET "X" '((0 . "TEXT"))))
(SETQ SSL (SSLENGTH SS))
(SETQ LP 1)
(SETQ CT (- SSL 1))
(WHILE LP
(SETQ EN (SSNAME SS CT))
(SETQ CT (- CT 1))
(SETQ ENL (ENTGET EN))
(SETQ ENLIP (CDR (ASSOC 10 ENL)))
(SETQ ENTH (CDR (ASSOC 40 ENL)))
(COMMAND "ZOOM" "C" ENLIP (* ENTH 50))
(C:TXTEXP)
(IF (< CT 0) (SETQ LP NIL))
);END LP
(PRINC)
);END EMT
TXTEXP cannot be called with COMMAND, and (C:TXTEXP ENLIP) errors with "Too many arguments"
The following code errors on the SELECT command with "*Invalid selection* Expects a point or Window...(etc)"
Code:
(DEFUN C:EMT () (LOAD "TXTEXP.LSP")
(PROMPT "\n*EXPLODE TEXT* ")
(SETQ SS (SSGET "X" '((0 . "TEXT"))))
(SETQ SSL (SSLENGTH SS))
(SETQ LP 1)
(SETQ CT (- SSL 1))
(WHILE LP
(SETQ EN (SSNAME SS CT))
(SETQ CT (- CT 1))
(SETQ ENL (ENTGET EN))
(SETQ ENLIP (CDR (ASSOC 10 ENL)))
(SETQ ENTH (CDR (ASSOC 40 ENL)))
(SETQ XCOORD (CAR ENLIP))
(SETQ YCOORD (CADR ENLIP))
(COMMAND "ZOOM" "C" ENLIP (* ENTH 50))
(COMMAND "SELECT" '(XCOORD YCOORD))
(C:TXTEXP)
(IF (< CT 0) (SETQ LP NIL))
);END LP
(PRINC)
);END EMT
If I stop the code at the SELECT command, I am able to manually input the coordinates stored in XCOORD and YCOORD, and it will select the visible text object.
What am I doing wrong here? Any help would be appreciated