找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1320|回复: 18

[求助] [LISP程序]:求助:如何实现文本的批量修改

[复制链接]
发表于 2005-9-15 16:09:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
如果CAD中有一组文本:A,B,C……N,(A,B,C……N是有限个汉字或字母的组合);现在要求使用一个批量修改的命令将它们批量修改为a,b,c……n(a,b,c……n是不同于A,B,C……N的有限个汉字或字母的组合)。请高手帮助!

例如:将"A1","A2","A3",批量修改为:"我","我们","我们的".
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-9-15 22:12:35 | 显示全部楼层
必须首先明确所谓“批量修改”的规律!
  1. [FONT=courier new](load "xyp_lib")
  2. ;|加载通用函数(可在签名栏直接下载)
  3. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  4. 利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
  5. 1.在acad.lsp中增加(load"xyp_lib")
  6. 2.在每个程序内增加(load"xyp_lib")
  7. 3.在command下,输入(load"xyp_lib")
  8. 4.在菜单.mnl中增加(load"xyp_lib")
  9. 5.将xyp_lib.vlx文件直接拽到cad屏幕
  10. [COLOR=red] ★通用函数下载地址:[/COLOR]
  11. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  12. [url]http://www.mjtd.com/bbs/dispbbs.asp?boardID=3&ID=37554&page=1[/url]|;

  13. (defun c:test ()
  14.   (CMDLA0)
  15.   (setq        ss (ssget '((0 . "TEXT")))
  16.         i  -1
  17.   )
  18.   (while (setq s1 (ssname ss (setq i (1+ i))))
  19.     (setq tx (dxf 1 (entget s1)))
  20.     (cond ((= tx "A1")(sub_upd s1 1 "我"))
  21.           ((= tx "A2")(sub_upd s1 1 "我们"))
  22.           ((= tx "A3")(sub_upd s1 1 "我们的"))
  23.           ;;;……
  24.           )
  25.     )
  26.   (CMDLA1)
  27. )
  28. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-16 08:49:52 | 显示全部楼层
谢谢斑竹回复!
如果再进一步,要求被替换内容和替换内容都是excel表格(或txt)中的2列文本,而且相互对应;需要*.vlx能够直接调用这些文本,完成替换工作。我想这样就更有实用的价值,这该怎么写呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-16 11:05:54 | 显示全部楼层
看到这个命题我也想到一个想法 能否把工程图名2005-3-GY-01  2005-3-GY-02......
批量修改为2005-3-GY-02  2005-3-GY-03   即把编图序列号一下  谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-16 11:08:45 | 显示全部楼层
最初由 teainred 发布
[B]谢谢斑竹回复!
如果再进一步,要求被替换内容和替换内容都是excel表格(或txt)中的2列文本,而且相互对应;需要*.vlx能够直接调用这些文本,完成替换工作。我想这样就更有实用的价值,这该怎么写呢? [/B]

acad的表格功能不可能超过excel表格,两个表格或txt文本之间的数据交换用acad来完成似乎有点舍近求远!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-16 11:33:54 | 显示全部楼层
我做了一个被调用execl表格的模板,方便把问题说清楚。
请斑竹、高手一定帮忙看一看!
在execl中倒是可以方便的完成对A列内容的查找,并对应调用B列中的内容。但是在CAD中我就没有办法了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-16 14:10:54 | 显示全部楼层
最初由 teainred 发布
[B]我做了一个被调用execl表格的模板,方便把问题说清楚。
请斑竹、高手一定帮忙看一看!
在execl中倒是可以方便的完成对A列内容的查找,并对应调用B列中的内容。但是在CAD中我就没有办法了。 [/B]

5楼已经表达得很清楚。
估计对excel太不熟悉了!
点A1:ctrl+C
点C1:ctrl+V
点B:ctrl+C
点A:ctrl+V
点C1:ctrl+C
点A1:ctrl+V
点C1:删除
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-20 10:55:42 | 显示全部楼层

斑竹误解了我的意思,
我不是要在ecxel中完成替换,是要在cad中根据ecxel的对应关系进行替换。
就好比,excel是张花名表,有n个人的“姓名”和“年龄”相互对应,现在CAD中也有这些人的“姓名”,如何根据excel这张花名表的内容,将CAD中的“姓名”全部替换为“年龄”?而不必重复使用n次,查找,替换。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-20 13:10:52 | 显示全部楼层
理论上是可以的
不过excel我不熟:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-20 13:56:29 | 显示全部楼层

Re: 详

最初由 teainred 发布
[B]斑竹误解了我的意思,
我不是要在ecxel中完成替换,是要在cad中根据ecxel的对应关系进行替换。
就好比,excel是张花名表,有n个人的“姓名”和“年龄”相互对应,现在CAD中也有这些人的“姓名”,如何根据excel这?.. [/B]

直接粘贴excel的内容不是更简单!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-20 15:58:47 | 显示全部楼层
CAD中的“名字”不是以表格的形式存在,而是散布在图纸的各处的的TEXT形式文字,所以不能粘贴整张表格,要把“名字”替换为“年龄”而且位置不改变。
附:作为替换样本的“姓名”“年龄”列表也可以是.TXT文件格式,只要能完成CAD中内容的替换即可。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-20 16:58:06 | 显示全部楼层
最初由 teainred 发布
[B]CAD中的“名字”不是以表格的形式存在,而是散布在图纸的各处的的TEXT形式文字,所以不能粘贴整张表格,要把“名字”替换为“年龄”而且位置不改变。
附:作为替换样本的“姓名”“年龄”列表也可以是.TXT文件格式?.. [/B]

修改2楼程序就可以了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-21 08:30:12 | 显示全部楼层
请斑竹再进一步说明,不胜感谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-21 09:23:49 | 显示全部楼层
不错
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-21 10:58:58 | 显示全部楼层
最初由 teainred 发布
[B]请斑竹再进一步说明,不胜感谢! [/B]

[php](defun c:test ()
  (CMDLA0)
  (setq        ss (ssget '((0 . "TEXT")))
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (setq tx (dxf 1 (entget s1)))
    (cond ((= tx "A1")(sub_upd s1 1 "我"))
          ((= tx "A2")(sub_upd s1 1 "我们"))
          ((= tx "A3")(sub_upd s1 1 "我们的"))
          ((= tx "AAA")(sub_upd s1 1 "BBB"));"AAA" 是原文,"BBB"是将替换的内容
          ;;;……
          )
    )
  (CMDLA1)
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 18:28 , Processed in 0.192770 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表