如何在 Autolisp 中打印值?

How to print values in Autolisp?

我正在 AutoCAD 中将我的简单脚本编写到 select a table 并通过在控制台中打印来检索 table 的一些数据。

(defun C:test (/)
    (vl-load-com) 
    (setvar "CTAB" "Model")
(princ "\n*** Pick a table ***")
  (if (setq ss (ssget "_:S:E:L" '((0 . "ACAD_TABLE"))))
      (setq table (vlax-ename->vla-object (ssname ss 0)))
    )       
        
(setq  table_rows (vla-get-rows table)
       table_width (vla-get-width table)
 )  
    
(prinс (strcat "Num of rows is" table_rows ", table width is " table_width))
)

在 运行 这个脚本之后,在 Autocad 中选择了一个 table 的 57 行 returns 我错了:

wrong type of argument: stringp 57

我该如何解决?

strcat 需要字符串参数。在你的情况下 table_rows 是整数, table_width 看起来像真实的。所以你需要通过 itoartos

试试这个:

(prinс (strcat "Num of rows is" (itoa table_rows) ", table width is " (rtos table_width)))