明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: zzsong

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

    [复制链接]
发表于 2011-8-14 11:04 | 显示全部楼层
好,不错,路过!
发表于 2011-12-24 20:04 | 显示全部楼层
mikewolf2k 发表于 2010-12-21 08:18
这个用脚本文件就可以解决了,然后用dos命令中的for in do 自动一个个的打开dwg文件并且执行这个脚本。

您好,现在能用脚本文件执行打开文件夹中的所有DWG文件,然后进行命令吗。

最近需要给200多张图纸写签名,就用了脚本,感觉很好用,但在文件名上稍微费了点事,因为要把文件夹所有的文件名复制到EXCEL中,然后,在前面写OPEN,后面在写TXT的命令。

谢谢。
发表于 2011-12-26 08:37 | 显示全部楼层
cindy_fisher 发表于 2011-12-24 20:04
您好,现在能用脚本文件执行打开文件夹中的所有DWG文件,然后进行命令吗。

最近需要给200多张图纸写签 ...

for %1 in (c:\temp\*.dwg) do acad %1 /b"script"
发表于 2011-12-28 12:58 | 显示全部楼层
mikewolf2k 发表于 2011-12-26 08:37
for %1 in (c:\temp\*.dwg) do acad %1 /b"script"

没明白这个意思,能说说吗
回复 支持 0 反对 1

使用道具 举报

发表于 2011-12-29 08:27 | 显示全部楼层
cindy_fisher 发表于 2011-12-28 12:58
没明白这个意思,能说说吗

把所有要操作的dwg文件放在某目录下(比如c:\temp),然后进入dos窗口执行以上命令。
script为已经写好的脚本文件内容,执行预操作的命令,最后记得存盘退出。
这样会将目录下所有dwg文件一一打开,执行脚本命令。由于脚本最后是存盘退出,这样所有的dwg就会一个接一个的打开关闭继续下一个。
详情请查阅dos命令。
发表于 2012-1-1 21:40 | 显示全部楼层
楼上的很强大。学习了!!!!!!!!!!!!!1
发表于 2012-1-7 15:50 | 显示全部楼层
本帖最后由 jfxia 于 2012-1-7 15:57 编辑

   把命令中的批处理文件的下一行改为以下就可实现清理功能


     (princ (strcat "open \"" x "\"\n" "zoom e purge a * n qsave close\n") sff)

  我多此一举了,11楼已有了清理的功能

发表于 2012-1-9 15:49 | 显示全部楼层
mikewolf2k 发表于 2011-12-29 08:27
把所有要操作的dwg文件放在某目录下(比如c:\temp),然后进入dos窗口执行以上命令。
script为已经写好的 ...

您好,
for %1 in (c:\abcd\*.dwg) do acad %1 /b"Circle 0,0 50 qsave close”
我想用上面的句子给abcd文件夹里的所有图纸在0,0坐标画个圆,然后存盘,退出,结果程序只是把文件打开了,不执行画圆,关了之后,又自己打开另外一张,请问
(1)这个语句请求修改,谢谢
(2)如果脚本文件一次需要在图纸中进行几个command,我们会在记事本上把命令一行行写出来如下,如果在用for in do是写在一行还是怎么着,谢谢。
open "drawing1"
circle 0,0 50
line 0,0 50,50
qsave
close
(3)运行dos命令步骤:在autoCAD中shell--for in do语句还是在运行中输入cmd调出dos窗口写上for in do 语句,因为我的语句不正确,所以哪个方式都没成功,请达人指教,谢谢。
(4)网上搜了好多关于dos命令在autocad中的使用,也没多少资料,请达人指教相关学习资料,谢谢。
发表于 2012-1-9 17:04 | 显示全部楼层
Ref:
http://en.allexperts.com/q/AutoC ... t-AutoCAD-start.htm

另:
以 Batch Call Acad.exe 会造成 Acad.exe的新process 耗费启动时间,
应改由 命令列 启动 Script...
详帮助or官网
发表于 2012-1-10 09:06 | 显示全部楼层
cindy_fisher 发表于 2012-1-9 15:49
您好,
for %1 in (c:\abcd\*.dwg) do acad %1 /b"Circle 0,0 50 qsave close”
我想用上面的句子给abc ...

1. /b参数后面是脚本文件的文件名,不是内容。把脚本命令写入一个文本文件,文件后缀为scr,比如aa.scr,格式跟在acad命令行输入一模一样,比如:
circle
0,0
50
qsave
close
最后的命令为for %1 in (c:\abcd\*.dwg) do acad %1 /b"aa"
脚本文件可以在acad中的运行脚本功能测试。
2. for in do的功能是依次打开dwg文件,至于打开后做什么,是由脚本文件定。
3. 在dos窗口执行吧。acad中的shell没用过。
4. 另外提醒一下,需要将acad的捕捉功能去掉,否则定位点的时候可能会被吸附到其它位置上去。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-20 09:06 , Processed in 0.899986 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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