Stevery 发表于 2022-7-5 15:26:11

如何正确运行lisp?

你好
 
 
我以前从未在AutoCAD中使用过lisps,所以我想试试。
 
 
我在谷歌上搜索了如何运行lisp——我使用的过程可以在附带的image命令历史记录中看到。
谁能指出我哪里出错了?
 
 
我加载的命令来自Sample>Visual Lisp文件夹。
 
 
 
 
 
 
编辑:原来我使用了错误的命令。
我在看“defun drawline”,假设drawline是命令,而我应该看“用法:(drawline)”
 
 
 
 
谢谢

ziele_o2k 发表于 2022-7-5 15:47:51

如果您不想从没有括号()的命令行运行lisp,请使用以下模式在lisp文件中进行更改:
(defun c:drawline
... lisp code
)
关于这一点:
https://stackoverflow.com/questions/39059744/the-use-of-and-in-autolisp/48774394#48774394

Stevery 发表于 2022-7-5 16:08:11

谢谢你,齐尔

BIGAL 发表于 2022-7-5 16:21:45

如果你想让这些lisp一直可用,可以在谷歌上搜索一下启动lisp,或者作为一个开始,将你的lisp添加到ACADDOC的末尾。LSP则不必一直加载它。对于我们来说,我们使用菜单和工具栏根据需要加载LISP,再加上许多已经预加载的内容。

Grrr 发表于 2022-7-5 16:35:17

你好
首要任务是检查内部。lsp文件:“(defun C:something”),其中可以将“something”重命名为所需的任何命令名。
 
第二种方法并不总是有效(因为你可能看不到整体情况)是齐勒·奥2K所描述的。
 
不会一直工作,因为您可能会尝试将接受参数的子函数转换为主函数:

(defun Drawline ( p1 p2 ) ; subfunction that accepts two arguments
; ..
)

 
将上述子功能转换为主功能:

(defun C:Drawline ( p1 p2 ) ; subfunction converted into main
; ..
)

 
然后您应该会得到以下错误(因为它需要两个参数):
 
错误:参数太少
 
将上述子函数转换为main,并将其参数转换为变量:

(defun C:Drawline ( / p1 p2 ) ; subfunction converted into main and that doesn't expecting any arguments
; ..
)

现在函数不需要任何参数,所以理论上你应该没问题,
但根据其书写方式,您很有可能会出现类似以下错误:
 
错误:错误的参数类型:stringp nil
错误:错误的3D点:无
 
因此,第二个优先事项应该是在论坛上发布你正在使用的代码/source-link+author。
页: [1]
查看完整版本: 如何正确运行lisp?