Converting Lists to Strings Using an External File with autolisp in AutoCAD

There is no predefined function to convert either a list or a symbol to a string. But we can create on using an inverse (read) function that converts data of any type to a string. Noting that (princ) will write any data type to a file, and that (read-line) returns a string, we can use a temporary file for conversion.

(defun XTOS (ARG / FILE)
(setq FILE (open “$temp” “w”))
(princ ARG FILE)
(close FILE)
(setq FILE (open “$temp” “r”))
(setq ARG (read-line FILE))
(close FILE)
)

Example

Command: (setq PT1 (list 1.0 3.0 0.0))
(1.0 3.0 0.0)
Command: (xtos PT1)
“(1.0 3.0 0.0)”
Command: (strcat “\nThis is a list of points: ” (xtos PT1))
“\nThis is a list of points: (1.0 3.0 0.0)”

  • A complete solution to this exercise is on your class disk as XTOS-A.LSP.
See also  Setting Up an AutoLISP Routine
Back to top button