乐筑天下

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

[编程交流] Lisp例程挂起

[复制链接]

8

主题

27

帖子

19

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 20:08:50 | 显示全部楼层 |阅读模式
我正在编写一个例程,该例程应该逐个打开文件夹中的每个图形,删除外部参照路径,将其保存到R14,然后移动到下一个图形。似乎它在打开第一幅画后就挂断了,之后就没能工作了。这是我多年来第一次用Lisp编写东西,也是我第一次尝试编写一个包含循环的例程,所以我不太确定这是否是它不能正常工作的部分原因。代码如下:
 
  1. (defun c:savedown (/)
  2. (vl-load-com)
  3. (setq location (getvar "dwgprefix"))
  4. (setq drawingfiles (cddr (vl-directory-files location)))
  5. (setq dwgnmbr (length drawingfiles))
  6. (repeat dwgnmbr
  7.    (setq location (getvar "dwgprefix"))
  8.    (setq drawingfiles (cddr (vl-directory-files location)))
  9.    (setq drawingname (car drawingfiles))
  10.    (setq drawingfiles (cdr drawingfiles))
  11.    (setq filename (strcat location drawingname))
  12.    (command "fileopen" "Y" filename)
  13.    (command "._xref" "T" "*" "N" "")
  14.    (command "._saveas" "LT98" "" "Y")
  15.    );repeat
  16. )
回复

使用道具 举报

8

主题

27

帖子

19

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 20:39:47 | 显示全部楼层
我忘记提及的另一个问题是,在打开图形且代码失败后,我无法通过外部参照管理器单击任何外部参照。只有在将SDI系统变量更改为1,然后再次返回到0后,我才能使它们再次可选。它似乎把它从部分冻结中踢了出来,它被卡住了。
回复

使用道具 举报

28

主题

317

帖子

292

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-5 21:01:49 | 显示全部楼层
据我所知,lisp绑定到单个图形,这意味着您无法使用lisp打开图形并在新打开的图形上继续运行。
 
我采用的一种方法是使用。bat,调用autocad并运行脚本。(您需要通过脚本执行操作)
 
缺点是脚本比lisp慢,批处理文件必须为每个文件启动autocad一次。。。
 
这是我使用的批处理(.bat)文件的内容
  1. FOR %%f in (D:\Users\myuser\Desktop\tryon\*.dwg) do start /wait D:"Program Files""Autodesk""AutoCAD 2014"\acad.exe "%%f" /b D:\Users\myuser\Desktop\try\try.scr

文件夹“tryon”是我复制图纸的文件夹。。
我希望这有帮助。
干杯
 
编辑:必须在脚本中使用quit命令才能使批处理文件转到下一个批处理文件
 
scr文件的示例
  1. zoom
  2. extents
  3. qsave
  4. quit
。。别忘了退出后马车会回来。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 21:25:56 | 显示全部楼层
我支持geoff让siad使用的脚本,您可以使用lisp的第一部分使脚本将所有DWGNAME和所需的命令写入文件,我将按每个dwg执行2-3行,注意隐藏空间,因为
 
我使用CMD和Dir*。dwg/b>dirlst to make dwg列出了使用word制作脚本,如果您知道它有多快的话。
  1. open z:\\myprojects\\dwg1
  2. ._xref T * N
  3. ._saveas LT98  Y close
  4. open z:\\myprojects\\dwg2
  5. ._xref T * N
  6. ._saveas LT98  Y close
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 09:25 , Processed in 0.956685 second(s), 60 queries .

© 2020-2025 乐筑天下

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