Lisp例程加载问题u
我对Lisp程序完全一无所知。不幸的是,我们办公室里那个让事情继续发展的家伙跑掉了,加入了马戏团,带走了他所有的玩具,我们中的一些人正在尝试升级,同时仍在维护我们的宏。如果您能提供任何帮助,我们将不胜感激。之前在2007年Acad2007中,他让我们使用复制此Acaddoc。lsp文件到我们所有的支持目录(Acad、Land Desktop、Civil3d)。我们还将所有lisp例程复制到桌面/笔记本电脑。当时的想法是,网络驱动器将始终是最新的和更新的,但如果我们远离网络,我们仍然可以从我们的电台运行东西。
不幸的是,在升级到Acad2009和Acad2011 Civil3D后,我一直无法使其工作,我不知道我做错了什么。
这是阿卡多克。我们使用的lsp:
;;; ACADDOC.LSP Created to Load Earth Tech Routines
;;;
(setq S::STARTUP (append S::STARTUP AecCStartup))
(princ "Starting Load")
(princ "Network Check...");
(if (findfile "L:/library/cadmasters/acadsta/acad/lisp/network.up")
(progn
(princ "OK.\n")
(defun ETload (parm / full_filename)
(setq full_filename (strcat "L:/library/cadmasters/ACADSTA/ACAD/LISP/" parm))
(if (findfile (strcat full_filename ".lsp"))
(load full_filename)
(princ (strcat "AutoLISP File (" full_filename ") Not Found\n"))
);End if
(princ)
);End def
);Pend
(progn
(princ "\nServer DOWN...Resetting LISP To C: Drive...")
(getstring "Press <RETURN> To Acknowledge Problem: ")
(defun whload (parm / full_filename)
(setq full_filename (strcat "C:/ACAD/LISP/" parm))
(if (findfile (strcat full_filename ".lsp"))
(load full_filename)
(princ (strcat "AutoLISP File (" full_filename ") Not Found\n"))
);End if
(princ)
);End def
);Pend
);End if
;--Load Earth Tech Standard LISP Routines
(ETload "Earth-Tech")
;--Set All Default Variables
(setvar "UCSICON" 0)
(setvar "CMDECHO" 0)
(princ)
我知道它正在寻找Earth-Tech.lsp。它在C:/Acad/Lisp处加载。如果需要的话,我可以把它打印出来。
下面是我得到的错误:
; error: no function definition: ETLOAD
AutoCAD menu utilities loaded.Starting LoadNetwork Check...
Server DOWN...Resetting LISP To C: Drive...Press <RETURN> To Acknowledge
Problem: *Cancel*
; error: Function cancelled
宏无法工作。我怀疑我在错误的位置归档了一些东西,但我不知道是什么或在哪里。
坦率地说,我真的不需要在网络上查找例程,我很乐意只在我的笔记本电脑上运行它,所以如果你想建议取消网络检查,以及如何摆脱它,这对我来说是可行的。我们中的大多数人现在都在笔记本电脑上,可以在远离网络的情况下工作,所以现在这并不那么重要。
我很乐意接受任何建议,并且可以尝试回答任何关于文件位置或其内容的问题。
非常感谢。 你好,GWelch,
如果您只想从笔记本电脑上的已知位置加载LISP文件,这样就足够了:
(load "C:\\YourFolder\\YourLISP.lsp" "Failed to Load YourLISP") 这些也可能有帮助:
http://lee-mac.com/autoloading.html
http://lee-mac.com/autoloader.html
http://lee-mac.com/acaddoccreator.html (ETload“Earth Tech”)
据我所知,那句话没有任何意义。有人告诉我,如果我错了。但据我所知,错误是告诉您要“ETLoad”一些东西,但这不是一个有效的LISP命令。
尝试将该行更改为(加载“Earth Tech”)
重新加载,重新启动AC,然后重试。 格韦尔奇,
显然,此位置中没有名为“network.up”的文件:“L:/library/cadmasters/acadsta/acad/lisp/”。它指示程序不要定义“ETLOAD”函数。
我认为线索是找到提到的文件并将其放在相应的文件夹中。
结果,ETLoad在代码中以条件方式定义。问题是由于缺少以下积极条件造成的:(if(findfile“L:/library/cadmasters/acadsta/acad/lisp/network.up”)。。。 一旦确定了所需的LSP文件,请使用APPLOAD和Startup Suite为每个AutoCAD会话自动加载它们。 啊。。。。我明白你在说什么。现在这里有一个问题,在错误中,GWelch似乎没有连接到服务器。它试图在C盘上寻找lsp。。。。
我看你是对的,没有找到合适的文件来加载ETload命令。。。。但可能是因为没有连接到服务器?
@格沃奇:我同意你需要找到那个文件。。。我只是想理解其余的代码。
众所周知,StartupSuite在某些版本中存在漏洞——使用ACADDOC要可靠得多。lsp在启动时加载程序。
结果,以下是代码流程的简短说明:
通过将“whload”函数重命名为“ETload”,可以解决该问题。
我试试看。
如果我的无俱乐部感现在还没有完全显现出来,那么如何重新载入《阿卡多克》。lsp?只有重启Acad才能解决这个问题吗?
页:
[1]
2