samifox 发表于 2022-7-5 16:12:39

加载lisp(如果尚未加载)

你好
 
我有很多口吃,但我想按需加载,
所以在每个按钮中,我都会有一个小的宏脚本
 

(defun isLoaded)
(if(not (loaded script))
(load lisp)
)
)

 
需要语法方面的帮助

rlx 发表于 2022-7-5 16:20:19

http://www.cadtutor.net/forum/showthread.php?83897-组合Lisp例程

samifox 发表于 2022-7-5 16:26:44

引用自您发布的psot
 

(defun c:yc () (if (not c:ycopy) (load "YCOPY"))(c:ycopy))

如果c:copy NOT返回“未知命令”而不是加载它,它是如何工作的?

BIGAL 发表于 2022-7-5 16:33:48

查找帮助“不是”它只是不存在,所以像一个正常的,如果做下一个声明或其他
 

(defun c:yc () (if (not c:ycopy) (load "YCOPY")(princ "\nlisp Loaded"))(c:ycopy))))

 
调用库defun需要在代码中间加载。

(if (not AH:getval2) (load "getvals"))
(ah:getval2 "Enter start tab number" 6 4 "Enter end tab number" 6 4)

samifox 发表于 2022-7-5 16:37:03

 
当键入不存在的命令时,会打印提示“未知命令”,那么这是否被视为nill?

rlx 发表于 2022-7-5 16:41:32

在我的工具栏中,我使用
 
 
ID_VT          ^C^C(IF (NOT c:vt)(LOAD"VT.LSP") );VT
 
 
否则,您也可以查看atoms族,看看您的例程是否属于当前族(=已加载)
 
 
gr.Rlx

Tharwat 发表于 2022-7-5 16:46:10

此外,findfile函数必须与load函数并排,以避免在未找到lisp文件时出现错误消息和失败。

samifox 发表于 2022-7-5 16:56:07

 
你能举个例子吗?

BIGAL 发表于 2022-7-5 17:01:18

Tharwat提出了一个使用findfile的好主意,但如果要动态加载,最好花几分钟时间设置代码保存位置的目录路径,并具有一些一致性或标准,而不是将代码随机保存在硬盘上的任何位置。您还可以使用完整路径对负载进行硬编码。
 
在一个商业产品上,我们有一个安装例程,所以我们知道文件保存在用户硬盘上的位置。您可以对lisp复制文件执行相同的操作,并设置支持路径。

CadJunky 发表于 2022-7-5 17:03:09

我只是使用以下内容并将其放入我的Acaddoc中。lsp文件。
 
(autoload "BatchPurge" '("BatchPurge"))
(autoload "GetX" '("GetX"))
(autoload "RTB" '("RTB"))
页: [1] 2
查看完整版本: 加载lisp(如果尚未加载)