(setq plist '(p1 p2 p3 p5 p7 p8 p9 p10)) 返回值为 (p1 p2 p3 p5 p7 p8 p9 p10)而不是点表,这里应该用list。
另外apply应该再加一个(command "")退出pline命令。

- 1. list
- 将任意数目的表达式组合成一个表
- (list [expr...])
- 本函数常用于定义二维或三维点变量(由两个或三个实数组成的表)。
- 参数
- expr
- AutoLISP 表达式。
- 返回值
- 表。如果未提供表达式,则 list 返回 nil。
- 样例
- 命令:(list 'a 'b 'c)
- (A B C)
- 命令:(list 'a '(b c) 'd)
- (A (B C) D)
- 命令:(list 3.9 6.7)
- (3.9 6.7)
- 如果表中没有变量和未定义的项,还可以用 quote 函数显式引用一个表,这和调用 list 函数效果相同。
- 单引号 ( ' ) 被定义为 quote 函数。
- 命令:'(3.9 6.7) 等于 (list 3.9 6.7)
- 这对创建关联表和定义点来说很有用。
- 2. command
- 执行一条 AutoCAD 命令
- (command [arguments] ...)
- 参数
- arguments
- AutoCAD 命令、选项或表达式。
- command 函数的参数可以是字符串、实数、整数或点,但必须与要执行的命令所需的参数一致。空字符串 ("") 表示从键盘键入 ENTER 键。
- 不带参数调用 command 相当于键入 ESC 键,这样可取消大多数 AutoCAD 命令。
- command 函数将每一个参数顺序传给 AutoCAD 以响应提示。它以字符串形式提交命令名和选项;以两个实数组成的表的形式提交二维点;
- 以三个实数组成的表的形式提交三维点。只有在命令提示下 AutoCAD 才能识别命令名。
- 要注意的是,如果从 Visual LISP 中使用 command 函数,控制并不会转移到 AutoCAD 中。如果命令要求用户输入,则可以在控制台窗口
- 中看到返回结果 (nil),但 AutoCAD 将等待输入,必须手动激活 AutoCAD 并响应提示。在这样做以前,任何后续命令都会失败。
- 返回值
- nil
|