找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5389|回复: 24

[求助] [求助]:如何让lsp增加自己所在的文件夹到搜索路径中去?

[复制链接]

已领礼包: 6个

财富等级: 恭喜发财

发表于 2006-4-30 19:40:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
比如:C:\list\a.lsp
现在C:\list 不在搜索路径中
如何实现:
用ap加载C:\list\a.lsp后将C:\list增加到搜索路径中去。
多谢了!

本帖被以下淘专辑推荐:

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2007-4-12 23:50:03 | 显示全部楼层
(defun addSupportPath (dir / tmp c)
  (setq c (getenv "ACAD"))
  (setq tmp (strcat c dir))
  (setenv "ACAD" tmp)
  (princ)
)
(defun c:add ()
  (addSupportPath ";d:\\myFolder")
)

;;;
;;;功能
;;;添加文件夹到AutoCAD支持搜索路径中的指定位置
这样是最简单的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-4-30 20:00:48 | 显示全部楼层
仅靠 Lisp 是做不到了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-30 20:04:51 | 显示全部楼层
1.你可以研究一下CAD的配置文件,导出后可以用记事本打开,看看一下路径是存在注册表的什么位置.通过这种方法修改,可以在下次CAD打开的时候起作用,本次的就不行了
(这方法也可能行不通,因为每次CAD关闭的时候都会对注册表重新写一下,不知道对不对)

http://www.xdcad.net/forum/showthread.php?s=&threadid=548017
这篇文章是关于图形搜索的,其中有涉及到目录中搜索的代码,可能会有用的.

2.找到对应的函数,留给楼下的人来解决了.


PS:祝大家五一节快乐.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

 楼主| 发表于 2006-4-30 22:31:01 | 显示全部楼层
谢谢上楼哦!!
我看用注册表的方法还是可行的!~
关键是如何取的lsp程序当前的位置了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-30 22:36:12 | 显示全部楼层
初步研究结果:
还不起作用就是了

  1. (progn
  2. (princ "\n本Lisp加载的目录是:")
  3. (princ(vl-registry-read
  4.   "HKEY_CURRENT_USER\\Software\\Autodesk\\AutoCAD\\R15.0\\ACAD-1:804\\Profiles\\tssd2002s\\Dialogs\\ProfileExportFileDialog"
  5. "InitialDirectory"
  6.   ))

  7. (setq recentdir (vl-registry-read
  8.     (strcat
  9.       "HKEY_CURRENT_USER\\SOFTWARE\\Autodesk\\AutoCAD\\R15.0\"
  10.       (car
  11.         (vl-registry-descendents
  12.           "HKEY_LOCAL_MACHINE\\SOFTWARE\\Autodesk\\AutoCAD\\R15.0\"
  13.         )
  14.       )
  15.       "\\Profiles\" (getvar "CPROFILE") "\\Dialogs\\ProfileExportFileDialog"
  16.     )
  17.     "InitialDirectory"
  18.   ))

  19. (setq oldsupportdir (vl-registry-read
  20.     (strcat
  21.       "HKEY_CURRENT_USER\\SOFTWARE\\Autodesk\\AutoCAD\\R15.0\"
  22.       (car
  23.         (vl-registry-descendents
  24.           "HKEY_LOCAL_MACHINE\\SOFTWARE\\Autodesk\\AutoCAD\\R15.0\"
  25.         )
  26.       )
  27.       "\\Profiles\" (getvar "CPROFILE") "\\General"
  28.     )
  29.     "ACAD"
  30.   ))
  31. (setq newsupportdir (strcat oldsupportdir recentdir ";"))

  32. (vl-registry-write
  33.     (strcat
  34.       "HKEY_CURRENT_USER\\SOFTWARE\\Autodesk\\AutoCAD\\R15.0\"
  35.       (car
  36.         (vl-registry-descendents
  37.           "HKEY_LOCAL_MACHINE\\SOFTWARE\\Autodesk\\AutoCAD\\R15.0\"
  38.         )
  39.       )
  40.       "\\Profiles\" (getvar "CPROFILE") "\\General"
  41.     )
  42.     "ACAD"
  43.     newsupportdir
  44.   )
  45. )

