找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 675|回复: 7

[求助] [求助]:多文档同时批量处理

[复制链接]
发表于 2004-9-25 08:55:04 | 显示全部楼层 |阅读模式

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

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

×
从本站看到的程序,可同时批量处理所有打开的图形(DWG)文件中的文本, 将文本查找和替换
清高手看看,为什么不能执行,不能完成替换,情高手指点!
;fs即为文本查找和替换的英文缩写的头一个字母
(defun c:fs ()
  ;(vl-load-com)
  (setq char-A (getstring "\n请输入查找文字:"))
  (setq char-B (getstring "\n请输入替换文字:"))
  (vlax-for i (vla-get-Documents (vlax-get-acad-object))
    (vlax-for j (vla-get-modelspace i)
      (if (= "AcDbText" (vla-get-objectname j))
        (if (= "char-A" (vla-get-textstring j))
          (vla-put-textstring j "char-B")
        )
      )
    )
    (vla-regen i acallviewports)
  )
)


这是程序执行结果!
命令: FS

请输入查找文字:2004.10

请输入替换文字:2004.09
正在重生成模型。

命令: nil
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-9-25 10:50:43 | 显示全部楼层
(defun c:fs ()
;(vl-load-com)
(setq char-A (getstring "\n请输入查找文字:"))
(setq char-B (getstring "\n请输入替换文字:"))
(vlax-for i (vla-get-Documents (vlax-get-acad-object))
(vlax-for j (vla-get-modelspace i)
(if (= "AcDbText" (vla-get-objectname j))
(if (= char-A (vla-get-textstring j))
(vla-put-textstring j char-B)
)
)
)
(vla-regen i acallviewports)
)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-9-26 13:10:33 | 显示全部楼层

可以lsp结合vba,可以避免lsp的中断退出

1.加载lsp
(vl-load-com)
(vl-load-all "c:\test.lsp")

2.执行vba
Sub test()
    Dim docs As AcadDocuments
    Set docs = Documents
    Dim doc As AcadDocument
    Dim i As Integer
    For i = 0 To docs.Count - 1
        Set doc = docs.Item(i)
        doc.SendCommand "macro"     'macro是定义的lsp的命令
    Next
End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-9-26 22:15:38 | 显示全部楼层
请问这个程序能替换字符中的一部分吗,比如说我想把789.000替换成789?可以吗。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-27 04:43:15 | 显示全部楼层

Re: [求助]:多文档同时批量处理

最初由 逐月飞鸿 发布
[B]从本站看到的程序... [/B]

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

使用道具 举报

 楼主| 发表于 2004-9-27 08:09:16 | 显示全部楼层
回复6楼的,不行的!这是一个缺陷吧!不过,如果部分匹配可以的话,就更好了!不过程序就麻烦了啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 11:54 , Processed in 0.226601 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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