明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2018|回复: 9

[源码] 一句代码加载文件夹下所有的lsp

[复制链接]
发表于 2020-7-11 22:53:01 | 显示全部楼层 |阅读模式
本帖最后由 muwind 于 2020-7-11 22:55 编辑

一句代码加载文件夹下除本身外的所有vlx,自家偷懒用的,如果文件名刚好是命令名,可以用autoload,不过代码更长一点
(foreach n (vl-remove-if '(lambda(a)(= a "fycad.lsp"))(vl-directory-files"d:\\FYCAD""*.lsp"))(load n "坏蛋"))

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-7-12 00:02:59 | 显示全部楼层
vl-directory-files返回值不带路径,所以如果该目录不在搜索目录下将加载失败,另外剔除本身vl-remove就行了,vl-remove-if多此一举

(foreach n (vl-remove "fycad.lsp"(vl-directory-files"d:\\FYCAD""*.lsp"))(load (strcat "d:\\FYCAD\\" n) "坏蛋"))
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-7-12 11:50:46 | 显示全部楼层
本帖最后由 muwind 于 2020-7-12 12:15 编辑
tryhi 发表于 2020-7-12 00:02
vl-directory-files返回值不带路径,所以如果该目录不在搜索目录下将加载失败,另外剔除本身vl-remove就行 ...

嗯 对哦 ,多谢指点,确实有您说的说的问题,我这有前头增加支持支持路径的函数, 所有忘了这茬了。
用vl-remove-if主要当时是用 这个 排除了几个文件fy*开头的文件不加载 ,也没花什么时间取研究过。
vl函数我用得少,基本用的纯lisp干的(主要还是考虑用R14的那些前辈),最近才开始用vl函数改写以前的一些代码
另外 加载我用的progn,可以看到哪些加载成功了,主要是用了vscode后编码有时候被改成UTF-8,就出现各种问题lsp加载不了
(progn (load n "bad") (princ (strcat "\n" n "成功加载"))



发表于 2020-7-12 14:31:43 | 显示全部楼层
muwind 发表于 2020-7-12 11:50
嗯 对哦 ,多谢指点,确实有您说的说的问题,我这有前头增加支持支持路径的函数, 所有忘了这茬了。
用v ...

能不能来一个完整版的
发表于 2020-7-12 14:31:57 | 显示全部楼层
muwind 发表于 2020-7-12 11:50
嗯 对哦 ,多谢指点,确实有您说的说的问题,我这有前头增加支持支持路径的函数, 所有忘了这茬了。
用v ...

能不能来一个完整版的
 楼主| 发表于 2020-7-12 23:44:12 | 显示全部楼层
改成下面的了,这样即可看到哪些加载失败,即使加载失败也会继续执行后面的加载了
(foreach n (vl-remove "fycad.lsp" (vl-directory-files "d:\\FYCAD" "*.lsp"))
(if (vl-catch-all-error-p (vl-catch-all-apply  'load   (list (strcat "d:\\FYCAD\\" n)) ))
    (princ (strcat "\n" n "加载失败"))
    (princ (strcat "\n" n "加载成功"))
);end if
);end foreach
发表于 2020-7-13 10:36:32 | 显示全部楼层
muwind 发表于 2020-7-12 23:44
改成下面的了,这样即可看到哪些加载失败,即使加载失败也会继续执行后面的加载了
(foreach n (vl-remove  ...

兄弟代码能不能加注释,然后完整的代码来一个啊
发表于 2020-10-30 10:59:14 | 显示全部楼层
大神:感觉这个程序像臨時加載所有程序,新建一个窗口就没有用了,又需要重新加载一次。可以像启动组一样吗,永久的加进来,除非我手动删除
发表于 2020-11-2 06:46:14 来自手机 | 显示全部楼层
这个省事了,,多谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 11:36 , Processed in 0.181315 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表