评分

参与人数 1D豆 +2 收起 理由
XDSoft + 2 技术引导讨论和指点奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-30 22:54:12 | 显示全部楼层
  1. [FONT=courier new](defun xyp-Path-Add (path mode)
  2.   (setenv "ACAD"
  3.           (cond        ((or (= mode "R") (not mode))
  4.                  (strcat (getenv "ACAD") path ";")
  5.                 )
  6.                 (T (strcat path ";" (getenv "ACAD")))
  7.           )
  8.   )
  9. )[/FONT]

(xyp-Path-Add "C:\\list" "L")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

wangjian8132705 该用户已被删除
发表于 2006-4-30 23:02:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-30 23:18:48 | 显示全部楼层
现在的问题是不能获得加载lisp时的目录.
如果我 在导出配置文件的时候,注册表里面就会有我最近一次加载lisp所在的目录.
如果没有导出则不行,所以猜想这个变量应该是在环境变量里面,等到导出配置的时候才写到注册表里面.

以上两位是从ACAD这个环境变量里获得support目录.确实给我启发.
参考:
http://www.afralisp.net/lisp/enviro.htm
Environment Variables Listing.
Compiled and kindly donated by Stig Madsen.

Remember that environment variables are dependent on .. well, the environment, so each may or may not apply to a certain setup.
Some are almost described, some are definitely not. The first are OS dependent, the rest are AutoCAD dependent.



--------------------------------------------------------------------------------

System related

(getenv "Path") ;string System search paths

(getenv "COMSPEC") ;string Cmd.exe path

(getenv "UserName");string User logon name

(getenv "Temp") ;string Temp path

(getenv "TMP") ;string Temp path

(getenv "ComputerName");string Computer name

(getenv "Windir") ;string Windows path

(getenv "OS") ;string Operating system

(getenv "UserProfile");string Current user profile path

(getenv "Pathext") ;string Exec extensions

(getenv "SystemDrive");string System drive

(getenv "SystemRoot");string System root path

(getenv "MaxArray");integer


--------------------------------------------------------------------------------

General

(getenv "ACAD") ;string Support search paths

(getenv "ANSIHatch");string Pattern file for ANSI setup 1)

(getenv "ANSILinetype");string Linetype file for ANSI setup 1)

(getenv "ISOHatch");string Pattern file for ISO setup 1)

(getenv "ISOLinetype");string Linetype file for ISO setup 1)

(getenv "StartUpType");string Current default for StartUp dialog

(getenv "acet-MenuLoad");string Loading of Express Tools menu

(getenv "Measureinit");string MEASUREINIT

(getenv "InsertUnitsDefSource");integer INSUNITSDEFSOURCE

(getenv "InsertUnitsDefTarget");integer INSUNITSDEFTARGET

(getenv "acet-Enable");string

(getenv "LastTemplate");string Last DWT used

(getenv "AcetRText:type");string Current default for RTEXT "Diesel"

(getenv "Pickstyle");integer

(getenv "Coords") ;integer

(getenv "ShowProxyDialog");integer

(getenv "Osmode") ;integer

(getenv "EdgeMode");integer

(getenv "PAPERUPDATE");integer

(getenv "ACADPLCMD");string Plotter command string

(getenv "ImageHighlight");integer

(getenv "Attdia") ;integer

(getenv "Attreq") ;integer

(getenv "Delobj") ;integer

(getenv "Dragmode");integer

(getenv "UseMRUConfig");integer

(getenv "PLSPOOLALERT");integer

(getenv "PLOTLEGACY");integer

(getenv "PSTYLEPOLICY");integer

(getenv "OLEQUALITY");integer

