为了将一些lisp文件(以编程方式)添加到我的启动套件中,我尝试修改我在上面找到的代码:
http://thatcadguy.blogspot.com/2010/02/startuplsp-adding-to-autocads-startup.html
所有的功劳都归功于作者,我相信《杰克》。
然而,该代码只适合添加一个文件。
这是原始代码:
-
- (defun addToStartupSuite (filename
- /
- regpath
- revision
- version
- default
- ct
- numstartup
- n)
- (setq regpath "HKEY_CURRENT_USER\\Software\\Autodesk\\AutoCAD"
- revision (vl-registry-read regpath "CurVer")
- version (vl-registry-read
- (setq regpath (strcat regpath "\" revision))
- "CurVer")
- default (vl-registry-read
- (setq regpath (strcat regpath "\" version "[url="file://profiles/"]\\Profiles[/url]")))
- regpath (strcat regpath "\" default "[url="file://dialogs//Appload//Startup"]\\Dialogs\\Appload\\Startup[/url]")
- ct 1
- )
- (if (setq numstartup (vl-registry-read regpath "NumStartup"))
- (progn
- (setq n (1+ (atoi numstartup)))
- (while (and
- (< ct n)
- (/= filename
- (vl-registry-read regpath (strcat (itoa ct) "Startup")))
- )
- (setq ct (1+ ct))
- )
- )
- (setq n 1)
- )
- (if (= n ct)
- (progn
- (vl-registry-write
- regpath
- (strcat (itoa n) "Startup")
- filename)
- (vl-registry-write regpath "NumStartup" (itoa n))
- )
- )
- )
有一个选项可以这样做:
-
- (defun c:test ( / )
- (addToStartupSuite "LispFile1.lsp")
- (addToStartupSuite "LispFile2.lsp")
- (addToStartupSuite "LispFile3.lsp")
- (addToStartupSuite "LispFile4.lsp")
- (addToStartupSuite "LispFile5.lsp")
- (princ)
- )
- (princ)
但我相信这可以做得更短/更有效。
太糟糕了,我找不到/记不起怎么做这种动作。
我的尝试是:
(defun c:测试(/)
(应用“addToStartupSuite”
'(
“lispfile1.lsp”
“lispfile2.lsp”
“lispfile3.lsp”
“lispfile4.lsp”
“lispfile5.lsp”
)
)
(普林斯)
)
(普林斯)
但这显然不起作用。
我读过“foreach”和“mapcar”,因为我认为这是一个解决方案。
但是没有,我再一次输掉了这场战斗。。。。
这方面有什么帮助/想法吗?
提前谢谢。
(注:这里是你的意思“不喜欢代码中的标签…” |