乐筑天下

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

[编程交流] 查找和替换脚本

[复制链接]

3

主题

14

帖子

11

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 14:42:20 | 显示全部楼层 |阅读模式
你好
 
我公司的项目经理正在运行AutoCAD LT 2009。
 
我们公司使用具有以下字段的通用项目模板:
 
01区域1
01代表1
01经销商1
01乘以1
01日期1
下午1点01分
01DWG 1
 
我们使用“FIND”命令将通用信息替换为项目细节,例如,我们将找到“01DATE 1”,并将其替换为“4/20/09”。这可能有点乏味,所以我想要一个脚本来减少一些点击。理想情况下,它会运行,这样第一个字段就会弹出,我会在命令行中填写适当的信息,然后点击空格键,下一个字段就会弹出,等等…
 
自从我们进入2009年以来,我一直在研究这个问题,但一直无法解决一些问题。请记住,我正在运行LT。
 
如果有人有办法做到这一点,请让我知道。
 
谢谢
回复

使用道具 举报

7

主题

29

帖子

22

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 14:47:39 | 显示全部楼层
我认为不可能只在命令行中运行“find”命令。如果你在脚本中使用它,这将是你真正需要的。另外,我不是脚本专家,但我不相信你会有办法在它运行时输入信息。这可以很容易地用Lisp编写,但我知道你在运行LT时所经历的痛苦。通过寻找某种LT扩展器,你会节省很多头痛和时间。
回复

使用道具 举报

3

主题

14

帖子

11

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 14:50:55 | 显示全部楼层
 
这就是我害怕的。。。我们一直在挠头找工作。
 
六羟甲基三聚氰胺六甲醚。。。。“LT扩展器”,嗯?
 
谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:53:59 | 显示全部楼层
快速查找和替换LISP-仅即时编写(区分大小写):
 
  1. (defun c:fnr  (/ tStr ss)
  2. (while (or (eq "" (setq tStr (getstring t "\nSpecify Text to Search For: ")))
  3.             (not (setq ss (ssget "X" (list (cons 0 "*TEXT") (cons 1 tStr)))))
  4.             (eq "" (setq rStr (getstring t "\nSpecify Replacement Text: "))))
  5.    (princ "\n<!> No Text Specified or Nothing Found <!>"))
  6. (foreach eLst  (mapcar 'entget (mapcar 'cadr (ssnamex ss)))
  7.    (entmod (subst (cons 1 rStr) (assoc 1 eLst) eLst)))
  8. (princ))
回复

使用道具 举报

3

主题

14

帖子

11

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 14:57:25 | 显示全部楼层
 
啊。。。要是我能用LISP就好了
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:00:31 | 显示全部楼层
 
真烦人,我同意。。
回复

使用道具 举报

3

主题

14

帖子

11

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 15:03:21 | 显示全部楼层

                               
登录/注册后可看大图
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 15:06:29 | 显示全部楼层
不久前,我试图通过这里的论坛使用Autocads查找并替换传递给它的变量,但没有用。原因是Autocad查找和替换搜索到处都会阻止文本多行文字等
 
关于Lt扩展器,它们工作得很好,我会质疑价格,比如说Intellicad,它已经准备好了lisp和VBA。我认为它应该有lisp在它的开箱即用。
回复

使用道具 举报

3

主题

14

帖子

11

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 15:08:56 | 显示全部楼层
好吧,我放弃。所以“查找并替换”脚本不起作用。。。用ATTEDIT做点什么怎么样?
 
我该如何编写脚本,使OP中的字段在命令行上显示为可定义的?
回复

使用道具 举报

3

主题

14

帖子

11

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 15:10:55 | 显示全部楼层
我做错了什么?
  1. Command: -ATTEDIT
  2. Edit attributes one at a time? [Yes/No] <Y>: N
  3. Performing global editing of attribute values.
  4. Edit only attributes visible on screen? [Yes/No] <Y>: N
  5. Drawing must be regenerated afterwards.
  6. Enter block name specification <*>: A$C49561ED3
  7. Enter attribute tag specification <*>: AAAA
  8. Enter attribute value specification <*>: 01AREA 1
  9. 1 attributes selected.
  10. Enter string to change: 01AREA 1
  11. Enter new string: \
  12. Command: -ATTEDIT
  13. Edit attributes one at a time? [Yes/No] <Y>: N
  14. Performing global editing of attribute values.
  15. Edit only attributes visible on screen? [Yes/No] <Y>: N
  16. Drawing must be regenerated afterwards.
  17. Enter block name specification <*>: A$C49561ED3
  18. Enter attribute tag specification <*>: AAAA
  19. Enter attribute value specification <*>: 01REP 1
  20. 1 attributes selected.
  21. Enter string to change: 01REP 1
  22. Enter new string: \

 
它不是在有“\”的地方暂停,而是将我的字符串命名为“\”。我希望该字段可以由用户定义。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 00:05 , Processed in 0.533001 second(s), 72 queries .

© 2020-2025 乐筑天下

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