找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 906|回复: 7

[求助] [LISP程序]:求助!关于自动操作的编程

[复制链接]
发表于 2004-11-3 18:23:47 | 显示全部楼层 |阅读模式

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

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

×
问题:
     每次我要手动打开一个目录里的所有DWG文件,对每一个文件的某几个特定字符进行替换操作(有可能是一个字符串当中的几个字符),各位老大,能否帮我一个忙,来让程序自动完成。
还有一个问题就是我对目录里的DWG文件进行操作时每次成批操作都是一样的动作!
比如:
     我在DSS目录里有20个DWG文件,我要把这20个DWG文件里所有**ABC**的字符串换成**CDE**字符串(*号表示不定长度的字符串哈)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 488个

财富等级: 日进斗金

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

使用道具 举报

发表于 2004-11-4 03:13:51 | 显示全部楼层

Re: [LISP程序]:求助!关于自动操作的编程

最初由 kehello 发布
[B]问题:     每次我要手动打开一个目录里的所有DWG文件,对每一个文件的某几个特定字符进行替换操作(有可能是一个字符串当中的几个字符),各位老大,能否帮我一个忙,来让程序自动完成。还有一个问题就是我对目... [/B]

请参考:
批量修改所有打开图形文件中的指定文字
[PHP]
(defun c:test ()
  (vl-load-com)
  (vlax-for i (vla-get-Documents (vlax-get-acad-object))
    (vlax-for j (vla-get-modelspace i)
      (if (= "AcDbText" (vla-get-objectname j))
        (if (= "Enzed" (vla-get-textstring j))
          (vla-put-textstring j "Parker")
        )
      )
    )
    (vla-regen i acallviewports)
  )
)
[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-11-4 06:46:20 | 显示全部楼层
这里有个帖子http://xdcad.net/forum/showthrea ... 1222175#post1222175可供参考,我在8楼所说的命令文件就是脚本文件,附件中说明了解决方法,针对你的问题,你可能需要修改脚本文件内容,或者修改Lisp文件内容。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-4 09:06:07 | 显示全部楼层
ll_j,能不能留个电话,或者QQ什么的我还是有点不明白呀!

(defun c:test ()
  (vl-load-com)
  (vlax-for i (vla-get-Documents (vlax-get-acad-object))
    (vlax-for j (vla-get-modelspace i)
      (if (= "AcDbText" (vla-get-objectname j))
        (if (= "Enzed" (vla-get-textstring j))
          (vla-put-textstring j "Parker")
        )
      )
    )
    (vla-regen i acallviewports)
  )
)
这个程序不行呀,首先不能自动处理一个目录下的所有文件(因为我的DWG文件特别大,直接用CAD一下子全打开,内存现在800M都不够用,还有就是我说的是替换图中字符串当中的某几个字符呀,再帮我想想行不?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-11-4 09:31:20 | 显示全部楼层
 其实我在那个附件的readme中已经说了,其实就是构造一个脚本文件,这个脚本文件的构造“需要一点DOS知识....”,其实就是调用find命令,由于find命令不能在命令行状态运行,所以写了一个Lisp程序完成,如果有一点Lisp程序,打开文件很容易看懂并修改。
 依我看,如果只有20个文件,逐个打开文件,然后使用find命令修改应该是最快的,对于很多的文件需要替换时,脚本文件才显示其优越性,作为一种方法理解一下,当然是有益处的。
 我的电话:025-83283626
 邮箱:ll_j@21cn.com
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-4 11:43:20 | 显示全部楼层
ll_j  
请问你叫什么名字呢,我打话打哪位哟!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 13:48 , Processed in 0.172074 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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