在支持路径的子文件夹中调用例程
我正在尝试创建一个宏来运行一个lisp程序,这个程序我已经放了几个文件夹了。(load "Support Folder\\2\\3\\4\\Z2S - Zoom to Structure.LSP")(C:z2s)
我知道如果我添加完整的地址,我可以让它工作,但不知道它是否会像上面那样工作。
谢谢你的帮助。
**** Hidden Message ***** 据我所知,如果文件不驻留在支持路径中或提供文件的完整路径,则不可能。 还行。这回答了这个问题。谢谢你的信息李。这只是一个想法,看看它是否会。 这表明findfile函数可以在搜索路径的子文件夹中找到文件。在BricsCAD中,这也适用于加载函数。 有趣。。。我必须尝试一下。谢谢 我测试了它,它做了我需要它做的事情
(findfile "_Routine_Library\\Z2S - Zoom to Structure\\Z2S - Zoom to Structure.LSP")(load "Z2S - Zoom to Structure")(C:z2s)
我加载了主支持路径,然后在该路径下有带有例程的文件夹。谢谢你的帮助
我的下一步是尝试通过CUI或工具选项板按钮激活它,但无论哪种情况,我都会得到以下结果:
Command:
(findfile "_Routine_Library
不知道为什么会这样
如果复制并粘贴到命令提示;它可以工作。
(findfile "_Routine_Library\\Z2S - Zoom to Structure\\Z2S - Zoom to Structure.LSP")(load "Z2S - Zoom to Structure")(C:z2s)
我的建议 - 在LISP中编写自己的嵌套搜索函数。 这样,如果您不希望文件位置发生巨大变化,则还可以包括搜索缓存(在找到相同的内容后,一遍又一遍地搜索相同的内容是没有意义的)。 @MSTG007:
这段代码让我感到惊讶:
要么这个工作:
(load "_Routine_Library\\Z2S - Zoom to Structure\\Z2S - Zoom to Structure.LSP")(C:z2s)
要么你必须使用这个:
(load (findfile "_Routine_Library\\Z2S - Zoom to Structure\\Z2S - Zoom to Structure.LSP"))(C:z2s)
我不确定为什么从CUI调用它失败。尝试切换到正斜杠。 我尝试了正斜杠。没有这样的运气。
Command: (load (findfile "_Routine_Library/Z2S - Zoom to Structure/Z2S - Zoom to Structure.LSP"))(C:z2s) ; error: bad argument type: stringp nil
如果文件夹A在搜索路径文件夹中,所有这些都在BricsCAD中起作用:
命令栏条目:
(findfile "A\\B\\Name with spaces.lsp")
(findfile "A/B/Name with spaces.lsp")
(load "A\\B\\Name with spaces.lsp")
(load "A/B/Name with spaces.lsp")
崔宏的代码8]
我不知道为什么这在AutoCAD中不起作用。
页:
[1]
2