找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1901|回复: 18

[LISP程序]:如何批量处理图纸?

[复制链接]
发表于 2002-7-23 09:24:59 | 显示全部楼层 |阅读模式

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

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

×
我想用lisp编程实现对300多张图纸进行同样操作,就是先打开图纸,然后将图纸中所有的块都用WBLOCK写到指定的目录文件夹中,其中写块程序我已经作好了,现在的问题是如何将300张图纸用程序来进行自动处理?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-7-23 09:36:52 | 显示全部楼层
写个脚本程序好了
用命令行:open “路径+文件名” “要执行的命令” “参数”
每个文件一行
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-7-23 10:19:54 | 显示全部楼层

那么,JOHN先生

能否用lisp来建立这个脚本文件,然后存为.scr格式?我的意思是想用lisp来艘素指定文件夹里的所有.dwg图纸,然后列表,根据列表来建立.scr文件,然后再有lisp调用该脚本。大家看能行通吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-7-23 10:48:14 | 显示全部楼层

现在我试过了,用lisp建.scr文件完全可以

现在我试过了,用lisp建.scr文件完全可以,现在需要解决的问题是,如何来搜索某一文件夹下的所有.dwg文件,来产生一个列表。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2002-7-23 14:06:52 | 显示全部楼层

呵呵,我哭笑不得了

瞧我刚才执行下面代码的结果
(command "sh" "dir f:\\*.dwg/s>f:\\a.txt")

请看附件
里面的东西太多了,这个列表内容太多了,我只想要列出类似下面的形式,然后按每个文件名一行的格式,好供lisp来读取它。

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

使用道具 举报

 楼主| 发表于 2002-7-23 14:11:12 | 显示全部楼层

大家看还有没有别的解决办法?

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

使用道具 举报

发表于 2002-7-23 14:58:00 | 显示全部楼层
你该好好查查dir的参数

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

使用道具 举报

 楼主| 发表于 2002-7-23 15:27:48 | 显示全部楼层

非常感谢CY956的帮助!

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

使用道具 举报

发表于 2002-7-23 15:39:30 | 显示全部楼层
您要自动生成脚本?那这dir可能不行,因为总有附加信息且对长文件支持不好,用函数库里的吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-7-23 17:01:44 | 显示全部楼层

您是指什么函数库?

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

使用道具 举报

 楼主| 发表于 2002-7-23 17:32:40 | 显示全部楼层

看一下我编的小程序

我的实现方法可能太笨拙了,但经过我调试还算可以,代码如下:
请高手们看了不要笑,不合理的地方请给予指正,或提供小弟一个更好的程序或方法。

  1. (defun c:hh()
  2.   (vl-load-com)
  3.   (setq ff0 "f:/a.txt")
  4.          (setq len (mc_getfile_line ff0))
  5.          (setq liebiao "")
  6.           (setq p 0)
  7.          (while (> len 0)
  8.           
  9.            (setq wenjianming (mc_getfile_text ff0 p))
  10.            (setq liebiao (strcat liebiao (strcat "open " wenjianming "\n"
  11.                                                  "(" "load" "wba.lsp" ")" "\n" "wba" "\n")))
  12.            (setq ff "f:/aaa.scr")
  13.          (setq ffa (open ff "w"))
  14.                (write-line liebiao ffa)
  15.            (setq len (- len 1))
  16.            (setq p (1+ p))
  17.            )
  18.          
  19.                 (close ffa)
  20.   )
  21. (defun mc_getfile_text (files0 line0 / fn0 text0)
  22.   (setq line0(+ 1 line0))
  23.   ;(setq files0 (findfile files0))
  24.   (if files0
  25.     (progn
  26.       (setq fn0(open files0 "r"))
  27.       (if (<= line0 (mc_getfile_line files0))
  28.         (progn
  29.           (repeat line0
  30.             (setq text0(read-line fn0))
  31.           )
  32.           (close fn0)
  33.           text0
  34.         )
  35.         nil
  36.       )
  37.     )
  38.     nil
  39.   )
  40. )


  41.     ;读取文件的行数

  42.   (defun mc_getfile_line(files1 / tmplst1 x1 fn1)
  43.   (setq files1(findfile files1))
  44.   (if files1
  45.     (progn
  46.       (setq tmplst1 0)
  47.       (setq fn1(open files1 "r"))
  48.       (while (read-line fn1)
  49.         (setq tmplst1 (+ 1 tmplst1))
  50.       )
  51.       (close fn1)
  52.       tmplst1
  53.     )
  54.     nil
  55.   )
  56. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-7-23 17:47:16 | 显示全部楼层
http://www.xdcad.net/forum/showt ... y=&pagenumber=2

用VBA做的lisp批处理程序

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

使用道具 举报

 楼主| 发表于 2002-7-23 19:40:47 | 显示全部楼层

呵呵,秋枫前辈,我的CAD是倒版的,不支持VBA

我现在还不想用VBA来做,眼下好象这个问题能用LISP来解决,再说,我对VBA还不懂,主要想学一下LISP,自己做个程序,不过还是要谢谢你哦
请大家再来帮忙
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 14:29 , Processed in 0.506831 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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