如何在 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
看起来像真实的。所以你需要通过 itoa
和
rtos
试试这个:
(prinс (strcat "Num of rows is" (itoa table_rows) ", table width is " (rtos table_width)))
我正在 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
看起来像真实的。所以你需要通过 itoa
和
rtos
试试这个:
(prinс (strcat "Num of rows is" (itoa table_rows) ", table width is " (rtos table_width)))