AutoLISP 比大多数其他计算机编程语言更频繁地使用括号。 注意:Visual LISP IDE 仅在 Windows 上可用。
AutoLISP 中最常见的语法错误之一是左括号和右括号的数量不相等。在将程序加载到 AutoCAD 中之前,必须平衡所有括号,并且必须正确平衡括号以确保可以执行程序的功能。 Visual LISP 包含许多工具来帮助检测不平衡或不匹配的括号。在文本编辑器中设置代码格式时,Visual LISP 代码格式化程序会搜索不平衡的括号。如果允许,代码格式化程序将在它认为缺少括号的地方添加括号。在大多数情况下,代码格式化程序会在正在格式化的代码末尾添加缺少的括号。 注意:如果不允许格式化程序添加缺少的括号,它也不会格式化代码。
以下代码演示了缺少的括号以及使用“匹配转发”工具时发生的情况: 1 (defun yinyang (/ origin radius i-radius half-r origin-x origin-y) 2 (setq half-r (/ radius 2)) 3 (setq origin-x (car origin)) 4 (setq origin-y (cadr origin)) 5 (command "._circle" 6 origin 7 radius 8 (command "._arc" 9 "_c" 10 (list origin-x (+ origin-y half-r)) 11 (list origin-x (+ origin-y radius)) 12 origin 13 ) 14 (command "._arc" 15 "_c" 16 (list origin-x (- origin-y half-r)) 17 (list origin-x (- origin-y radius)) 18 origin 19 ) 20 ) (行号不是文本的一部分;它们用于帮助解释示例。 如果在 Visual LISP 中加载前面的代码并持续使用“向前匹配”工具,从第 1 行开头的插入点开始,则会出现以下情况。
光标移动到最后一行的原因是,与第 5 行的左括号匹配的右括号是程序中的最后一个括号。这是一个错误,因为 AutoLISP 程序中的最后一个右括号应与程序函数的左括号匹配。另请注意,第 5 行之后的所有语句的缩进方式与前面的程序代码不同。这两条线索表明程序的这一点有些不对劲。实际上,缺少从第 5 行开始的命令函数的右括号。缺少的括号应放在第 7 行和第 8 行之间。defun |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-16 01:15
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.