乐筑天下

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

[编程交流] 在几个屏幕上重复lisp例程

[复制链接]

15

主题

71

帖子

56

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-6 04:38:48 | 显示全部楼层
 
我喜欢script pro。我们一直在使用它,唯一的quark是它为每个图形打开autocad并关闭它。关闭cad时,似乎会强制出错,因此对于每个dwg,您都会收到通常发送给他们的AutoCAD错误消息。
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 04:43:01 | 显示全部楼层
我不认为你需要脚本专业。。。我认为,如果您使用lisp并让它编写一个脚本,告诉autocad为每个对象运行lisp。如果找到了,那么谜题就完成了。。。只是还没有人把它简化到那个程度。。。每个人似乎都认为需要编写脚本和lisp。但是你可以让lisp为你编写脚本,并让它在任何情况下重新编写它。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 04:44:21 | 显示全部楼层
像这样简单的事情应该可以做到:
 
  1. (defun c:rscr (/ wfile rfile ofile)
  2. (if (and (setq wfile (getfiled "\nSelect File to Write to: " "" "scr" 1))
  3.           (setq rfile (getfiled "\nSelect File from Directory to Read: " "" "dwg" ))
  4.    (progn
  5.      (setq ofile (open wfile "w"))
  6.      (foreach x (vl-directory-files (vl-filename-directory rfile) "*.dwg" 1)
  7.        (write-line (strcat "open " x " (load "mylisp") close "Y"") ofile))
  8.      (close ofile))
  9.    (princ "\n<!> File Selection Error <!>"))
  10. (princ))

 
这很容易修改。
回复

使用道具 举报

6

主题

47

帖子

36

银币

初来乍到

Rank: 1

铜币
36
发表于 2022-7-6 04:47:35 | 显示全部楼层
你好
 
就我个人而言,我不喜欢混合脚本和LISP例程。只是感觉。。。错误的所以我想出了一个解决办法。我的代码包含在NDA中,因此我无法为您发布,但我会为您提供在没有脚本的情况下执行所需的步骤。
 
  1. <br>I. Create a routine to run from drawing1.<br>   a. Create a list of routines to run. <br>   b. Create a list of work drawings for processing.<br>   c. Place the routines list in the vlisp blackboard.<br>   d. Open the first work drawing in list.<br>      1. Drawing1 lisp processing is suspended.<br>      2. Startup routine in acad20xxdoc.lsp begins.<br>      3. See Section II<br>   e. Save and Close current work drawing.<br>   f. Back to step d and open next work drawing in list.<br>II. Create startup routine for acad20xxdoc.lsp<br>   a. Check vlisp blackboard for routines list.<br>      1. If there load the first routine.<br>      2. Otherwise normal startup<br>   b. Execute the routine. <br>      1. This is the actual work you want done to the drawings.<br>      2. See section III<br>   c. Repeat from step a for all routines in list.<br>   d. Do not set the work drawing as active.<br>      1. Opening a drawing is different from making it active.<br>      2. When made active, control will not return to drawing1.<br>      3. Inactive drawings will execute all startup routines then hand control back to the last active drawing.<br>III. Create the routines to make your drawing changes.<br>   a. Can be any routine that does not require user input.<br>

 
这将运行任何不需要命令行输入的例程。在所有启动例程完成之前,命令行不可用。这意味着没有GetString或其他命令行用户输入。如果您最终需要用户输入,则必须制作DCL才能获得它。
 
如果你有任何问题,请告诉我,我会尽力帮助你。
 
祝你过得愉快。
肖恩多
[/code]
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 04:49:45 | 显示全部楼层
 
它可以工作,但只允许单选。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 04:54:45 | 显示全部楼层
 
单选????
 
你从包含你想要的所有文件的目录中选择一个文件,它就会得到所有文件。。。
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 04:56:16 | 显示全部楼层
我道歉。我同时处理多项任务,但没有意识到。它工作得很好。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 05:01:35 | 显示全部楼层
 
你让我担心了一分钟。。
 
别担心伙计,
 
干杯
 
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 05:04:54 | 显示全部楼层
李·麦克,
 
我对您的代码进行了以下修改:
 
  1. 3

 
并在我的新创建中获得以下结果。scr文件:
 
 
运行脚本时,Autocad无法找到文件,因为没有显示路径。我尝试更改目录设置的标志,但无法产生任何有价值的内容。有什么想法吗?
 
谢谢
罗伯特
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 05:05:57 | 显示全部楼层
我还试图修改旗帜,但没有成功。
 
我认为最简单(也是欺骗的方式)的办法是要么改变ACAD搜索路径也在你的文件夹中搜索,要么在ACAD搜索路径中创建一个文件夹并将文件放在那里。
 
但我被困在其他地方
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 18:44 , Processed in 0.403006 second(s), 70 queries .

© 2020-2025 乐筑天下

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