乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 58|回复: 2

[编程交流] 使LISP适应201

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 15:50:46 | 显示全部楼层 |阅读模式
我有一个例程,用于通过工具栏按钮/宏在DWG目录中批量运行scr。单击按钮后,用户选择目标目录中的第一个文件,单击“打开”,对话框重新打开,然后用户单击“取消”。此时,宏中指定的脚本将在不包括子文件夹的目录中的所有DWG上运行。我面临的问题是,lsp在2012年和2014年正常运行,但在2018年不会打开和处理任何DWG。
 
任何帮助都将不胜感激。
 
宏文本
  1. ^C^C(LOAD"GSCRIPT") GSCRIPT MS-BUTTON N '_SCRIPT "C:/XXXXXX/XXXXX/AppData/Roaming/Autodesk/AutoCAD 2018/R22.0/enu/Support/MS-BUTTON.scr"

 
  1. ;script file generator for multiple automated editing of drawings
  2. ;by Clint Moore
  3. ;;
  4. ;;
  5. ;;Revision:2.0
  6. ;;
  7. (defun c:gscript()
  8. (setq templ (getstring "\nName of Template script file :"))
  9. (initget 1 "Yes No")
  10. (setq ans (getkword "\nSave Changes made to drawings Yes/No: "))
  11. (if (= ans "Yes")
  12.    (setq ans "No")
  13.    (setq ans "Yes")
  14. )
  15. (setq str nil)
  16. (if (setq addscr (findfile (strcat templ ".scr")))
  17. (progn
  18.   (setq dwglist nil)
  19.   (while (setq dwg (getfiled "Select a Drawing File" "" "dwg" 0))
  20.     (progn
  21.         (setq cnt (strlen dwg)
  22.               str nil
  23.         )
  24.         (while (and (> cnt 0) (/= str "\"))
  25.           (setq str (substr dwg cnt 1))
  26.           (setq cnt (1- cnt))
  27.         )
  28.         (if (= str "\")
  29.           (setq su 2)
  30.           (setq su 1)
  31.         )
  32.         (setq s3 (substr dwg (+ su cnt)))
  33.         (setq dpth (substr dwg 1 (- (strlen dwg) (strlen s3))))
  34.         (setq s3 (substr s3 1 (- (strlen s3) 4)))
  35.         (setq dwglist (append  dwglist (list (list s3 dpth))))
  36.         (command "shell" (strcat "dir /b " dpth "*.dwg >" s3 ".lst" ""))
  37.      )
  38.   )
  39.   (setq wlst "dwgprp.lst"
  40.         wname "begin.scr"
  41.         fnwl  (open wlst "r")
  42.         fnw (open wname "w")
  43.   )
  44.   (foreach dwgnm dwglist
  45.     (setq rname (strcat (nth 0 dwgnm) ".lst"))
  46.     (setq fnr (open rname "r"))
  47.     (while (setq dwg (read-line fnr))
  48.       (write-line "Open" fnw)
  49.       (write-line (strcat (nth 1 dwgnm) dwg) fnw)
  50.       (setq tscr (open addscr "r"))
  51.       (while (setq outline (read-line tscr))
  52.          (write-line outline fnw)
  53.       )
  54.       (close tscr)
  55.     )
  56.     (close fnr)
  57.   )
  58.   (if (= ans "Yes")
  59.      (write-line "exit  " fnw)
  60.      (write-line "QSAVE" fnw)
  61.   )
  62.   (close fnw)
  63. )
  64. (prompt "Template script file not found")
  65. )
  66. ; (command "script" "begin")
  67. )
  68.   
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:27:52 | 显示全部楼层
可能是SCR的深-深路径未设置“受信任路径”
 
第二,为什么没有一个像c:\Myprogs这样的目录,它有你所有的Lisp和脚本等,所以更容易找到。
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:03:38 | 显示全部楼层
 
GSCRIPT和MS-BUTTON。SCR位于同一位置。我过去一直使用support文件夹来存放我的所有SCR和LSP,但我可以尝试移动模板脚本文件。
 
宏代码过去看起来像下面的一行,但由于某些原因,它不起作用。
  1. ^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是如何工作的,而且原作者已经不在我身边,我无法再寻求他的帮助了。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-14 13:08 , Processed in 3.741972 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表