这是因为使用了quote而不是LIST函数来计算列表,因为该列表包含一个变量。
- (defun C:[color=red]LineX[/color] ( / [color=red]theLength[/color] p1)
- (setq [color=red]theLength[/color] (getint "Enter Length of Line: "))
- (setq p1 (list ([color=red]list[/color] [color=red]theLength[/color] 0)))
- (princ p1)
- (princ)
- )
此外,在为变量/函数指定名称时,请特别注意,并避免使用保留名称!
在代码中,您将重新定义内置的行命令,并替换长度函数。这可能会产生严重错误。我已经重命名了上面例子中的那些。
然而,要获得如您所说的字符串,您需要使用STRCAT函数;注意只接受字符串作为参数,所以用户的输入应该被转换。
- (defun C:LineX ( / theLength p1 )
- (setq theLength (getint "Enter Length of Line: "))
- (setq p1 [color=red](strcat (itoa theLength) ",0")[/color])
- (princ p1)
- (princ)
- )
|