明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2930|回复: 7

[已解答] 请问如何在加载lisp时读取所加载lisp的存放路径

[复制链接]
发表于 2015-8-11 13:11 | 显示全部楼层 |阅读模式
本帖最后由 kele99kele 于 2015-8-11 13:16 编辑

如题
比如我要做的是test.lsp
在将test.lisp采用拖入窗口或append方式加载的时候,
需要做一个support路径,将test.lsp所在目录作为cad
的搜索支持目录,那么我在test.lisp里面采用什么函
数能够将变量x赋值为test.lsp的所在目录呢?将x插
入搜索支持目录的方法见下面代码,我现在的目的是将
“D:\\nice”作为变量赋值给“x”达到能够随意拷贝
不受存放位置限制的目的
  1. (defun nice_makpath ()
  2.   (setq oldacad (getenv "ACAD")) (princ)
  3.   (if (wcmatch oldacad "*D:\\nice\\support*") ()
  4.     (progn
  5.       (vl-load-com)
  6.       (vl-mkdir "D:\\nice")
  7.       (vl-mkdir "D:\\nice\\support")
  8.       (setq path "D:\\nice;D:\\nice\\support")
  9.       (setenv "ACAD" (strcat oldacad ";" path))
  10.     )   
  11.   )
  12.   (princ)
  13. )
 楼主| 发表于 2015-8-11 20:03 来自手机 | 显示全部楼层
没有大神感兴趣么来自: Android客户端
发表于 2015-8-11 21:35 | 显示全部楼层
  1.   (setq lisploadpath1 (vl-registry-read
  2. (strcat "HKEY_CURRENT_USER\"
  3.                 (vlax-product-key)
  4.                 "\\Profiles\"
  5.                 (vla-get-activeprofile (vla-get-profiles (vla-get-preferences (vlax-get-acad-object))))
  6.                 "\\Dialogs\\Appload"
  7.         )
  8.         "MainDialog"
  9.       ))                    
  10. ;取得最后lisp程序加载地址

点评

是通过读取注册表中APPload命令的加载路径实现的,再探讨下能不能通过函数读取cad加载程序表的方式来实现,这样只要起个有特点的名字,通过关键字查找可以得到文件路径。  发表于 2015-8-11 21:46
谢谢指教,但是你发的这个只是针对appload方式加载的程序有效,采用拖拽方式加载的lisp就不行了,拖拽方式是内存加载,这个有没有办法呢?  发表于 2015-8-11 21:44
 楼主| 发表于 2015-8-11 21:49 | 显示全部楼层
楚留香 发表于 2015-8-11 21:35

这个程序我已经该写过了,但是感觉局限有点大,再讨论下通过内存加载的方式加载的lisp或vlx的路径获得
  1. (defun c:tt ()
  2.   (setq
  3.           nice_path (vl-registry-read
  4.                         (strcat "HKEY_CURRENT_USER\"
  5.                                 (vlax-product-key)
  6.                                 "\\Profiles\"
  7.                                 (vla-get-activeprofile (vla-get-profiles (vla-get-preferences (vlax-get-acad-object))))
  8.                                 "\\Dialogs\\Appload"
  9.                         )
  10.                         "MainDialog"
  11.     )
  12.                 nice_path (strcat nice_path ";" nice_path "nice\\support")
  13.         )
  14. )
发表于 2015-8-11 21:56 | 显示全部楼层
内存方式加载暂时还没有好的办法;遍历注册表或许可以,但是没有深入研究过!

点评

恩,谢谢啦,我再到网上查查有没有办法,很多说法是lisp办不到  发表于 2015-8-11 22:00
发表于 2015-8-12 09:50 | 显示全部楼层
这个好,谢谢!
发表于 2015-8-12 14:46 | 显示全部楼层
同求相关程序,望大神出手
发表于 2021-4-5 21:39 | 显示全部楼层
源文件 就不错了,我就满足了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-6 23:05 , Processed in 0.321997 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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