lisp错误: 参数太多

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lisp错误: 参数太多相关的知识,希望对你有一定的参考价值。

(defun c:7test2a();以下 pa、ww、hh、n 值须由用户输入
(setq pa (getpoint "请求输入基准点: "))
(setq ww (getdist pa "\n请求输入楼梯宽度: "))
(setq hh (getdist pa "\n请求输入楼梯高度: "))
(setq n (getint "\n请求输入楼梯阶数: "));先画出 pa ? pb ? pc
(setq aa_2 0)
(initget"L r")
(setq aa_1 (getkword "请输入方向<L或R>?: "))
(if (null aa_1) (setq aa_1 "L"))
(if(= "R" aa_1)
(setq aa_2 pi))
(setq pb (polar pa aa_2 ww))
(setq pc (polar pb (/ pi 2) hh))
(command "line" pa pb pc "")
;请留意以下三行dw、dh、pp值须由程序依据ww、hh 与 n求出
(setq dw (/ ww n))
(setq dh (/ hh n))
(setq pp pa)
;以下准备进入repeat循环了
(repeat n
(setq p1 (polar pp (/ pi 2) dh))
(setq p2 (polar p1 aa_2 dw))
(command "line" pp p1 p2 "")
(setq pp p2)
)
(prin1)
)
(prompt “\n << 7TEST2>>快速自动楼梯绘制程序”)
(prin1)

1、将(initget"L r")改为→(initget"L R"),注意r的大小写;
2、将(prompt “\n << 7TEST2>>快速自动楼梯绘制程序”)改为→(prompt "\n << 7TEST2>>快速自动楼梯绘制程序"),注意双引号的中英文区别;
3、增加系统变量的保存与恢复。
整个程序如下:
(defun c:7test2a()
;储存系变量原始值
(setq cm (getvar "cmdecho")
os (getvar "osmode")
)
(setvar "cmdecho" 0) ;关闭命令行的回显

;以下 pa、ww、hh、n 值须由用户输入
(setq pa (getpoint "请求输入基准点: "))
(setq ww (getdist pa "\n请求输入楼梯宽度: "))
(setq hh (getdist pa "\n请求输入楼梯高度: "))
(setq n (getint "\n请求输入楼梯阶数: "))
;先画出 pa ? pb ? pc
(setq aa_2 0)
(initget"L R")
(setq aa_1 (getkword "请输入方向<L或R>?: "))
(if (null aa_1) (setq aa_1 "L"))
(if(= "R" aa_1)(setq aa_2 pi))
(setq pb (polar pa aa_2 ww))
(setq pc (polar pb (/ pi 2) hh))

(setvar "osmode" 0) ;关闭对象捕捉

(command "line" pa pb pc "")
;请留意以下三行dw、dh、pp值须由程序依据ww、hh 与 n求出
(setq dw (/ ww n))
(setq dh (/ hh n))
(setq pp pa)
;以下准备进入repeat循环了
(repeat n
(setq p1 (polar pp (/ pi 2) dh))
(setq p2 (polar p1 aa_2 dw))
(command "line" pp p1 p2 "")
(setq pp p2)
)
;恢复系变量原始值
(setvar "osmode" os)
(setvar "cmdecho" cm)

(prin1)
)
(prompt "\n << 7TEST2>>快速自动楼梯绘制程序")
(prin1)
参考技术A 貌似运行起来没什么错误吧~

以上是关于lisp错误: 参数太多的主要内容,如果未能解决你的问题,请参考以下文章

lisp编程提示参数太多

AUTO CAD Lisp代码总是出现 参数太多的问题

函数的参数太多了

错误:位置参数太多:允许 0 个,但找到 2 个

错误:输入参数太多matlab

您输入了太多参数 excel IF 错误