【手动加载】自动加载指定文件目录下的lsp、vlx和fas文件
;自动加载文件夹中的lsp,fas,vlx文件(defun loadlspfile(Folder_path / nn f1)
(if Folder_path
(vl-catch-all-apply
'(lambda ( / nn f1)
(setq nn
(append
(xingle_GetFile Folder_path "*.lsp")
(xingle_GetFile Folder_path "*.fas")
(xingle_GetFile Folder_path "*.vlx")
)
)
(foreach f1 nn
(vl-catch-all-apply 'load (list (strcat Folder_path "\\" f1)))
)
)
)
)
)
;语法(vl-directory-files)
;功能:列出给定目录中的所有文件
;说明
;1)参数 directory 为字符串,指定要收集文件的目录。若未指定该参数或参数为 nil,那么vl-directory-files 使用当前目录。
;2)参数 pattern 为字符串,包含文件名的 DOS 方式。如果未指定该参数或参数为 nil,vl-directory-files 假定为 "*.*"。
;3)directories 为整数型,指定返回的表中是否包含路径名。可以指定下列值之一:
;-1仅列出目录。
;0 列出文件和目录(缺省值)。
;1 仅列出文件。
;返回值:
;文件和路径列表。若没有符合指定方式的文件,则返回 nil。
;;pattern类型为list
(defun xingle_GetFile (Dire pattern / SubFile)
(setq SubFile (vl-remove-if
(function (lambda (x) (member x '(".." "."))))
(vl-directory-files Dire pattern 1)
)
)
)
;(xingle_GetFile "Z:\\CAD图库" "*.lsp")
(defun load_Folder_app (path)
(if (findfile path)
(progn
(loadlspfile path)
(princ (strcat path "\n中的lsp,FAS,VLX文件已加载完成>>>>>>>>"))
)
(princ (strcat "\n错误!!!\n请检查路径" path "是否正确<<<<<<<<"))
)
(princ)
)
;;
(defun c:888();;设置快捷命令,手动加载,快捷命令自行修改下
(load_Folder_app "Z:\\mini\\Autoload\\liuxin")
;(load_Folder_app "Z:\\CAD插件")
;;可以像这样多添加几个路径,注意将windows的目录路径中"\"换成"\\",或这把"\"换成"/"
)
(C:888);;这样写,程序加载这个段代码时,自动激活命令
感谢分享,有这个方便多了。
有点奇怪的是把包含这些代码的LSP放到AP自动加载下,会卡死。
而把这个LSP放到某个插件的自动加载目录下,就能正常加载。 能手动加载,自动加载没看懂呢还是咋回事,不能自动加载,还是我不会啊,能教一下怎样使用吗,谢谢 这也可以啊 功能不错 学习下,多谢楼主分享 感谢无私分项,受用了! 学习下,多谢楼主分享 是个好东西,试用了, 感谢无私分项
页:
[1]
2