Lisp用于在s中打开文件
Hi all,我正在寻找一个可以满足某些要求的lisp
我在一个文件夹和子文件夹中有许多图形,例如:
在D:\Drawing中,有许多格式为xA xxxx、1A-1234、2A-4321、3A-1234的图纸,有时它有一个尾部1A-1234yyy,但yyyy并不重要,1234是图纸编号,它是唯一的编号,所以我想要的是:
1,我需要一个lisp,可以通过将图纸1A-1234输入autocad的弹出窗口并点击enter来打开它。
这意味着此lisp可以从指定的文件夹和子文件夹中搜索图形,然后打开它
2,关于输入方法,正如我在上面所解释的,我们可以键入xA-1234或xA-1234yyy,而不是准确键入1A-1234
非常感谢您 也许一个简单的解决方案最适合你。
加载这个超短Lisp并启动它。在“文件名”框中输入任何字母,然后按“查找文件”按钮。这将带您进入下一个对话框。输入文件名或文件名的一部分(如果愿意)。在“查找范围”中,放入起始文件夹并选中“包含子文件夹”。按下“立即查找”按钮并等待。AutoCAD将使用与输入的名称匹配的dwg文件列表进行回答。选择所需选项,按“OK”。您将返回到第一个对话框–只需按“打开”按钮。
警告:当前图形将关闭而不保存!
(defun c:FindIt()
(setq dwg (getfiled "Fuccaro" " " "dwg" 8))
(command "fileopen" "y" dwg)
) Fuccaro&vdungcom提出了一些缩小搜索速度的建议。
如果未提供驱动器/目录前缀,则(findfile)功能将仅搜索当前AutoCAD搜索路径。
引用帮助getfile支持起始目录
(getfiled "Title" "Directory Path and/or File name" "File Extension" Flag) 像这样的?
感谢BIGAL提出的有用意见。 我之前的帖子发得很匆忙,所以让我在这里补充几句话。
要搜索名为1A-1234yyy的文件,应输入*1234*
列出了与名称匹配的所有文件(当然也在搜索路径中)。
输入要启动的所需文件的编号。
代码可以稍加改进,以便:
-如果只找到一个文件,则会立即打开该文件
-如果找到更多文件,则会列出所有文件(与现在一样),AutoCAD会切换到文本屏幕,等待您的输入
哦,你必须替换程序第二行中的搜索路径。
这有帮助吗? Fuccaro尝试了代码,但foreach l1 lst有点问题,但无论如何还是让德格利斯特发挥了作用。我使用了2*作为我们的DWG,所有DWG都以年份日期开始,例如2018123。
只是一个建议,你可以在lee mac list中打开列表,让dcl选择名称,而不是要求输入项目编号“ListBoxV1-2.lsp”。尽管列表框中有256个项目的最大限制。
(if (not LM:listbox)(Load "listboxV1-2"))
(setq n (nth 0 (lm:listbox "Pick dwg" dwglist 2)))
(command "fileopen" "y" (nth n DWGlist))
谢谢你,fuccaro,BIGAL
我试过你的lisp,在替换路径后,它说“如果无法建立SDI模式,则无法运行FILEOPEN。”
我认为,如果我们可以从下拉列表中选择路径,并且可以随时更改它,这会更好。
非常感谢你 @vudungcom公司
请插入行
(setvar“sdi”0)
就在
(命令“fileopen。。。。。
大约6小时后,我会写更长的时间。干杯
BIGAL,我在4台计算机上试用了该代码,foreach循环一点问题都没有。
Vudungcom,你尝试过我提供的解决方案吗?如果是这样,它对你有用吗?
页:
[1]
2