(getenv "Anyport") ;integer

(getenv "Validation Policy");integer

(getenv "Validation Strategy");integer

(getenv "CommandDialogs");integer CMDDIA

(getenv "TempDirectory");string Temp dir

(getenv "PlotSpoolerDirectory");string Spooler dir

(getenv "DefaultLoginName");string Default login

(getenv "MenuFile");string Default menu path

(getenv "NetLocation");string Default URL

(getenv "ACADDRV") ;string Driver path

(getenv "ACADHELP");string Help path

(getenv "PrinterConfigDir");string Plotter path

(getenv "PrinterStyleSheetDir");string Plot styles path

(getenv "PrinterDescDir");string Plotter driver path

(getenv "NewStyleSheet");string Default .stb/.ctb file

(getenv "DefaultFormatForSave");integer Default saveas

(getenv "DefaultConfig");string Default pc3

(getenv "LastModifiedConfig");string Last pc3

(getenv "MRUConfig");string pc3?

(getenv "ACADLOGFILE");string Logfile

(getenv "MaxDwg") ;integer

(getenv "AVEMAPS") ;string Texture files path

(getenv "TemplatePath");string Templates path

(getenv "DatabaseWorkSpacePath");string Data Links path

(getenv "DefaultPlotStyle");string e.g. "ByLayer"

(getenv "DefaultLayerZeroPlotStyle");string e.g."Normal"

(getenv "LineWeightUnits");integer

(getenv "LWDEFAULT");integer Default lineweight

(getenv "CustomColors");integer

(getenv "Blipmode");integer

(getenv "ToolTips");string

1) used by MEASUREINIT and MEASUREMENT sysvars


--------------------------------------------------------------------------------

Editor Configuration

(getenv "SDF_AttributeExtractTemplateFile");string ??

(getenv "AutoSnapPolarAng");string POLARANG

(getenv "AutoSnapPolarDistance");string POLARDIST

(getenv "AutoSnapPolarAddAng");string POLARADDANG

(getenv "AutoSnapControl");integer AUTOSNAP

(getenv "AutoSnapTrackPath");integer TRACKPATH

(getenv "PickBox") ;integer PICKBOX

(getenv "AutoSnapSize");integer

(getenv "PickFirst");integer PICKFIRST

(getenv "PickAuto");integer PICKAUTO

(getenv "MenuOptionFlags");integer MENUCTL

(getenv "FontMappingFile");string

(getenv "LogFilePath");string

(getenv "PSOUT_PrologFileName");string

(getenv "MainDictionary");string

(getenv "CustomDictionary");string

(getenv "MTextEditor");string

(getenv "XrefLoadPath");string

(getenv "SaveFilePath");string

(getenv "AcadLspAsDoc");string


--------------------------------------------------------------------------------

Drawing Window

(getenv "Background");integer Background color

(getenv "Layout background");integer PS Background color

(getenv "XhairPickboxEtc");integer Crosshair color

(getenv "LayoutXhairPickboxEtc");integer PS Crosshair color

(getenv "Autotracking vector");integer Autotracking vector color

(getenv "MonoVectors");integer

(getenv "FontFace");string Screen Menu

(getenv "FontHeight");integer

(getenv "FontWeight");integer

(getenv "FontItalic");integer

(getenv "FontPitchAndFamily");integer

(getenv "CursorSize");integer

(getenv "HideWarningDialogs");integer:00000008 <- hit

(getenv "SDIMode") ;integer:00000000 <- hit


--------------------------------------------------------------------------------

Command Line Windows

(getenv "CmdLine.ForeColor");integer

(getenv "CmdLine.BackColor");integer

(getenv "TextWindow.ForeColor");integert

(getenv "TextWindow.BackColor");integer

(getenv "CmdLine.FontFace");string

(getenv "CmdLine.FontHeight");integer

(getenv "CmdLine.FontWeight");integer

(getenv "CmdLine.FontItalic");integer

