明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: zzsong

[求助]求一程序,自动打开文件夹下所有文件,并执行图形清理、缩放和保存命令(已解

    [复制链接]
发表于 2012-1-10 14:39 | 显示全部楼层
mikewolf2k 发表于 2012-1-10 09:06
1. /b参数后面是脚本文件的文件名,不是内容。把脚本命令写入一个文本文件,文件后缀为scr,比如aa.scr, ...

谢谢!
1。/b与“AA”之间有空格,引用者请注意,我自己没写好。
2.我在DOS窗口没运行成功,错误信息是acad不识别,但用shell命令可以运行,挺好的。
3.我用了5个文件做实验,很成功,就准备把其实践到工作中,直接把200多个文件都考进去了,结果死翘翘了,出现了下面如图错误,CAD都启动不了,只好重启了。

本帖子中包含更多资源

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

x
发表于 2012-1-10 14:49 | 显示全部楼层
需要处理完一个图形文件,就关闭一个文件
发表于 2012-1-11 08:50 | 显示全部楼层
cindy_fisher 发表于 2012-1-10 14:39
谢谢!
1。/b与“AA”之间有空格,引用者请注意,我自己没写好。
2.我在DOS窗口没运行成功,错误信息是 ...

2. 是说acad命令未知么?需要将acad路径加入到系统搜寻路径下,或者在acad命令前指定路径。
3. 是打开一个dwg,执行完脚本再关闭,接着继续下一个,还是不停的打开,系统中有多个acad在运行?如果是后者,系统资源有限会崩溃的。需要在两条acad命令之间插入一个ping 127.0.0.1命令,让系统暂停几秒,等前一个acad执行完后再执行下一个。
发表于 2012-1-12 10:00 | 显示全部楼层
mikewolf2k 发表于 2012-1-11 08:50
2. 是说acad命令未知么?需要将acad路径加入到系统搜寻路径下,或者在acad命令前指定路径。
3. 是打开一 ...

2。我把错误信息截图了,请见附件

3.我把好多图纸都加进去,出现的您说的后者,
图纸一张张打开,但都不关闭,我明明在脚本中写了exit命令。加上你的暂停命令后也不管事,不知道是不是加的不对,贴在下面供参考,谢谢
layer m rev l continuous rev c 6 rev
ping 127.0.0.1
qsave
ping 127.0.0.1
exit
ping 127.0.0.1

本帖子中包含更多资源

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

x
发表于 2012-1-12 10:46 | 显示全部楼层
批处理:
A:
请您将处理前的图样*.Dwg依资料夹打包
具代表性的 3-5 个即可

B:
单个文件载入后
命令的执行及回应明细

C:
单个文件完工后的样文件*.Dwg
------------------------------
再研究处置对策
发表于 2012-1-12 11:30 | 显示全部楼层
cindy_fisher 发表于 2012-1-12 10:00
2。我把错误信息截图了,请见附件

3.我把好多图纸都加进去,出现的您说的后者,

执行dos命令如下:
for %1 in (c:\abcd\*.dwg) do (
"c:\Program Files\AutoCAD 2004\acad" "%1" /b "aa"
ping 127.0.0.1)

aa.scr内容如下:
circle
0,0
50
qsave
quit

记得quit后要回车,如在acad中操作一样。
发表于 2012-1-13 11:12 | 显示全部楼层
Andyhon 发表于 2012-1-12 10:46
批处理:
A:
请您将处理前的图样*.Dwg依资料夹打包

您好,因为我是做管道流程图的,所以一套图纸经常几百页,经常需要批量处理,所以简单一点的操作就用脚本,譬如说给所有图纸上加上签名,版次号等,之前一直都是搞个图纸号列表在excel中,然后写命令,一个文件文件处理。后来在想在SCR中能不能运用打开文件夹,反正每张图都执行相同的动作,就不用费事的再到表里搞个文件名列表。用mike的for in do打开文件夹运行SCR挺好,但是图纸太多,系统就崩溃了,电脑直接蓝屏,所以错误信息也搞不到,我是想大家集思广益,把问题解决了,提高工作效率。

大家可以建几十个空白图纸,写个画圆的scr,然后用for in do做,如果成功了,就可以用到实际工作中,毕竟每个人实际需要批量处理的目的是不一样的。
谢谢了。
发表于 2012-1-13 11:30 | 显示全部楼层
以前曾在某家公司重整几千张图纸 (图形归位到零零点等等)用的就是  Script
是在 Cad 命令列启动的那种,非是 for in do 的 Dos 方法
如果您能接受 for in do 的 Dos 方法 , 那么试试加  / WAIT , 一个完工后再接续启动下一个
(Ref: 49# 的 Link...)
发表于 2012-1-13 11:36 | 显示全部楼层
mikewolf2k 发表于 2012-1-12 11:30
执行dos命令如下:
for %1 in (c:\abcd\*.dwg) do (
"c:\Program Files\AutoCAD 2004\acad" "%1" /b "a ...

您好,
1. 这个语句可以直接在DOS中运行了,看来如果只写acad,我的系统搜不到autocad。
2.放了5张图纸到文件夹, 在DOS中运行加了ping的命令后,速度很快,看不出一张张开,画圆,关闭。但当考了30多张图纸后,刚开始很好,突然电脑就蓝屏了。蓝屏的提示就是如果第一次出现此问题,请重启,如果多次出现请check某些程序是否安装正确。

谢谢。
发表于 2012-1-16 08:31 | 显示全部楼层
cindy_fisher 发表于 2012-1-13 11:36
您好,
1. 这个语句可以直接在DOS中运行了,看来如果只写acad,我的系统搜不到autocad。
2.放了5张图纸 ...

2. 只要两张以上运行成功了,就说明代码没问题。蓝屏的时候系统内有很多acad在运行么,可以尝试着ping 127.0.0.1 -n 6, 其中6是秒数,自行调整到前一个acad刚刚做完的时间。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-25 23:15 , Processed in 0.230752 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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