创建并运行脚本文件.docx
《创建并运行脚本文件.docx》由会员分享,可在线阅读,更多相关《创建并运行脚本文件.docx(12页珍藏版)》请在冰点文库上搜索。
创建并运行脚本文件
13.6创建并运行脚本文件发布日期:
2009-8-27
脚本文件是记录了一系列中望CAD2008命令组合的文本文件,文件格式为*.scr。
运行脚本文件则是按脚本文件预先制定好的顺序一步一步地执行这些命令的过程。
可以将经常进行的重复性工作(如在幻灯中显示快照、初始化绘图参数设置、批测绘、打印设置等)的一些顺序性的命令组建立成脚本文件,通过运行脚本可以提高绘图效率。
创建脚本文件可以通过两种方法:
1.通过中望CAD2008脚本记录器创建
中望CAD2008脚本记录器能够记录在命令行上的任何键盘输入和在图形中选择的任何点坐标。
可以把所有这些动作和数值保存于一个脚本文件(*.scr),并可通过该运行脚本文件来按原操作顺序一步一步地重复这些动作。
创建过程是用Recscript命令开始记录,用Stopscript命令结束记录。
在开始记录和结束记录之间,当从命令行上键入命令或键入一个选项并回车时,它在脚本下记录下一行;当在命令行上输入一个点的坐标或在图形中选择一个点时,点坐标也被记录在脚本文件中的一行。
警告:
脚本记录器只记录在命令行中的所有键盘输入和在图形中所选择的点,但不记录对工具栏、菜单、对话框的使用,在记录脚本时如果使用工具栏、菜单、对话框这些元素将会到不可预料的结果。
2.在中望CAD2008外用文本编辑器(比如“记事本”)或一些字处理软件直接来编写一个脚本文件,并保存为文本文件。
文件扩展名必须是.scr。
13.6.1编写脚本文件的注意事项与常用命令
1.在编写脚本文件以前,用户需要知道中望CAD2008的命令和命令提示相应的输入,然后才能用文本编辑器编写脚本文件。
注意:
在脚本文件中,空行表示回车。
下面就是一个绘图初始化参数设置的脚本文件(初始化.SCR)。
Limits
0,0
42000,29700
Grid
1000
Snap
1.0
Zoom
All
Setvar
Textsize
500
Setvar
Ltscale
100
Setvar
Dimscale
100
2.在脚本文件中,也可以把几条语句放在一行;同一行中空格用于终止一个命令或提示输入,应确保文件中没有多余的空格,否则在运行过程中就要多次按回车键。
以上脚本文件可以写成如下形式:
Limits0,042000,29700;
设置绘图范围Grid1000;
设置栅格间距Snap1.0;
设置捕捉步距ZoomAll;
显示全部图形内容SetvarTextsize500;
设置文本高度SetvarLtscale100;
设置线型比例SetvarDimscale100;
设置尺寸标注样式比例
3.脚本文件可以包含注释,如以上脚本文件。
任何以分号开头的行都被当作注释。
运行脚本时程序将忽略这些行。
4.脚本文件的一个限制是所有的信息都必须包含在文件内部,在文件运行过程中不允许用户输入信息,除非用户在文件中嵌入了AutoLISP命令提示用户输入。
5.Delay命令的使用
在脚本文件执行过程中,有时希望看到某些操作的执行过程,可是有些操作执行得很快,因而很难在屏幕上看到这些操作过程的执行情况,所以在脚本文件的某些操作之间很有必要使用暂停命令Delay。
Delay命令的通用格式为:
DelayTime
其中Time以毫秒为单位,Delay2000表示要暂停2秒钟。
6.Rscript命令的使用
当用户需要无限循环执行一个脚本文件时,可在文件最后加一行Rscript命令。
如果想停止脚本文件的运行,可按【Ecs】键(AutoCAD中可按Backspace键或Ctrl+C键)来实现。
用户不能在脚本文件中使用条件语句来终止文件的循环运行,除非在脚本中使用AutoLISP函数。
下面是一个脚本文件(旋转.scr),它可以实现使原有的图形绕一点不停的旋转,并且每旋转30°后,停顿半秒再接着旋转。
Rotate;
调用旋转命令
All(空行);
选择全部图形作为旋转对象100,100;
制定旋转中心坐标30;
指定旋转角Delay500;
设定暂停时间Rscript;
重复执行以上各命令
13.6.2记录一个脚本
下拉菜单:
[工具]→[记录脚本]
命令行:
Recscript
执行Rrecscript命令,系统弹出如图13-13“记录脚本”对话框。
指定文件名和保存位置,你可以保存在原来存放相应文件的地方,也可入到你好记又好找的地方,点击【保存】。
脚本记录器将记录下所有的键盘入口和在图形中所选择点的坐标,并保存进一个脚本文件。
图13-13“记录脚本”对话框
13.6.3停止记录
下拉菜单:
[工具]→[停止记录]
命令行:
Stopscript
执行Stopscript,系统停止记录脚本。
13.6.4运行脚本
下拉菜单:
[工具]→[运行脚本]
令行:
Script
图13-14运行脚本对话框
13.6.5添加脚本
如果想把新记录的脚本内容增加到一个原有的脚本文件中,可进行如下操作:
1.执行Recscript命令,系统弹出如图13-13“记录脚本”对话框。
2.在“记录脚本”对话框,选择“添加到Script”复选框。
选择要添加到的脚本文件,点击【保存】。
选择“替换原有文件”。
3.开始操作。
4.结束纪录。
注意:
新的脚本内容是加在原脚本内容之后。
13.6.6脚本文件综合举例
下面是给出的一个脚本文件实例,可以运行“自动绘制.scr”,对照脚本文件内容观察运行过程和结果,图13-15为运行后得到的一个画面。
图13-15运行脚本自动绘制.scr
自动绘制.SCR
c
2p
50,150
250,150
delay
1000
c
2p
400,150
600,150
delay
1000
z
e
do
30
100
130,150
do
20
100
480,150
delay
1000
c
2p
320,380
320,-320
z
e
a
180,-90
300,-135
460,-90
180,-90
300,-210
460,-90
以上程序经过验证,可顺利运行。
请注意空行处一定要空一行。
1脚本文件简介
脚本文件类似于DOS操作系统中的批处理文件,它可以将不同的AutoCAD命令组合起来,并按确定的顺序自动连续地执行。
脚本文件是文本文件,扩展名为“.SCR”,用户可使用任一文本编辑器来创建脚本文件。
因为脚本文件可使一些命令序列自动执行,所以常用来产生、编辑或观看图形,如幻灯放映、初始的图形设置等。
但脚本文件不能使用对话框或菜单,当从脚本文件中发出打开对话框命令时,AutoCAD运行该命令的命令栏含义而不是打开对话框。
用户可以通过命令行的开关设置,使AutoCAD在启动时自动调用脚本。
此外,用户也可以在AutoCAD中运行脚本,其调用方式为:
菜单:
【Tools(工具)】→【RunScript…(运行脚本)】
命令行:
script(或别名scr)
注意AutoCAD的“undo”命令将每个脚本当作一个组,可以用单个“undo”命令放弃一组脚本的操作。
说明“script”命令可透明地使用。
2实例1使用脚本文件绘制并显示图形
Step1创建脚本文件“exam_draw.scr”
(1)使用Windows附件中的“记事本”程序创建一个新文件。
(2)在该文件中添加如下内容,如图1所示。
注意其中调用“exam_view.scr”文件的路径应根据实际情况而定。
(3)以“exam_draw.scr”为名保存该文件。
Step2创建脚本文件“exam_view.scr”
(1)使用Windows附件中的“记事本”程序创建一个新文件。
(2)在该文件中添加如下内容,如图2所示。
(3)以“exam_view.scr”为名保存该文件。
Step3运行脚本文件
进入AutoCAD系统,调用“script”命令弹出“SelectScriptFile(选择脚本文件)”对话框,定位并打开步骤一中创建的“exam_draw.scr”文件。
该文件的运行结果是在屏幕中间绘制一条直线和一个圆,而且直线和圆绕中心不停地转动。
如图3所示。
实例说明
1.从实例中我们可以看到,脚本文件的内容实际上就是在AutoCAD命令提示行中所用的命令的一个有序集合。
脚本文件中的每一行对应着AutoCAD命令提示行中的一个命令、一个选项的响应。
2.脚本文件中可以包含注释,任何以“;”开始的行都被当作注释而在运行时被忽略。
此外,脚本文件中所有包含空格的长文件名都必须被括在双引号中。
3.需要提醒读者注意的是,脚本文件中的空格和空行在运行时相当于按Enter键,因此,为了能正确地运行脚本文件,需严格控制文件中空格和空行的使用,避免多余的空格和空行。
4.脚本文件在运行时不允许输入新的信息,所有的信息都必须包含在文件内。
5.运行中的脚本文件在按Esc键时,或在调用另一个SCRIPT命令时被终止。
如果脚本文件被取消,或脚本文件遇到错误,并且造成该文件的执行被悬挂时,可使用RESUME命令继续运行。
RESUME命令将跳过导致出错的命令,并继续执行剩余的脚本文件。
6.DELAY命令用于设置时间延迟。
由于脚本文件是自动运行的命令序列,因此,一些操作发生得非常快。
如果用户需要清楚地观看操作过程,则需要使用DELAY进行必要的停顿。
DELAY命令的通常格式为:
DELAYTime
其中,Time为延迟时间,取值范围为0~32767,以毫秒为单位。
7.RSCRIPT命令用于无限制地重复执行脚本文件,直到用户强制取消为止。
当用户要连续地执行同一个脚本文件时,该功能非常有用。
可以将系列命令写在文本文件中,用运行脚本的方法自动绘制图形,这就相当于编制了一个程序,例如,画出已知坐标点的连线,把坐标数据都放在一个txt文本文件里(记事本格式):
文件的开头是画直线的命令"_line",随后每行是一对坐标数据,x和y之间是逗号隔开.然后把这个文本文件另存为.scr格式(autocad)脚本文件.在CAD画图界面的命令行里输入"script"命令,出现一个对话框,然后打开前面保存的那个脚本文件,就开始运行这个画图程序了,运行完那条线就画出来了.就这么简单.另存为的对话框里,文件名用"XXXXX.scr",保存类型用"所有文件",编码用"ANSI".运行脚本仅写入命令和参数,其它提示性的语句不写入,每个命令、每组参数都占一行,且其间不能有空格。
遇有鼠标选择对象时,仍需鼠标选择。
运用脚本,可以快速绘制参数组较大(点坐标较多)的图形,
制作脚本文件的方法4楼的大哥已经说的很清楚了,我就说一下怎么把脚本文件作成命令按钮
首先做一个脚本文件并保存,记下位置,如:
F:
/11/CAD/AUTOCAD外挂/清理保存.scr
然后做个命令按钮(具体怎么做大家应该都知道的吧),在按钮特性中输入“^C^C_filedia0scriptF:
/11/CAD/AUTOCAD外挂/清理保存.scr”,双引号不用输入,点应用-关闭,就可以直接使用了。
其中关键的一点就是直接使用脚本命令时是窗口形式的,我在按钮特性中有个filedia命令,这个命令是个系统变量,它控制了脚本命令是窗口形式还是命令行形式。
把清理保存的脚本程序贴出来:
-purge
a
*
n
-purge
a
*
n
test
filedia
1
zoom
e
qsave
只要把上面的程序复制到记事本再保存成scr格式便可成为一个脚本文件。
该程序的功能就是对cad文件进行清理,其中运行两遍pu命令,一遍test命令(该命令是一个lisp程序,主要是清理图层过滤器),最后再运行保存命令。
以上为自己的一点研究所得,与大家分享,期待大家有更好的方法和我分享。
CAD脚本文件SCR与操作系统批处理的结合利用
SCR是CAD的脚本文件,属于文本文件,这就可以利用批处理来进行编辑。
SCR是由一系列AutoCAD命令构成的文本文件.SCR类似于操作系统中的的批处理命令。
通过执行脚本,可以一次完成一系列任务,运行SCR脚本可以反复执行一个任务,可提高绘图的速度.
如下例子,是我写的一个南方CASS符号制作中,SCR脚本与系统批处理的综合利用,达到最终目的.
set/play=请定义这个符号的所在层(如:
DLDW):
if'%lay%'==''gotoerror1
这二句是让用户输入图层名,并判断如果没有输入任务文字就跳转到error1
set/pDWG1=请输入绘好符号的CAD文件(如图块名为100.DWG请输入100):
ifnotexist"%cd%\%dwg1%.dwg"gotoerror4
这二句是让用户输入绘好的DWG文件名,如果当前不存在这个文件,就跳转到error4
echoopen>cass.scr
把OPEN写入到CASS.SCR这个文件中,在后面CAD执行这个脚本的时候,第一句就是执行OPEN这个命令,打开一个文件
echo^"%cd%\%dwg1%.dwg^">>cass.scr
把本程序当前目录下的,用户输入的DWG文件名,写入到CASS.SCR文件中,并在OPEN这个命令后面,实际也就把路径写入到这里了
echozoom>>cass.scr
把ZOOM写入到CASS.SCR,意思是在CAD中执行ZOOM这个命令
echoe>>cass.scr
把E写入到CASS.SCR.在执行ZOOM后,接着执行E,意思是全范围显示
echomslide>>cass.scr
把MSLIDE写入到CASS.SCR中,意思是执行幻灯片制作命令。
echo%dwg1%^.sld>>cass.scr
把用户输入的DWG文件,在后面加个.SLD输入到CASS.SCR中,意思是把执行后的幻灯片进行保存
echoqsave>>cass.scr
把QSAVE写入到CASS中,意思是保存幻灯片后,再保存当前的DWG文件.
本来是想在这里写入EXIT的,但不知为什么,CAD却无法在SCR脚本中执行EXIT这个命令.
好了,看看最终的SCR文件如下:
open
"c:
\casstemp\g000.dwg"
zoom
e
mslide
g000.sld
qsave
现在SCR脚本有了,如何执行呢,请看下面的批处理代码:
for%%iin(cdefg)do(
for/f"delims="%%jin('dir/a-d/b/s"%%i:
\programfiles"^|findstr/i/c:
"acad.exe"')doecho%%j>cad.txt
)
在C.D.E.F.G这几个盘查找CAD的安装目录,并把路径写入到CAD.TXT这个文本中.本来想写全盘查找的,但这个太费时,一般很少有人安装CAD到CDEFG之外的其他盘。
set/pDWG2=请再次输入绘好符号的CAD文件名(如图块名为100.DWG请输入100):
ifnotexist%dwg2%.dwggotoerror8
再次检测用户要制作的符号文件是否存在
ifnot"%~1"=="h"(
start"""%~0"h
for/f"delims=?
"%%gin('typecad.txt')do("%%g"/b"%cd%\cass"&exit)
)
在上面的代码中,读取CAD.TXT中的CAD安装路径,并在批处理中启动他,/b"%cd%\cass"
指的是启动CAD后,执行当前程序路径下CASS.SCR这个脚本.可以看成是这样:
"d:
\programfiles\AutodeskMap2004\acad.exe"/B"C:
\casstemp\CASS"
启动D盘安装的CAD后,并执行C:
\casstemp\CASS.SCR
echo正在制作,约30秒.请稍候...
ping-n30127.1>nul
这里延时30秒,是希望CAD能在30秒内,把CASS.SCR里的命令依次执行完后接着执行下一条命令。
如果机器配置够强劲,可以改为10,如果不能在30秒内启动CAD并执行完CASS.SCR里的脚本命令,可改为更大的数字.
初步接触CAD的脚本,只能理解这么多,正在学习中。
。
。