凯天 发表于 2010-1-25 20:06:00

lyy 的"加载lsp同时将lsp文件.."出现错误,高手进

<p>;;加载lsp同时将lsp文件所在路径添加至cad搜索支持目录</p><p>;;lyy 支持appload加载、命令行(load "xx")加载和直接拖曳加载</p><p>(vl-load-com)<br/>(defun set_path (/ str n1 n2)<br/>(while (/= 0 (getvar "cmdactive")) (command))<br/>(princ "\n")<br/>(setq str (getvar "lastprompt"))<br/>(if (wcmatch (strcase str) "*(LOAD \"*")<br/>&nbsp;&nbsp;&nbsp; (setq n1 (vl-string-search "(LOAD \"" str)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n2 (vl-string-search "\")" str)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str (substr str (+ n1 8) (- n2 n1 7))<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (setq str<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vl-registry-read "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComDlg32\\OpenSaveMRU\\*"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (substr (vl-registry-read "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComDlg32\\OpenSaveMRU\\*" "MRUList") 1 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>)<br/>(setenv "ACAD" (strcat (getenv "ACAD") ";" (vl-filename-directory str)))<br/>)<br/>(set_path)<br/>(setq set_path nil)<br/>(princ)</p><p></p><p>我用AutoCAD2007的工具-&gt;加载应用程序 后出现“错误: 参数类型错误: stringp nil” 的错误,不能实现它的功能:加载lsp同时将lsp文件所在路径添加至cad搜索支持目录。但直接把上面的lsp文件拖曳到CAD时能正常运行,请高手解答!</p>

ZJKUSO 发表于 2022-7-3 17:41:57

"lastprompt" 和 "_.copyhist" 就是拖拽实现的,也可以用其他命令调用“(set_path)”
页: [1]
查看完整版本: lyy 的"加载lsp同时将lsp文件.."出现错误,高手进