使LISP适应201
我有一个例程,用于通过工具栏按钮/宏在DWG目录中批量运行scr。单击按钮后,用户选择目标目录中的第一个文件,单击“打开”,对话框重新打开,然后用户单击“取消”。此时,宏中指定的脚本将在不包括子文件夹的目录中的所有DWG上运行。我面临的问题是,lsp在2012年和2014年正常运行,但在2018年不会打开和处理任何DWG。任何帮助都将不胜感激。
宏文本
^C^C(LOAD"GSCRIPT") GSCRIPT MS-BUTTON N '_SCRIPT "C:/XXXXXX/XXXXX/AppData/Roaming/Autodesk/AutoCAD 2018/R22.0/enu/Support/MS-BUTTON.scr"
;script file generator for multiple automated editing of drawings
;by Clint Moore
;;
;;
;;Revision:2.0
;;
(defun c:gscript()
(setq templ (getstring "\nName of Template script file :"))
(initget 1 "Yes No")
(setq ans (getkword "\nSave Changes made to drawings Yes/No: "))
(if (= ans "Yes")
(setq ans "No")
(setq ans "Yes")
)
(setq str nil)
(if (setq addscr (findfile (strcat templ ".scr")))
(progn
(setq dwglist nil)
(while (setq dwg (getfiled "Select a Drawing File" "" "dwg" 0))
(progn
(setq cnt (strlen dwg)
str nil
)
(while (and (> cnt 0) (/= str "\\"))
(setq str (substr dwg cnt 1))
(setq cnt (1- cnt))
)
(if (= str "\\")
(setq su 2)
(setq su 1)
)
(setq s3 (substr dwg (+ su cnt)))
(setq dpth (substr dwg 1 (- (strlen dwg) (strlen s3))))
(setq s3 (substr s3 1 (- (strlen s3) 4)))
(setq dwglist (appenddwglist (list (list s3 dpth))))
(command "shell" (strcat "dir /b " dpth "*.dwg >" s3 ".lst" ""))
)
)
(setq wlst "dwgprp.lst"
wname "begin.scr"
fnwl(open wlst "r")
fnw (open wname "w")
)
(foreach dwgnm dwglist
(setq rname (strcat (nth 0 dwgnm) ".lst"))
(setq fnr (open rname "r"))
(while (setq dwg (read-line fnr))
(write-line "Open" fnw)
(write-line (strcat (nth 1 dwgnm) dwg) fnw)
(setq tscr (open addscr "r"))
(while (setq outline (read-line tscr))
(write-line outline fnw)
)
(close tscr)
)
(close fnr)
)
(if (= ans "Yes")
(write-line "exit" fnw)
(write-line "QSAVE" fnw)
)
(close fnw)
)
(prompt "Template script file not found")
)
; (command "script" "begin")
)
可能是SCR的深-深路径未设置“受信任路径”
第二,为什么没有一个像c:\Myprogs这样的目录,它有你所有的Lisp和脚本等,所以更容易找到。
GSCRIPT和MS-BUTTON。SCR位于同一位置。我过去一直使用support文件夹来存放我的所有SCR和LSP,但我可以尝试移动模板脚本文件。
宏代码过去看起来像下面的一行,但由于某些原因,它不起作用。
^C^C(LOAD"GSCRIPT") GSCRIPT MS-BUTTON N SCRIPT BEGIN
返回这个。
命令:(加载“GSCRIPT”)C:GSCRIPT
命令:GSCRIPT
模板脚本文件的名称:MS-BUTTON
保存对图形所做的更改是/否:N shell
OS命令:dir/b X:\Working\Drawings\11-6-2017\*。图纸>A-M-EP-0021-SH-1。lst公司
命令:nil
命令:脚本
输入脚本文件名:开始
老实说,我不完全理解这个lisp是如何工作的,而且原作者已经不在我身边,我无法再寻求他的帮助了。
页:
[1]