(getenv "CmdLine.FontPitchAndFamily");integer

(getenv "TextWindow.FontFace");string

(getenv "TextWindow.FontHeight");integer

(getenv "TextWindow.FontWeight");integer

(getenv "TextWindow.FontItalic");integer

(getenv "TextWindow.FontPitchAndFamily");integer
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

 楼主| 发表于 2006-5-1 00:24:32 | 显示全部楼层
诚如wujimmy  所说:
现在的问题是不能获得加载lisp时的目录.
先一定要找到c:\list
再后才能加到ACAD搜索中去的啊!!
看看这个图吧!这里的路径是存在那里的呢?注册表吗?好像找不到!

[iframe h=162 w=425]http://photoimg63.qq.com/cgi-bin/load_pic?verify=e%2BVmX37kXzr3G%2B%2FERgMK4Q%3D%3D[/iframe]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-1 08:16:13 | 显示全部楼层
不行。
你把一个lsp从资源管理器拉到cad界面加载看看(该lsp不在搜索目录下)。
用环境变量,系统变量,路径搜索能找到么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-1 11:28:15 | 显示全部楼层
找到了,最后一次加载的lisp的文件路径就是:

  1. (progn
  2. (defun addSupportPath (dir pos / tmp c)
  3. (setqtmp ""
  4. c -1
  5. )
  6. (if (not pos)
  7. (setq tmp (strcat (getenv "ACAD") ";" dir))
  8. (mapcar '(lambda (x)
  9. (setq tmp (if (= (setq c (1+ c)) pos)
  10. (strcat tmp ";" dir ";" x)
  11. (strcat tmp ";" x)
  12. )
  13. )
  14. )
  15. (parse (getenv "ACAD") ";")
  16. )
  17. )
  18. (setenv "ACAD" tmp)
  19. (princ)
  20. )

  21. (princ "\n本Lisp加载的目录是:")
  22. (princ
  23.    (vl-registry-read
  24.      "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComDlg32\\OpenSaveMRU\\lsp"
  25.      (substr(vl-registry-read
  26.        "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComDlg32\\OpenSaveMRU\\lsp"
  27.        "MRUList"
  28.      ) 1 1)
  29.    )
  30. )

  31. (setq recentdir (vl-registry-read
  32.      "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComDlg32\\OpenSaveMRU\\lsp"
  33.      (substr(vl-registry-read
  34.        "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComDlg32\\OpenSaveMRU\\lsp"
  35.        "MRUList"
  36.      ) 1 1)
  37.    ))
  38. (setq mid 0)
  39. (while        mid
  40.    (setq mid (vl-string-search "\" recentdir (1+ mid)))
  41.    (if mid
  42.      (setq findlast mid)
  43.    )
  44. )
  45. (setq recentdir (substr recentdir 1 findlast))

  46. (addSupportPath   recentdir  nil )

  47. )



论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-1 12:29:16 | 显示全部楼层
最好把ap要加载的目录放在默认位置(默认是我的文档),这样每次就不用查找了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-2 21:27:57 | 显示全部楼层
(load "x\\:lisp文件")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-5-2 21:32:34 | 显示全部楼层
dos_lisplist
Returns a list of loaded AutoLISP/Visual LISP files.


--------------------------------------------------------------------------------

Syntax
(dos_lisplist [T])

Parameters
T

If specified, fully qualified paths are returned. Otherwise, just the filenames are returned.

Returns
A list of string identifying the loaded LISP files if successful.

nil on error.

Example
Command: (dos_lisplist)

("acetutil.fas" "acetauto.LSP" "acettest.fas" "dwfout.lsp" "acad2000.FAS" "acad2000doc.FAS" "acad.mnl" "acetmain.mnl")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-4 22:14:28 | 显示全部楼层
11楼同样不能解决我在10楼提出的问题
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-5-6 06:40 , Processed in 0.364164 second(s), 65 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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