请问如何在加载lisp时读取所加载lisp的存放路径
本帖最后由 kele99kele 于 2015-8-11 13:16 编辑如题
比如我要做的是test.lsp
在将test.lisp采用拖入窗口或append方式加载的时候,
需要做一个support路径,将test.lsp所在目录作为cad
的搜索支持目录,那么我在test.lisp里面采用什么函
数能够将变量x赋值为test.lsp的所在目录呢?将x插
入搜索支持目录的方法见下面代码,我现在的目的是将
“D:\\nice”作为变量赋值给“x”达到能够随意拷贝
不受存放位置限制的目的(defun nice_makpath ()
(setq oldacad (getenv "ACAD")) (princ)
(if (wcmatch oldacad "*D:\\nice\\support*") ()
(progn
(vl-load-com)
(vl-mkdir "D:\\nice")
(vl-mkdir "D:\\nice\\support")
(setq path "D:\\nice;D:\\nice\\support")
(setenv "ACAD" (strcat oldacad ";" path))
)
)
(princ)
) 没有大神感兴趣么 (setq lisploadpath1 (vl-registry-read
(strcat "HKEY_CURRENT_USER\\"
(vlax-product-key)
"\\Profiles\\"
(vla-get-activeprofile (vla-get-profiles (vla-get-preferences (vlax-get-acad-object))))
"\\Dialogs\\Appload"
)
"MainDialog"
))
;取得最后lisp程序加载地址 楚留香 发表于 2015-8-11 21:35 static/image/common/back.gif
这个程序我已经该写过了,但是感觉局限有点大,再讨论下通过内存加载的方式加载的lisp或vlx的路径获得(defun c:tt ()
(setq
nice_path (vl-registry-read
(strcat "HKEY_CURRENT_USER\\"
(vlax-product-key)
"\\Profiles\\"
(vla-get-activeprofile (vla-get-profiles (vla-get-preferences (vlax-get-acad-object))))
"\\Dialogs\\Appload"
)
"MainDialog"
)
nice_path (strcat nice_path ";" nice_path "nice\\support")
)
) 内存方式加载暂时还没有好的办法;遍历注册表或许可以,但是没有深入研究过! 这个好,谢谢! 同求相关程序,望大神出手 源文件 就不错了,我就满足了
页:
[1]